数字滤波器设计.docx
- 文档编号:10024740
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:15
- 大小:220.84KB
数字滤波器设计.docx
《数字滤波器设计.docx》由会员分享,可在线阅读,更多相关《数字滤波器设计.docx(15页珍藏版)》请在冰豆网上搜索。
数字滤波器设计
实验六数字滤波器设计
实验室名称:
信息学院2204实验时间:
2015年11月26日
姓名:
专业:
通信工程指导教师:
陶大鹏
成绩
教师签名:
年月日
一、实验目的
1.会设计满足某个给定幅度或增益响应的无限冲激响应或有限冲激响应的数字滤波器。
2.能设计四种类型滤波器并分析各自的特点。
3.利用MATLAB绘制滤波器的频率特征曲线并分析滤波器特点。
利用MATLAB设计出符合条件的滤波器。
4.利用MATLAB绘制滤波器的增益曲线和频率特征曲线。
二、实验内容
Q7.1用MATLAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。
指标如下:
40kHz的抽样率,4kHz的通带边界频率,8kHz的阻带边界频率,0.5dB的带通波纹,40dB的最小阻带衰减。
评论你的结果。
Q7.2用MATLAB确定一个数字无限冲激响应高通滤波器所有四种类型的最低阶数。
指标如下:
3500Hz的抽样率,1050Hz的通带边界频率,600Hz的阻带边界频率,1dB的带通波纹,50dB的最小阻带衰减。
评论你的结果。
Q7.5通过运行程序P7.1来设计巴特沃兹带阻滤波器。
写出所产生的传输函数的准确表达式。
滤波器的指标是什么?
你的设计符合指标吗?
使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。
Q7.6修改程序P7.1来设计符合习题Q7.1所给指标的切比雪夫1型低通滤波器。
写出所产生的传输函数的准确表达式。
你的设计符合指标吗?
使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。
Q7.20使用函数firl,设计一个线性相位有限冲激响应低通滤波器,使其满足习题Q7.23给出的指标,并画出其增益和相位响应。
使用习题Q7.13中用凯泽公式估计出的阶数。
用表格形式显示滤波器的系数。
你的设计满足指标吗?
若不满足,调整滤波器阶数直到设计满足指标。
满足指标的滤波器阶数是多少?
Q7.23用凯泽窗设计一个有限冲激响应低通滤波器。
滤波器的指标是:
Wp=0.31,Ws=0.41,As=50dB。
注意,函数kaiser需要参数
及阶数N的值,它们必须先用式(7.36)和式(7.37)分别算出。
你的设计满足指标吗?
Q7.25用fir2设计一个95阶有限冲激响应滤波器,它具有三个不同的常数幅度级:
在频率范围0到0.25中为0.4,在频率范围0.3到0.45中为1.0,在频率范围0.5到1.0中为0.8.画出所设计的滤波器的幅度响应。
你的设计满足指标吗?
Q7.27用remez设计具有如下指标的有限冲激响应带通滤波器:
通带边界为1.8kHz,阻带边界为1.5kHz和4.2kHz,通带波纹
=0.1,阻带波纹
=0.02,抽样频率为12kHz。
用kaiserord估计滤波器的阶数。
你的设计是一个最优有限冲激响应滤波器吗?
你的设计满足指标吗?
若不满足,增加滤波器阶数在满足指标方面有用吗?
指标由一个较低阶数的滤波器来满足而不是由kaiserord得到的来满足吗?
在不等过渡带的情形下,用remez设计的滤波器可能在较大的过渡带宽中以增益响应表现不满意的行为。
改进该行为的一种方法是:
通过移动阻带边界减少过渡带宽,直到使设计在过渡带中以平滑的下降来满足指标。
在通带边界保持固定的情况下,尝试这种方法并确定新的指标,它在过渡带中提供平滑的下降。
三、实验器材及软件
1.微型计算机1台
2.MATLAB7.0软件
四、实验原理
1、可以通过几种设计方式,有滤波器指标来直接估计最小滤波器长度N。
2、设计无限冲激响应滤波器的方法是基于s平面到z平面的双线性变换。
3、对理想频率响应HD(ejΩ)实行离散时间傅里叶变换,可得到其理想无限长冲激响应hD[n]。
4、对于带通和带阻滤波器的设计,使用适当滤波器命令得到的传输函数的实际阶次为2N。
五、实验步骤
1、打开计算机中的MATLAB
2、在MATLAB中新建一个M-file,在其中输入实验要求的相关代码
3、输入代码后调试代码,代码无误后可以得到相应的实验结果
4、观察实验结果回答相关问题
5、记录实验结果,将图形等截图粘贴,完成实验报告
六、实验记录(数据、图表、波形、程序等)
Q7.1用MATLAB确定一个数字无限冲激响应低通滤波器所有四种类型的最低阶数。
指标如下:
40kHz的抽样率,4kHz的通带边界频率,8kHz的阻带边界频率,0.5dB的带通波纹,40dB的最小阻带衰减。
评论你的结果。
答:
由题意可知其Wp=0.1;Ws=0.2
巴特沃兹滤波器:
[N,Wn]=buttord(0.1,0.2,0.5,40)
N=8Wn=0.1151
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
切比雪夫1型滤波器:
[N,Wn]=cheb1ord(0.1,0.2,0.5,40)
N=5Wn=0.1000
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
切比雪夫2型滤波器:
[N,Wn]=cheb2ord(0.1,0.2,0.5,40)
N=5Wn=0.2000
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
椭圆滤波器:
[N,Wn]=ellipord(0.1,0.2,0.5,40)
N=4Wn=0.1000
Q7.2用MATLAB确定一个数字无限冲激响应高通滤波器所有四种类型的最低阶数。
指标如下:
3500Hz的抽样率,1050Hz的通带边界频率,600Hz的阻带边界频率,1dB的带通波纹,50dB的最小阻带衰减。
评论你的结果。
答:
由题意可知Wp=0.3;Ws=0.17
巴特沃兹滤波器:
[N,Wn]=buttord(0.3,0.17,1,50)
N=11Wn=0.2754
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
切比雪夫1型滤波器:
[N,Wn]=cheb1ord(0.3,0.17,1,50)
N=6Wn=0.3000
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
切比雪夫2型滤波器:
[N,Wn]=cheb2ord(0.3,0.17,1,50)
N=6Wn=0.1700
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
椭圆滤波器:
[N,Wn]=ellipord(0.3,0.17,1,50)
N=5Wn=0.3000
Q7.5通过运行程序P7.1来设计巴特沃兹带阻滤波器。
写出所产生的传输函数的准确表达式。
滤波器的指标是什么?
你的设计符合指标吗?
使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。
Ws=[0.40.6];Wp=[0.20.8];Rp=0.4;Rs=50;
[N1,Wn1]=buttord(Wp,Ws,Rp,Rs);
[num,den]=butter(N1,Wn1,'stop');
disp('NumeratorCoefficientsare');disp(num);
disp('DenominatorCoefficientsare');disp(den);
[g,w]=gain(num,den);
h=freqz(num,den,w);
[gd,w1]=grpdelay(num,den);
plot(w/pi,g);grid
axis([01-605]);
xlabel('\omega/\pi');ylabel('GainindB');
title('GainResponseofaButterworthBandstopFilter');
pause
plot(w/pi,unwrap(angle(h)));grid
title('PhaseSpectrumarg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('Phaseinradians');
pause
plot(w1/pi,unwrap(gd));grid
title('DelayCharacteristic')
xlabel('\omega/\pi');
ylabel('GroupDelay');
NumeratorCoefficientsare
Columns1through10
0.04930.00000.24650.00000.49300.00000.49300.00000.24650.0000Column110.0493
DenominatorCoefficientsare
Columns1through10
1.00000.0000-0.08500.00000.63600.0000-0.02880.00000.05610.0000Column11-0.0008
Q7.6修改程序P7.1来设计符合习题Q7.1所给指标的切比雪夫1型低通滤波器。
写出所产生的传输函数的准确表达式。
你的设计符合指标吗?
使用MATLAB,计算并绘制滤波器的未畸变的相位响应及群延迟响应。
%DesignofaButterworthBandstopDigitalFilter
Ws=[0.40.6];Wp=[0.20.8];Rp=0.4;Rs=50;
%EstimatetheFilterOrder
[N1,Wn1]=cheb1ord(Wp,Ws,Rp,Rs);
%DesigntheFilter
[num,den]=cheby1(N1,Rp,Wn1,'stop');
%Displaythetransferfunction
disp('NumeratorCoefficientsare');disp(num);
disp('DenominatorCoefficientsare');disp(den);
[g,w]=gain(num,den);
h=freqz(num,den,w);
[gd,w1]=grpdelay(num,den);
plot(w/pi,g);grid
axis([01-605]);
xlabel('\omega/\pi');ylabel('GainindB');
title('GainResponseofaButterworthBandstopFilter');
pause
plot(w/pi,unwrap(angle(h)));grid
title('PhaseSpectrumarg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('Phaseinradians');
pause
plot(w1/pi,unwrap(gd));grid
title('DelayCharacteristic')
xlabel('\omega/\pi');
ylabel('GroupDelay');
NumeratorCoefficientsare
0.0326-0.00000.1304-0.00000.1956-0.00000.1304-0.00000.0326
DenominatorCoefficientsare
1.0000-0.0000-1.31410.00001.3919-0.0000-0.73900.00000.2076
Q7.20使用函数firl,设计一个线性相位有限冲激响应低通滤波器,使其满足习题Q7.23给出的指标,并画出其增益和相位响应。
使用习题Q7.13中用凯泽公式估计出的阶数。
用表格形式显示滤波器的系数。
你的设计满足指标吗?
若不满足,调整滤波器阶数直到设计满足指标。
满足指标的滤波器阶数是多少?
Ft=10000;%采样频率
Fp=2000;%通带截止频率
Fs=2500;%阻带截止频率
dev=[0.0050.005];
fedge=[FpFs];
aval=[10];
[N,Wn,beta,ftype]=kaiserord(fedge,aval,dev,Ft);
b=fir1(N,Wn);
[g,w]=gain(b,1);
h=freqz(b,1,w);
plot(w/pi,g);grid
xlabel('\omega/\pi');ylabel('GainindB');
title('Gain');
pause
plot(w/pi,unwrap(angle(h)));grid
title('PhaseSpectrumarg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('Phaseinradians');
分析:
是移除跳变后的相位。
Q7.23用凯泽窗设计一个有限冲激响应低通滤波器。
滤波器的指标是:
Wp=0.31,Ws=0.41,As=50dB。
注意,函数kaiser需要参数
及阶数N的值,它们必须先用式(7.36)和式(7.37)分别算出。
你的设计满足指标吗?
根据式(7.36)和式(7.37)计算得出N=184,
=4.6123。
程序如下:
w1=kaiser(184,4.6);
b=fir1(183,0.31,w1);
[g,w]=Gain(b,1);
h=freqz(b,1,w);
plot(w/pi,g);grid
xlabel('\omega/\pi');ylabel('GainindB');
title('Gain');
pause
plot(w/pi,unwrap(angle(h)));grid
title('PhaseSpectrumarg[H(e^{j\omega})]')
xlabel('\omega/\pi');
ylabel('Phaseinradians');
分析:
由图可知,该滤波器的设计满足指标。
Q7.25用fir2设计一个95阶有限冲激响应滤波器,它具有三个不同的常数幅度级:
在频率范围0到0.25中为0.4,在频率范围0.3到0.45中为1.0,在频率范围0.5到1.0中为0.8.画出所设计的滤波器的幅度响应。
你的设计满足指标吗?
fpts=[00.250.30.450.51];
mval=[0.40.4110.80.8];
b=fir2(95,fpts,mval);
h=freqz(b,1,w);
plot(w/pi,abs(h));grid
title('Amplituderesponse')
xlabel('\omega/\pi');
ylabel('Amplitude');
Q7.27用remez设计具有如下指标的有限冲激响应带通滤波器:
通带边界为1.8kHz,阻带边界为1.5kHz和4.2kHz,通带波纹
=0.1,阻带波纹
=0.02,抽样频率为12kHz。
用kaiserord估计滤波器的阶数。
你的设计是一个最优有限冲激响应滤波器吗?
你的设计满足指标吗?
若不满足,增加滤波器阶数在满足指标方面有用吗?
指标由一个较低阶数的滤波器来满足而不是由kaiserord得到的来满足吗?
在不等过渡带的情形下,用remez设计的滤波器可能在较大的过渡带宽中以增益响应表现不满意的行为。
改进该行为的一种方法是:
通过移动阻带边界减少过渡带宽,直到使设计在过渡带中以平滑的下降来满足指标。
在通带边界保持固定的情况下,尝试这种方法并确定新的指标,它在过渡带中提供平滑的下降。
fedge=[1500180030004200];
aval=[010];
dev=[0.10.020.1];
FT=12000;
[NWnBetaftype]=kaiserord(fedge,aval,dev,FT);
fpts=fedge/FT;%求解归一化通、阻带的截止频率
fpts=[0fpts1];
mval=[010010];
b=remez(N,fpts,mval);
b=fir1(N,Wn);
[g,w]=Gain(b,1);
h=freqz(b,1,w);
plot(w/pi,g);grid
xlabel('\omega/\pi');ylabel('GainindB');
title('Gain');
分析:
观察上图可知,其阻带波纹过大,不符合题意。
右因为remez函数采用的是Park-McClellan算法,所以得到最优有限冲激响应滤波器。
将滤波器阶数更改滤波器阶数为30,得到结果:
下图左为将滤波器阶数该成100时的结果:
实验证明:
通过增加滤波器阶数可以满足指标;指标可以由一个较低阶数或较高阶的滤波器来满足。
在本实验中,将阻带频率更改为1.7kHz和3.5kHz使得过渡带中有平滑的下降,得到如上结果。
七、实验思考题及解答
1、如何根据有限冲激响应传输函数H(z)的表达式判断是否是线性相位传输函数?
答:
根据传输函数H(z)的表达式的分子系数是否具有对称性,来判断是否是线性相位传输,若有对称性,则该函数是线性相位传输函数;若不对称,则不是。
2、在Q6.2中怎样得到只用4个乘法器生成H2(z)的一个级联实现?
答:
根据线性相位有限冲激响应滤波器的对称/反对称性质,可以将传输函数的直接型实现所需的乘法器减少一半。
从而只用4个乘法器生成H2(z)的一个级联实现。
3、怎样表示线性时不变数字滤波器的计算算法?
答:
用单位延时、乘法器、加法器以及触点的基本结构块以框图形式表示线性时不变数字滤波器的计算算法。
4、怎样判断M阶实系数全通传输函数
的稳定性?
答:
对
进行稳定性检测,根据所得到的极点值,观察极点是否在单位圆内。
若全在单位圆内,则
是稳定的传输函数;若在圆外则不稳定;若在圆上则还需另行判断。
八、实验结果分析与总结
根据Q7.1的结果及其波形分析可得:
巴特沃兹低通滤波器的传输函数:
切比雪夫1型滤波器的传输函数:
切比雪夫2型滤波器的传输函数:
总结:
掌握了有限冲激响应传输函数以及无限冲激响应传输函数的实现。
知道如何判断传输函数的线性,若传输函数的分子系数是对称的,则该传输函数是一个线性相位传输函数,若不对称,则不是线性的。
可以利用
进行稳定性检测,根据所得到的极点值,观察极点是否在单位圆内。
若全在单位圆内,则
是稳定的传输函数;若在圆外则不稳定;若在圆上则还需另行判断。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字滤波器 设计