模拟滤波器与数字滤波器的Matlab转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%IIR滤波器设计
%首先确定
%通带和阻带截止频率Wp Ws rad/s此截至频率对应下面的最大衰减与最小衰减,不要与三分贝点弄混了
%通带最大衰减与阻带最小衰减Rp Rs dB
%现在设计通带截止频率10HZ通带最大衰减2dB阻带截止频率20HZ阻带最小衰减12dB的
%模拟滤波器然后将其转化为一个数字滤波器
%转化分为两种方法
%1.脉冲响应不变该法设计出的滤波器幅频特性更接近于模拟滤波器
%2.双线性法抗混叠性能更好
fp=10;fs=20;
Rp=2;Rs=12;
Wp=2*pi*fp;Ws=2*pi*fs;
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s')%注意此时为模拟滤波器
fn=Wn/(2*pi);
[z0,p0,k0]=buttap(N);%注意此时是归一化的buttord
%相当于去归一化以Wn做因子进行扩展
z0=Wn*z0;%零点
p0=Wn*p0;%极点
k0=Wn^N*k0;%增益
b=real(poly(z0));
b=b*k0;
a=real(poly(p0));%a为直接分母系数,b为直接分子系数
[H,w]=freqs(b,a);%系统频率特性
f=w./(2*pi);
figure(1)
subplot(311)
plot(f,20*log10(abs(H)/max(abs(H))));
title('幅频特性曲线');
xlabel('f:HZ');ylabel('abs(H)/max(abs(H)');
grid
%脉冲响应不变法
%数字频率转化即为模拟频率在折叠频率内的归一化
%通带和阻带截止频率Wp Ws rad/s
%Wn为3dB截止频率
d1Wp=Wp/100;
d1Ws=Ws/100;
w1n=Wn/100;
%脉冲响应不变
[bz,az]=impinvar(b,a,100);%a为直接分母系数,b为直接分子系数这应该是程序员最关心的参数了哈哈哈
[zz,pz,kz]=residuez(bz,az);
[Hz,wz]=freqz(bz,az);
subplot(312);
plot((wz./2*pi),20*log10(abs(Hz)/max(abs(Hz))));
grid
%双线性变换抗混叠性能更好
%Wn为3dB截止频率
d2Wp=atan(Wp/(2*100));
d2Ws=atan(Ws/(2*100));
w2n=atan(Wn/(2*100));
%双线性变换
[bz1,az1]=bilinear(b,a,100);
[zz1,pz1,kz1]=residuez(bz1,az1);
[Hz1,wz1]=freqz(bz1,az1);
subplot(313);
plot((wz1./2*pi),20*log10(abs(Hz1)/max(abs(Hz1))));
grid