没有合适的资源?快使用搜索试试~ 我知道了~
实验四IIR数字滤波器设计及软件实现实验报告.docx
5星 · 超过95%的资源 8 下载量 163 浏览量
2022-12-15
22:22:19
上传
评论
收藏 297KB DOCX 举报
温馨提示
试读
11页
实验四IIR数字滤波器设计及软件实现实验报告.docx
资源推荐
资源详情
资源评论
实验四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]),grid
title ('模拟低通滤波器的幅度特性');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),' Marker
5
,' none'), xlim([0 1250]) subplot(3, 1, 2),
stem(f, abs(ft2),' Marker
5
,'none'),xlim([0 1250]) subplot(3, 1, 3), stem(f,
abs(ft3),' Marker
5
,' none
,
), xlim([0 1250]) %(5)用三路信号sl,s2, s3尝试重新合成原
始信号ss=sl+s2+s3;%合成信号记作ss isequal (s, ss)%判断合成信号是否和原信号相等
,结果不相等,why?
[本帖最后由cwjy于2010-5-318:19编辑]
剩余10页未读,继续阅读
yyyyyyhhh222
- 粉丝: 412
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页