实验四:IIR数字滤波器设计及软件实现.doc

实验四:IIR数字滤波器设计及软件实现 = 1 \* CHINESENUM3 一.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 = 2 \* CHINESENUM3 二.实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 实验程序框图: 调用函数mstg产生st,自动绘图 调用函数mstg产生st,自动绘图 显示st的时域波形和幅频特性曲线 调用ellipord和ellip分别设计三个椭圆滤波器,并绘图显示其幅频响应特性曲线。 调用filter,用三个滤波器分别对信号st进行滤波,分离出三路不同载波频率的调幅信号y1(n)、y2(n)和y3(n) 绘图显示y1(n)、y2(n)和y3(n)的时域波形和幅频特性曲线 End = 3 \* CHINESENUM3 三. 实验内容及步骤 (1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。 主要程序: 信号发生函数mstg清单: function st=mstg N=800; Fs=10000; T=1/Fs; Tp=N*T; t=0:T:(N-1)*T; k=0:N-1; f=k/Tp; fc1=Fs/10; fm1=fc1/10; fc2=Fs/20; fm2=fc2/10; fc3=Fs/40; fm3=fc3/10; xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); st=xt1+xt2+xt3; fxt=fft(st,N); subplot(3,1,1); plot(t,st); grid; xlabel(t/s); ylabel(s(t)); axis([0,Tp/8,min(st),max(st)]); title(a s(t)); subplot(3,1,2); stem(f,abs(fxt)/max(abs(fxt)),.); grid; title((b)s(t)的频谱); axis([0,Fs/5,0,1.2]); xlabel(f/Hz); ylabel(幅度); 各个特殊绘图函数的实现: 1.tplot函数: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 % xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) % T为采样间隔 n=0:length(xn)-1; t=n*T; plot(t,xn); xlabel(t/s);ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]) 2.myplot:函数: function myplot(B,A) %时域离散系统损耗函数绘图 %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000); m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel(\omega/\pi);ylabel(幅度(dB)) axis([0,1,-80,5]);title(损耗函数曲线); 1.滤波器参数的选取: 对载波频率为250Hz的条幅信号,可以用低通滤波器分离,其指标为 带截止频率Hz,通带最大衰

文档评论(0)

1亿VIP精品文档

相关文档