数字信号处理实验五FIR滤波器设计 下载本文

内容发布更新时间 : 2024/10/26 13:23:31星期一 下面是文章的全部内容请认真阅读。

实验五 FIR滤波器设计

一.实验内容

(1)认真复习 FIR 数字滤波器的基本概念,线性相位 FIR 滤波器的条件和特点、幅度函数特点、零点位置的基本特点与性质;窗函数设计法的基本概念与方法,各种窗函数的性能和设计步骤,线性相位 FIR 低通、高通、带通和带阻滤波器的设计方法,频率采样设计法的基本概念和线性相位的实现方法。

(2)掌握几种线性相位的特点,熟悉和掌握矩形窗、三角形窗、汉宁窗、海明窗、布莱克曼窗、 凯塞窗设计 IIR 数字滤波器的方法, 熟悉和掌握频率抽样设计法的线性相位的设计方法,并对各种线性相位的频率抽样法的设计给出调整和改进。

(3)熟悉利用 MATLAB 进行各类 FIR 数字滤波器的设计方法。 二.实验内容

a. 设线性相位 FIR 滤波器单位抽样响应分别为 h(n )={ -4,1, -1,- 2,5,6,5, -2, -1,1, -4} h(n)={ -4,1, -1,- 2,5,6,6,5,- 2, -1,1,- 4} h(n)={ -4,1,- 1, -2,5,0,- 5,2,1,- 1,4} h(n)={ -4,1, -1, -2,5,6,- 6, -5,2,1, -1,4}

分别求出滤波器的幅度频率响应 H(ω),系统函数 H(z)以及零极点分布,并绘制相应的波形和分布图。 在matlab中新建函数amplres,代码如下:

function[A,w,type,tao]=amplres(h) N=length(h);tao=(N-1)/2;

- 1 -

L=floor((N-1)/2); n=1:L+1;

w=[0:500]*2*pi/500;

if all(abs(h(n)-h(N-n+1))<1e-10)

A=2*h(n)*cos(((N+1)/2-n)'*w)-mod(N,2)*h(L+1); type=2-mod(N,2);

elseif all(abs(h(n)+h(N-n+1))<1e-10)&(h(L+1)*mod(N,2)==0) A=2*h(n)*sin(((N+1)/2-n)'*w); type=4-mod(N,2);

else error('错误,这不是线性相位滤波器!') end

对第一个单位抽样响应,在matlab中新建函数a1,代码如下:h1=[-4,1,-1,-2,5,6,5,-2,-1,1,-4]; M=length(h1);n=0:M-1;

[A,w,type,tao]=amplres(h1);type subplot(2,1,1),stem(n,h1); title('冲激响应h1');

ylabel('h(n)');xlabel('n'); subplot(2,1,2),plot(w/pi,A); ylabel('A');xlabel('\\pi'); title('·幅频响应'); figure rz=roots(h1) for i=1:8 r(i)=1/rz(i); end r'

zplane(h1,1); title('h1零极点图');

生成结果如下:

>>a1 type = 1 rz =

-0.9807 + 0.1956i -0.9807 - 0.1956i -0.5578 + 0.8300i

- 2 -

-0.5578 - 0.8300i 0.4052 + 1.2374i 0.4052 - 1.2374i 1.2169 + 0.0000i 0.8218 + 0.0000i 0.2390 + 0.7299i 0.2390 - 0.7299i ans =

-0.9807 + 0.1956i -0.9807 - 0.1956i -0.5578 + 0.8300i -0.5578 - 0.8300i 0.2390 + 0.7299i 0.2390 - 0.7299i 0.8218 + 0.0000i 1.2169 + 0.0000i

- 3 -