实验六 IIR数字滤波器的设计
一、实验目的
从理论上讲,任何的线性是不变(LTI)离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。数字滤波器你包括IIR(无限冲激响应)和FIR(有限冲激响应)型,在设计时通常采用不同的方法。
本实验通过使用MATLAB函数对数字滤波器进行设计和和实现,要求掌握IIR数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理、设计方法和设计步骤;能根据给定的滤波器指标进行滤波器设计;同时也加深学生对数字滤波器的常用指标和设计过程的理解。
二、实验原理
在IIR滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器。
IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器中进行的。
IIR数字滤波器的设计方法如下:
(1)冲激响应不变法。
(2)双线性变化法。
一般来说,在要求时域冲激响应能模仿模拟滤波器的场合,一般使用冲激响应不变法。冲激响应不变法一个重要特点是频率坐标的变化是线性的,因此如果模拟滤波器的频率响应带限于折叠频率的话,则通过变换后滤波器的频率响应可不失真地反映原响应与频率的关系。
与冲激响应不变法比较,双线性变化的主要优点是靠频率的非线性关系得到s平面与z平面的单值一一对应关系,整个值对应于单位圆一周。所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。
MATLAB提供了一组标准的数字滤波器设计函数,大大简化了滤波器的设计工程。
(1)butter。
(2)cheby1、cheby2。
三、实验内容及分析
利用MATLAB编程方法或利用MATLAB中fdatool工具设计不同功能的IIR数字滤波器。
1、基于chebyshev I型模拟滤波器原型使用冲激不变转换方法设计数字滤波器,要求参数为通带截止频率;通带最大衰减;阻带截止频率;阻带最小衰减。
程序:
wp=0.2*pi; %通带边界频率
ws=0.4*pi; %阻带截止频率
rp=1; %通带最大衰减
rs=35; %阻带最小衰减
Fs=1000; %¼ÙÉè³éÑùÂö³å1000hz
[N,Wn]=cheb1ord(wp,ws,rp,rs,'s');
[Z,P,K]=cheby1(N,rp,Wn,'s');
[H,W]=zp2tf(Z,P,K);
figure(1); freqs(H,W); [P,Q]=freqs(H,W);
figure(2); plot(Q*Fs/(2*pi),abs(P));
grid on;
xlabel('频率/Hz');
ylabel('幅度');
2、基于Butterworth型模拟滤波器原型使用双线性变换方法设计数字滤波器的,要求参数为截止频率;通带最大衰减;阻带截止频率;阻带最小衰减。
程序:
wp=0.4*pi;
ws=0.25*pi;
rp=1;
rs=40;
fs=500;
ts=1/fs;
wp1=wp*ts;
ws1=ws*ts;
wp2=2*fs*tan(wp1/2);
ws2=2*fs*tan(ws1/2);
[N,Wn]=buttord(wp2,ws2,rp,rs,'s');
[Z,P,K]=buttap(N);
[Bap,Aap]=zp2tf(Z,P,K);
[b,a]=lp2lp(Bap,Aap,Wn);
[bz,az]=bilinear(b,a,fs);
[H,W]=freqz(bz,az);
subplot(2,1,1);
plot(W/pi,abs(H));
grid on;
xlabel('频率')
ylabel('幅度')
subplot(2,1,2);
plot(W/pi,20*log10(abs(H)));
grid on;
xlabel('频率');
ylabel('幅度(dB)');
第二篇:数字信号处理第三版实验报告 (1)
数字信号实验
通信工程2班
1. 实验内容及步骤
(1)时域采样理论的验证。
要求: 编写实验程序,计算 、 和 的幅度特性,并绘图显示。观察分析频谱混叠失真。
程序:
Fs=1000Hz:
Tp=64/1000;
t=0:0.0001:0.064;
Fs=1000;T=1/Fs;
M=Tp*Fs;n=0:(M-1);
A=444.128;a=pi*50*2^0.5;w=pi*50*2^0.5;
x1=A*exp(-a*n*T).*sin(w*n*T);
subplot(211);
stem(n,x1);
[X1,w]=freqz(x1,1);
X2=T*fft(x1,M);
wk=2*pi*n/M;
fk=n/Tp;
subplot(212);plot(fk,abs(X2));
Fs=300Hz:
Tp=64/1000;
t=0:0.0001:0.064;
Fs=300;T=1/Fs;
N=Tp*Fs;
n=0:N-1;
A=444.128;a=pi*50*2^0.5;w=pi*50*2^0.5;
x1=A*exp(-a*n*T).*sin(w*n*T);
subplot(211);
stem(n,x1);
[X1,w]=freqz(x1,1);
X2=T*fft(x1,N);
wk=2*pi*n/N;
fk=n/Tp;
subplot(212);plot(fk,abs(X2));
Fs=200Hz:
Tp=64/1000;
t=0:0.0001:0.064;
Fs=200;T=1/Fs;
N=Tp*Fs;
n=0:N-1;
A=444.128;a=pi*50*2^0.5;w=pi*50*2^0.5;
x1=A*exp(-a*n*T).*sin(w*n*T);
subplot(211);
stem(n,x1);
[X1,w]=freqz(x1,1);
X2=T*fft(x1,N);
wk=2*pi*n/N;
fk=n/Tp;
subplot(212);plot(fk,abs(X2));
(2)频域采样理论的验证。
分别画出 、 的幅度谱,并绘图显示x(n)、 的波形,进行对比和分析,验证总结频域采样理论。
M=26;N=32;n=0:M;
xa=0:M/2;xb=ceil(M/2)-1:-1:0;xn=[xa,xb];
w=0:2*pi/1024:2*pi;
X=freqz(x,1,w);
subplot(321);
plot(w/pi,abs(X));
n=0:26;
subplot(322);stem(n,x);
m1=floor(length(X)/16);
n1=1:16;
X1=X(m1*n1-63);
subplot(323);n1=0:15;
stem(n1,abs(X1));
x16=ifft(X1,16);
subplot(324);stem(n1,x16);
m2=floor(length(X)/32);
n2=1:32;
X2=X(m2*n2-31);
subplot(325);stem(n2,abs(X2));
x32=ifft(X2,32);
subplot(326);stem(n2,x32);