(完整版)fir低通滤波器设计(完整版)
电子科技大学信息与软件工程学院学院标准实验报告
(实验)课程名称数字信号处理
电子科技大学教务处制表
电 子 科 技 大 学
实 验 报 告
学生姓名: 学 号: 指导教师: 实验地点: 实验时间:14-18
一、实验室名称:计算机学院机房 二、实验项目名称:fir 低通滤波器的设计 三、实验学时: 四、实验原理:
1. FIR 滤波器
FIR 滤波器是指在有限范围内系统的单位脉冲响应h[k]仅有非零值的滤波器。M 阶FIR 滤波器的系统函数H(z)为
()[]M
k
k H z h k z
-==
∑
其中H(z)是k
z
-的M 阶多项式,在有限的z 平面内H(z)有M 个零点,在z
平面原点z=0有M 个极点.
FIR 滤波器的频率响应
()j H e Ω
为 0
()[]M
j jk k H e h k e Ω
-Ω
==∑
它的另外一种表示方法为
()
()()j j j H e H e e φΩΩΩ=
其中
()
j H e Ω和()φΩ分别为系统的幅度响应和相位响应。
若系统的相位响应()φΩ满足下面的条件
()φαΩ=-Ω
即系统的群延迟是一个与Ω没有关系的常数α,称为系统H(z)具有严格线性相位。由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR 滤波器设计中一般使用广义线性相位。
如果一个离散系统的频率响应
()j H e Ω
可以表示为
()()()j j H e A e αβΩ-Ω+=Ω
其中α和β是与Ω无关联的常数,()A Ω是可正可负的实函数,则称系统是广义线性相位的。
如果M 阶FIR 滤波器的单位脉冲响应h[k]是实数,则可以证明系统是线性相位的充要条件为
[][]h k h M k =±-
当h[k]满足h[k]=h[M-k],称h[k]偶对称。当h[k]满足h[k]=-h[M-k],称h[k]奇对称。按阶数h[k]又可分为M 奇数和M 偶数,所以线性相位的FIR 滤波器可以有四种类型。
2. 窗函数法设计FIR 滤波器
窗函数设计法又称为傅里叶级数法。这种方法首先给出
()j d H e Ω,
()
j d H e Ω表示要逼近的理想滤波器的频率响应,则由IDTFT 可得出滤波器的单位脉冲响应为
1
[]()2j jk d d h k H e e d π
π
π
ΩΩ-=
Ω
?
由于是理想滤波器,故
[]
d h k 是无限长序列。但是我们所要设计的FIR 滤波
器,其h[k]是有限长的。为了能用FIR 滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应
[]
d h k 分别从左右进行截断。当截断后的单位脉冲响应
[]
d h k 不是因果系统的时候,可将其右移从而获得因果的FIR 滤波器。
另一种设计方案是将线性相位因子(0.5)
j M e β-Ω+加入到理想滤波器的频率响应
中,然后利用IDTFT 计算出[]
d h k 后,取
[]
d h k 在0≦k ≦M 范围的值为FIR 滤波
器单位脉冲响应。
理想滤波器的频率响应()
j d H e Ω和设计出的滤波器的频率响应
()
j d H e Ω的积分平方误差定义为
2
2
1()()2j j d H e H e d ππ
επ
ΩΩ-=
-Ω
?
2ε也可以表示为
2
2
[][]
d k h k h k ε∞
=-∞
=
-∑
1
2
2
2
1
[][][][]
M
d d d k k k M h k h k h k h k -∞
=-∞
==+=
+-+
∑∑∑
上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择
[][],0d h k h k k M
=≤≤
所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器。 Gibbs 现象就是理想滤波器的单位脉冲响应
[]
d h k 截断获得的FIR 滤波器
的幅度函数()A Ω在通带和阻带都呈现出振荡现象。随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数M 无关。窗函数的主瓣宽度决定了
()
j d H e Ω过渡带的宽度,窗函数长度N 增大,过渡带减小。
五、实验目的:
掌握FIR 低通滤波器设计以及在MATLAB 上的实现。
六、实验程序及仿真:
disp(' 利用窗函数法设计FIR 滤波器'); fp=100;%通带截止频率 fs=200;%阻带截止频率 Fs=1000;%采样频率
Wc=(fs+fp)/Fs%确定截止频率
m=(0.3*fp)/Fs;%定义过度带宽
M=round(8/m);%定义窗函数的长度
N=M-1;%定义滤波器的阶数
box=fir1(N,Wc,boxcar(N+1));%使用fir1函数设计滤波器
ham=fir1(N,Wc,hamming(N+1));
han=fir1(N,Wc,hanning(N+1));
black=fir1(N,Wc,blackman(N+1));
[h1,f1]=freqz(box,1,1024);%滤波器的幅频特性图
[h2,f2]=freqz(ham,1,1024);
[h3,f3]=freqz(han,1,1024);
[h4,f4]=freqz(black,1,1024);
plot(f1*Fs/(2*pi),20*log10(abs(h1)),':',f2*Fs/(2*pi),20*log10(abs (h2)),'--',f3*Fs/(2*pi),20*log10(abs(h3)),'-.',f4*Fs/(2*pi),20*lo g10(abs(h4)));
legend('矩阵窗','哈明窗','汉宁窗','布莱克曼窗');
grid;
xlabel('频率/赫兹');ylabel('增益/分贝');title('滤波器的增益响应'); axis([0 500 -200 20]);
七.实验结论
通过设计实现FIR低通滤波器,并不断的借鉴学习matlab的知识,编辑改善matlab 程序,从而得到了滤波器较为理想的输出状态图。
指导教师签字: