ws=2500*2*pi; Rp=3; Rs=25; Fs=8000; Ts=1/Fs;
%选择滤波器的最小阶数
[N,Wn]=buttord(wp,ws,Rp,Rs,'s');%创建butterworth模拟滤波器 [Z,P,K]=buttap(N);
%把滤波器零极点模型转化为传递函数模型 [Bap,Aap]=zp2tf(Z,P,K);
%把模拟滤波器原型转换成截至频率为Wn的低通滤波器 [b,a]=lp2lp(Bap,Aap,Wn);
%用双线性变换法实现模拟滤波器到数字滤波器的转换 [bz,az]=bilinear(b,a,Fs); %绘制频率响应曲线 [H,W]=freqz(bz,az); plot(W*Fs/(2*pi),abs(H)); grid
xlabel('频率/Hz')
ylabel('幅度')
例题2:模拟原型直接变换法设计数字滤波器:
已知四阶归一化低通巴特沃斯模拟滤波器系统函数为Ha?s??1,编432s?2.6131s?3.4142s?2.6131s?1写MATLAB程序实现从Ha?s?设计3dB截止频率为wc??2,设采样周期为T=1,的四阶低通巴特沃斯数字滤波器。
程序如下:步骤一:将设计内容题所给归一化巴特沃斯低通滤波器以3dB截止频率为wc??2进行去归一化。
Ha(s)?16.0000
s4?5.2262s3?13.6568s2?20,9048s?16.0000步骤二:用双线性变化法将低通模拟滤波器Ha(s)变换为低通数字滤波器H(z)
5
0.0940?0.3759z?1?0.5639z?2?0.3759z?1?0.0940H(z)? ?2?41?0.4860z?0.0177z
3、已知四阶归一化低通巴特沃斯模拟滤波器系统函数为Ha(s)?1,编写MATLAB程
s4?5s3?2s2?2s?1序实现从Ha?s?设计3dB截止频率为wc??4的四阶高通巴特沃斯数字滤波器。
设计程序如下:
clear;
T=1; fs=1/T; N=4; wc=pi/2;
omegach=2*tan(wc/2)/T;%模拟滤波器的截止频率 M=1;
N=[1,2.6131,3.4142,2.6131,1];
[h,w]=freqs(M,N,512); %模拟滤波器的幅频响应 subplot(2,1,1);
plot(w,20*log10(abs(h))); axis([0,10,-90,0]),grid on;
xlabel('Hz');ylabel('幅度'); title('归一化模拟低通滤波器'); [Ms,Ns]=lp2lp(M,N,omegach); %对低通滤波器进行频率变换 [hs,ws]=freqs(Ms,Ns,512); %模拟滤波器的幅频响应 subplot(2,1,2);plot(ws,20*log10(abs(hs))); grid;
axis([0,10,-90,0]);
xlabel('Hz');ylabel('幅度'); title('去归一化模拟低通滤波器'); [Mz,Nz]=bilinear(Ms,Ns,1/T); %对模拟滤波器双线性变换 [h1,w1]=freqz(Mz,Nz); %数字滤波器的幅频响应 figure
plot(w1/pi,20*log10(abs(h1))); grid;
xlabel('ω/π');ylabel('幅度(dB)'); title('数字低通滤波器'); axis([0,1,-160,0])
6
归一化模拟低通滤波器0幅度-500123567Hz去归一化模拟低通滤波器489100幅度-50012356Hz数字低通滤波器4789100幅度(dB)-50-100-15000.10.20.30.40.5ω/π0.60.70.80.91
四、实验内容
1、采样速率为10000Hz,要求设计一个巴特沃斯带阻滤波器,fp=[1000Hz,1500Hz],fs=[1200Hz,1300Hz],
Rp=3dB,Rs=30dB。
程序:
fn=10000;%采样频率
fp=[1000,1500]; %通带截止频率 fs=[1200,1300]; %阻带起始频率 Rp=3; %通带最大衰减 Rs=30;%阻带最小衰减
Wp=fp/(fn/2);%计算归一化角频率 Ws=fs/(fn/2);
[n,Wn]=buttord(Wp,Ws,Rp,Rs);%计算阶数和截止频率
[b,a]=butter(n,Wn,'stop');%计算H(z)分子、分母多项式系数
[H,F]=freqz(b,a,1000,8000);%计算H(z)的幅频响应,freqz(b,a,计算点数,采样速率) subplot(2,1,1)
plot(F,20*log10(abs(H))) %画出幅频特性图
xlabel('Frequency(Hz)'); ylabel('Magnitude(dB)') title('带阻滤波器')
axis([0 4000 -30 3]);grid on pha=angle(H)*180/pi;
7
subplot(2,1,2)
plot(F,pha);grid on %画出相频特性图 xlabel('Frequency(Hz)'); ylabel('phase');
提示:[b,a]=butter(N,Wc,'stop')
2、 采样速率为10000Hz,要求设计一个带通滤波器,fp=[1000Hz,1500Hz],fs=[600Hz,1900Hz],Rp=3dB,
Rs=20dB。
程序:
fn=10000;%采样频率
fp=[1000,1500]; %通带截止频率 fs=[600,1900]; %阻带起始频率 Rp=3; %通带最大衰减 Rs=20;%阻带最小衰减
Wp=fp/(fn/2);%计算归一化角频率 Ws=fs/(fn/2);
[n,Wn]=buttord(Wp,Ws,Rp,Rs);%计算阶数和截止频率 [b,a]=butter(n,Wn);%计算H(z)分子、分母多项式系数
[H,F]=freqz(b,a,1000,8000);%计算H(z)的幅频响应,freqz(b,a,计算点数,采样速率) subplot(2,1,1)
plot(F,20*log10(abs(H))) %画出幅频特性图 xlabel('Frequency(Hz)'); ylabel('Magnitude(dB)') title('带通滤波器') axis([0 4000 -30 3]);grid on
8
相关推荐: