数字信号处理实验讲义2015-9-6 联系客服

发布时间 : 星期三 文章数字信号处理实验讲义2015-9-6更新完毕开始阅读3d134e249b89680202d82548

%xh13模拟低通滤波器技术指标 αp=1; αs=20; fp=300; fs=800; Ωp=2*pi*fp; Ωs=2*pi*fs;

%设计模拟巴特沃斯低通滤波器

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,'s')

[b,a]=butter(N,Ωc,'s') %设计模拟巴特沃斯低通滤波器,Ωp为通带边界频率,rad/s;Ωs为阻带边界频率,rad/s;αp为通带最大衰减,dB;αs为阻带最小衰减,dB;'s'表示为模拟滤波器;函数返回值N为模拟滤波器的最小阶数;Ωc为模拟滤波器的截止频率(-3dB频率),rad/s;b、a分别为模拟滤波器的系统函数分子和分母多项式系数向量; [H,Ω]=freqs(b,a); %求模拟滤波器的频率响应 %绘制频响幅度谱

plot(Ω/2/pi,20*log10(abs(H))); %横轴为频率,单位:HZ;纵轴频响幅度,单位:dB axis([0,1500,-50,0]);

xlabel('频率Hz');ylabel(' H幅值dB');

例2:设计模拟巴特沃斯高通滤波器,fp=800Hz,αp=1dB,fs=300Hz,αs=20dB。 %xh14模拟高通滤波器技术指标 αp=1; αs=20; fp=800; fs=300; Ωp=2*pi*fp; Ωs=2*pi*fs;

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,'s')

[b,a]=butter(N,Ωc,'high','s') %设计模拟巴特沃斯高通滤波器,Ωp为通带边界频率,rad/s;Ωs为阻带边界频率,rad/s;αp为通带最大衰减,dB;αs为阻带最小衰减,dB;'s'表示为模拟滤波器;函数返回值N为模拟滤波器的最小阶数;Ωc为模拟滤波器的

21

截止频率(-3dB频率),rad/s;b、a分别为模拟高通滤波器的系统函数分子和分母多项式系数向量;

[H,Ω]=freqs(b,a);

plot(Ω/2/pi,20*log10(abs(H))); axis([0,1000,-50,0]);

xlabel('频率Hz');ylabel(' H幅值dB');

例3:fp=0.1kHZ,αp=1dB,fs=0.3kHZ,αs=25dB,T=1ms;分别用脉冲响应不变法和双线性变换法设计一个Butterworth数字低通滤波器。 %xh15采用冲击响应不变法 αp=1; αs=25; fp=100; fs=300; Ωp=2*pi*fp;

Ωs=2*pi*fs; %数字滤波器技术指标要求转化成模拟滤波器技术指标要求 fs1=1000; %采样频率 %设计模拟滤波器

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,'s'); [b,a]=butter(N,Ωc,'s');

[B,A]=impinvar(b,a,fs1) %用冲击响应不变法将模拟滤波器变换成数字滤波器。B、A分别为数字滤波器的系统函数分子和分母多项式系数向量; [H1,w]=freqz(B,A,'whole'); %求数字滤波器的频率响应 %绘制数字滤波器频响幅度谱

subplot(211);plot(w*fs1/2/pi,20*log10(abs(H1))); axis([0,1000,-100,0]);

xlabel('频率Hz');ylabel(' H1幅值dB'); %采用双线性变换法 %数字滤波器的技术指标要求

wp=2*pi*fp/fs1; %数字滤波器通带边界频率 ws=2*pi*fs/fs1; %数字滤波器阻带边界频率

22

%变换为同类型模拟滤波器的技术指标要求

Ωp=2*fs1*tan(wp/2); %同类模拟滤波器通带边界频率 Ωs=2*fs1*tan(ws/2); %同类模拟滤波器阻带边界频率 %设计同类型模拟滤波器

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,'s'); [b,a]=butter(N,Ωc,'s');

%用双线性变换法将模拟滤波器变换成数字滤波器 [B,A]=bilinear(b,a,fs1)

[H2,w]=freqz(B,A,'whole'); %求数字滤波器的频率响应 %绘制数字滤波器频响幅度谱

subplot(212);plot(w*fs1/2/pi,20*log10(abs(H2))); axis([0,1000,-100,0]);

xlabel('频率Hz');ylabel('H2幅值dB');

例4:设计一数字高通滤波器,它的通带为400~500Hz,通带内容许有0.5dB的波动,阻带内衰减在小于317Hz的频带内至少为19dB,采样频率为1,000Hz。 %xh16

Ωp=2*1000*tan(2*pi*400/(2*1000)); Ωs=2*1000*tan(2*pi*317/(2*1000)); [N,Ωc]=cheb1ord(Ωp,Ωs,0.5,19,'s'); [b,a]=cheby1(N,0.5,Ωc,'high','s'); [B,A]=bilinear(b,a,1000); [H,w]=freqz(B,A);

f=w/pi*500; %f等于数字角频率除以2?Ts plot(f,20*log10(abs(H))); axis([0,500,-80,10]); grid;

xlabel('频率Hz'); ylabel('幅度/dB');

例5: 利用MATLAB编程设计一个Butterworth数字带通滤波器,指标要求如下: 通带边缘频率:ωp1=0.45?rad,ωp2=0.65?rad,通带峰值起伏:αp≤1dB; 阻带边缘频率:

23

ωs1=0.3?rad,ωs2=0.8?rad,最小阻带衰减:αs≥40dB。分别用脉冲响应不变法和双线性变换法进行IIR数字滤波器的设计。Ts=0.125ms 1.双线性变换法(巴特沃兹原型): %xh17 fs1=8000;

Ωs1=2*fs1*tan(0.3*pi/2); Ωs2=2*fs1*tan(0.8*pi/2); Ωp1=2*fs1*tan(0.45*pi/2); Ωp2=2*fs1*tan(0.65*pi/2); Ωs=[Ωs1 Ωs2]; Ωp=[Ωp1 Ωp2]; αp=1; αs=40;

[N,Ωc]=buttord(Ωp,Ωs,αp,αs,'s'); [b,a]=butter(N,Ωc,'s'); [B,A]=bilinear(b,a,fs1); [H,w]=freqz(B,A); f=w/2/pi*fs1; subplot (2,1,1);

plot(f,20*log10(abs(H))); axis([0,4000,-60,10]);

grid; xlabel('频率/Hz') ;ylabel('幅度/dB'); subplot(2,1,2); plot(f,angle(H));

grid; xlabel('频率/Hz') ;ylabel('相位'); 2.脉冲响应不变法(巴特沃兹原型): %xh18 Fs1=8000;

Ωs1=0.3*pi*fs1; Ωs2=0.8*pi*fs1; Ωp1=0.45*pi*fs1; Ωp2=0.65*pi*fs1; Ωs=[Ωs1 Ωs2]; Ωp=[Ωp1 Ωp2]; αp=1; αs=40;

24