实验四IIR数字滤波器设计及软件实现实验报告一、实验目的熟悉用双线性变换法设计1IR数字滤波器的原理与方法;(1) 学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具 fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数2) 掌握IIR数字滤波器的MATLAB实现方法3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念二、实验原理设计11R数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛 的是双线性变换法基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器 的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函 数MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法第六 章介绍的滤波器设计函数butter、chebyl、cheby2和ellip可以分别被调用来直接设计 巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器本实验要求读者调用如上函 数直接设计IIR数字滤波器本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给 定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。
三、实验内容及步骤(1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函 数还会自动绘图显示st的时域波形和幅频特性曲线,如图所示由图可见,三路 信号时域混叠无法在时域分离但频域是分离的,所以可以通过滤波的方法在频域分离, 这就是本实验的目的b) s(t)的频谱•I•••4IIIII| ------- ♦♦-♦- -- -4--'iiiii翅;:;;:los 0.514- — !1-e-IIIII□200400600800 1000 1200 U00 1600 1800 2000f/Hz图三路调幅信号st的时域波形和幅频特性曲线要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分 第1页共12页3. 具体步骤:(1) 构造原始信号s(t)(2) 画出s(t)的频谱(3) 设计ellipse数字滤波器(IIR),包括低通,带通,带通,并显示幅频特 性(4) 用得到的滤波器进行滤波,分离出三路信号,观察时域波形和幅频特性(5) 用三路信号si, s2, s3尝试重新合成原始信号问题:为什么重新合成的信号和原信号不相等呢?谁能解释一下?谢谢 程序如下:clearelf% (1)构造原始信号Fs二10000; T二1/Fs; %先设定采样频率t=0:T:0. 1;n=length(t);s=cos (2*pi*250*t). *cos(2*pi*25*t)+cos(2*pi*500*t). *cos(2*pi*50*t) +... cos (2*pi*1000*t)・ *cos(2*pi*100*t);subplot (2, 1, 1), plot (t, s), axis ([0 0. 08 ~2 3])titleC原始信号s(t)')xlabel (' t/s'), ylabel (' s (t)')% (2)画出s(t)的频谱ft=fftshift(fft(s));i二fix(n/2) ;f=(-i:i)/n*Fs;%貌 似 这 是 公 式。
subplot(2, 1, 2), stem(f, abs(ft), 'Marker',' none'), xlim([0 1250]) title C s (t)的频谱')xlabel (J f/Hz,), ylabel C 幅度’)% ( 3 )设计 ellipse数字滤波器(IIR),并显示幅度特性%%3. la设计模拟低通滤 波 器 fp=320:fs=400:Ap=0. 1:As=60:wp二2*pi*fp/Fs;ws=2*pi*fs/Fs;Wp= (2*Fs)*tan(wp/2);Ws=(2*Fs)*tan(ws/2);[N, Wc]= ellipord(Wp , Ws , Ap , As ,'s');[bLPs , aLPs]=ellip(N , Ap, As, Wc,' s');[H, w]=freqs (bLPs, aLPs);db =20*logl0(abs(H)):figure, subplot (2, 1, 1), plot (w/2/pi, db);axis ([0 1600 -80 5]),gridtitle ('模拟低通滤波器的幅度特性');xxxxxx C f (Hz)');yyyyyy (,dB');%%3. lb将模拟低通滤波器转换为数字低通滤波器[bLPz, aLPz] = bilinear (bLPs , aLPs , Fs);w 二 linspace (0, pi, 1000);h = freqz(bLPz, aLPz , w);subplot (2,1, 2), plot (w*Fs/2/pi, 20*logl0(abs(h)));axis ([0 1600 -80 5]),grid titlef数字低通滤波器的幅度特性');xxxxxx ('f (Hz)'); yyyyyyCdB');%%3. 2a设计模拟带通滤波器 fp=[430 570];fs=[330 670];Ap=0. l;As=60;wp二2*pi*fp/Fs;ws二2*pi*fs/Fs;Wp= (2*Fs)*tan(wp/2);Ws=(2*Fs)*tan(ws/2);[N, Wc]= ellipord(Wp , Ws , Ap , As ,' s');[bBPs , aBPs]=ellip (N , Ap, As, Wc,' s');[H, w] =freqs (bBPs, aBPs);db =20*logl0(abs(H)): figure, subplot (2, 1, 1), plot (w/2/pi, db);axis ([0 1600 -80 5]),grid title ('模拟带通滤波器的幅度特性');xxxxxx (' f (Hz)');yyyyyy (' dB')%%3. 2b将模拟带通滤波器转换为数字带通滤波器[bBPz,aBPz] = bilinear (bBPs , aBPs , Fs);w = linspace (0, pi, 1000);h = freqz (bBPz, aBPz , w); subplot (2, 1, 2), plot(w*Fs/2/pi, 20*logl0(abs(h)));axis([0 1600 -80 5]),grid titleC数字低通滤波器的幅度特性'); xxxxxx ('f (Hz)');yyyyyy ('dB'); %%3. 3a设计模拟高通滤波器fp=800;fs=700;Ap=0. 1;As=60; wp二2*pi*fp/Fs;ws=2*pi*fs/Fs;Wp=(2*Fs)*tan(wp/2);Ws=(2*Fs)*tan(ws/2);[N, Wc]= ellipord (Wp , Ws , Ap , As ,'s');[bHPs , aHPs]=ellip (N, Ap, As, Wc ,' high',' s');[H, w]=freqs (bHPs, aHPs);db 二20*logl0(abs(H)); figure, subplot (2, 1, 1), plot (w/2/pi, db);axis([0 1600 -80 5]),grid titleC模拟高通滤波器的幅度特性'); xxxxxx (' f (Hz)');yyyyyy (,dB')%%3. 3b将模拟高通滤波器转换为数字高通滤波器[bHPz, aHPz] = bilinear(bHPs , aHPs , Fs);w = linspace(0, pi, 1000);h = freqz (bHPz, aHPz , w);subplot (2, 1, 2), plot(w*Fs/2/pi, 20*logl0(abs(h))); axis([0 1600 -80 5]),grid title ('数字高通滤波器的幅度特性');xxxxxx ('f (Hz)'); yyyyyy('dB');% (4)用得到的滤波器进行滤波,分离出三路信号,观察时域波形和幅频特 性%%4. 1滤波si = filter(bLPz, aLPz, s); s2 二 filter(bBPz, aBPz, s); s3 = filter (bHPz, aHPz, s);%%4. 2时域波形figure, subplot (3, 1, 1), plot (t, si) xlabel (' t/s' ), ylabel (' si (t)') subplot (3, 1, 2), plot (t, s2) xlabel (' t/s'), ylabel (' s2 (t)') subplot (3, 1, 3), plot (t, s3) xlabel C t/s,), ylabel (' s3 (t)') %%4. 3幅频特性ftl=fftshift(fft(si)):ft2=fftshift(fft(s2)) ;ft3=fftshift(fft(s3)); figure, subplot (3, 1, 1), stem(f, abs (ftl),' Marker5,' none'), xlim([0 1250]) subplot(3, 1, 2), stem(f, abs(ft2),' Marker5,'none'),xlim([0 1250]) subplot(3, 1, 3), stem(f, abs(ft3),' Marker5,' none,), xlim([0 1250]) %(5)用三路信号sl,s2, s3尝试重新合成原始信号ss=sl+s2+s3;%合成信号记作ss isequal (s, ss)%判断合成信号是否和原信号相等,结果不相等,why?[本帖最后由cwjy于2010-5-318:19编辑]离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器) 的通带截止频率和阻带截止频率。
要求滤波器的通带最大衰减为0. IdB,阻带最小衰减为60dB提示:抑制载波单频调幅信号的数学表示式为1s(A) cos(2 ft) cos(2 ft) —[cos(2 (f f cos(2 (f f)/)]0c 2c oc 0其中,cos(2々)称为载波,匚为载波频率,cos(2 Q)称为单频调制信号,f°为调制正 弦波信号频率,且满足由上式可见,所谓抑制载波单频调幅信号,就是2个正弦信号相乘,它有2个频率成分:和频r f和差频f /,这2个频率成分关于载波频c 0C 0率 对称所以,1路抑制载波单频调幅信号的频谱图是关于载波频率f对称的2根谱线, f CC其中没有载频成分,故取名为抑制载波单频调幅信号容易看出,图10. 4.1中三路调幅信 号的载波频率分别为250Hz、500Hz、1000Hzo如果调制信号m(t)具有带限连续频谱,无直流成分,则s(,) m(r)cos(2 ft)就是一般的抑制载波调幅信号其频谱图是关于载波频率匚对称的2个边带(上下边带),砖业课通信原理中称为双边带抑制载波 (DSB-SC) 调幅信号,简称双边带(DSB)信号如果调制信号rn(t)有直流成分,则s(f) m(0cos(2 ffl就是一般的双边带调幅信号。
其频谱图是关于载波频率匚对称的2 个边带(上下边带),并包含载频成分。