数字信号处理实验 matlab版 线性相位FIR数字滤波器.doc
文本预览下载声明
数字信号处理实验 matlab版 线性相位FIR数字滤波器
实验23 线性相位FIR数字滤波器 (完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用
冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)
XXXX学号姓名处XXXX
一、实验目的
1 加深对线性相位FIR数字滤波器特性的理解。
2 掌握线性相位滤波器符幅特性和零极点分布的研究方法。
3 了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法。
二、实验内容
1 线性相位FIR滤波器的特性
2 第一类线性相位滤波器(类型Ⅰ)
3 第二类线性相位滤波器(类型Ⅱ)
4 第三类线性相位滤波器(类型Ⅲ)
5 第四类线性相位滤波器(类型Ⅳ)
6 线性相位FIR数字滤波器零点分布特点
三、实验环境
MATLAB7.0
四、实验原理
1.线性相位FIR滤波器的特性
与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数为
H(z)??h(n)z?n
n?0N?1
当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器共分为四种类型,分别为:
(1)类型Ⅰ,系数对称,即h(n)=h(N-1-n),N为奇数。
(2)类型Ⅱ,系数对称,即h(n)=h(N-1-n),N为偶数。
(3)类型Ⅲ,系数反对称,即h(n)=-h(N-1-n),N为奇数。
(4)类型Ⅳ,系数反对称,即h(n)=-h(N-1-n),N为偶数。
对于上述四类线性相位FIR滤波器,参考文献[1]中提供了一段通用程序,对考虑正负号的幅度频率特性(简称符幅特性)进行求解,程序名为amplres.m,程序如下:
function[A,w,type,tao]=amplres(h)
N=length(h);tao=(N-1)/2;
L=floor((N-1)/2);
n=1:L+1;
w=[0:500]*2*pi/500;
if all(abs(h(n)-h(N-n+1))lt;1e-10)
A=2*h(n)*cos(((N+1)/2-n)#39;*w)-mod(N,2)*h(L+1);
type=2-mod(N,2);
elseif all(abs(h(n)+h(N-n+1))lt;1e-10)amp;(h(L+1)*mod(N,2)==0)
A=2*h(n)*sin(((N+1)/2-n)#39;*w);
type=4-mod(N,2);
elseerror(#39;错误:这不是线性相位滤波器!#39;)
end
另外,FIR滤波器的H(z)是z-1的(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。由于线性相位FIR滤波器的极点都在原点处,因此不存在稳定性的问题。但有必要研究零点对滤波器特性的影响。
下面分别研究和分析上述问题。
2.第一类线性相位滤波器(类型Ⅰ)
例23-1 已知FIR线性相位系统h=[3,-1,-5,4,6,4,-5,-1,3],要求描绘系统的冲激响应和符幅特性。
解 程序如下:
h=[3,-1,-5,4,6,4,-5,-1,3];
M=length(h);n=0:M-1;
[A,w,type,tao]=amplres(h);type
subplot(2,1,1),stem(n,h);
ylabel(#39;h(n)#39;);xlabel(#39;n#39;);
subplot(2,1,2),plot(w/pi,A);
ylabel(#39;A#39;);xlabel(#39;\pi#39;);
MATLAB命令窗显示:type = 1
由图23-1可见,这是一个第一类线性相位滤波器。滤波器的系数N为奇数(该题N=9),且h(n)=h(N-1-n),幅度特性关于w=p对称,在w=0和w=p处可以取任何值;可以用于实现低通、高通、带通、带阻等各种滤波特性。
h(n)024
n68
40
20
A
-2000.51
\pi1.52
图23-1 类型Ⅰ滤波器冲激响应和符幅特性
3.第二类线性相位滤波器(类
显示全部