数字信号实验报告
实验三实验三 IIR 数字滤波器设计及实现数字滤波器设计及实现一、实验目的(1)熟悉用脉冲响应不变法和双线性变换法设计 IIR 数字滤波器的原理与方法;(2)学会调用 MATLAB 信号处理工具箱中滤波器设计函数设计IIR 数字滤波器,学会根据滤波需求确定滤波器指标参数。二、实验原理和设计思路IIR 数字滤波器的典型设计法 典型设计法的设计思想是:利用已有的模拟滤波器设计理论,首先根据设计指标设计一个合适的模拟滤波器,然后再通过脉冲响应不变法或双线性变换法,完成从模拟到数字的变换。由于数字滤波器传输函数只与频域的相对值有关,故在设计时可先将滤波器设计指标进行归一化处理。设采样频率为 Fs,归一化频率的计算公式是:2/)()/( FsHz Fssrad实际模拟频率实际数字频率实际模拟角频率归一化频率 利用典型法设计数字滤波器的步骤:1、确定数字滤波器的技术指标,将数字滤波器转换成模拟滤波器的技术指标。2、根据归一化频率,确定最小阶数 N 和频率参数 Wc。3、运用最小阶数 N 设计模拟低通滤波器原型。模拟低通滤波器的创建函数有:buttap, cheblap, cheb2ap, ellipap 和 besselap4.用 zp2tf 函数转换成分子分母多项式形式。如果想根据最小阶数直接设计模拟低通滤波器原型,可用 butter, chebyl, cheby2, ellip, bessel 等函数,只是注意要将函数中的 Wc 设为 1。5、根据第 2 步的频率参数 Wn,将模拟低通滤波器原型转换成模拟低通、高通、带通、带阻滤波器,可用函数分别是:lp21p, lp2hp, lp2bp, lp2bs。6、运用脉冲响应不变法或双线性变换法把模拟滤波器转换成数字滤波器,调用的函数是 impinvar 和 bilinear。脉冲响应不变法适用于采样频率大于 4 倍截止频率的锐截止低通带通滤波器,而双线性变换法适合于相位特性要求不高的各型滤波器。7、根据输出的分子分母系数,用 tf 函数生成 H(z)的表达式,再用 freqz 函数验证设计结果。三、实验内容及步骤设计一个 butterworth 数字低通滤波器,要求通带临界频率fp=3400Hz,阻带临界频率 fs=5000Hz,通带内的最大衰减 Rp=2dB,阻带内的最小衰减 Rs=20db,采样频率 Fs=22050Hz。用脉冲响应不变法设计用脉冲响应不变法设计用脉冲响应不变法设计的m程序如下:clear;close all;clc; fp=3400;fs=5000;rp=2;rs=20;Fs=22050;T=1/Fs; wp=2*pi*3400;ws=2*pi*5000; N,wc=buttord(wp,ws,rp,rs,'s'), B,A=butter(N,wc,'s'); Bz,Az=impinvar(B,A,Fs); sys=tf(Bz,Az,T); H,W=freqz(Bz,Az,512,Fs); plot(W,20*log10(abs(H); grid 运行结果运行结果:N =7wc =2.2626e+004可以根据题目所给出的条件来判断图形是不是正确,也可以从图像上的数据来判断。双线性变换法:双线性变换法:clear;close all;clc; fp=3400;fs=5000;Fs=22050;Rp=2;Rs=20;T=1/Fs; W1p=2*tan(2*pi*fp*T/2)/pi;W1s=2*tan(2*pi*fs*T/2)/pi; N, Wn = buttord(W1p, W1s, Rp, Rs, 's'); bp,ap=butter(N,1,'s')bs,as = lp2lp(bp,ap,Wn*pi*Fs); bz,az = bilinear (bs,as,Fs) sys=tf(bz,az,T) H,W=freqz(bz,az,512,Fs); plot(W,20*log10(abs(H); grid on四、实验心得利用 Matlab 设计数字滤波器,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便,所以 Matlab已成为数字滤波器研究与应用的一个直观、高效、便捷的利器。