原创 Lab3:无限冲激响应低通滤波器的设计

2009-1-20 11:20 3116 2 2 分类: 模拟

Lab3:无限冲激响应低通滤波器的设计
一iir原理:
时域分析:
设输入序列为x[n],输出序列为y[n],则
Y[n]=a0*x[n]+a1*x[n-1]+…+ai*x[n-i]
  -(b1*y[n-1]+ b2*y[n-2]+…..+ bj*y[n-j])(即与y有关)
对于iir的设计实际便是对于a0~ai与b1~bj系数的确定。
频域分析:
设输入序列为x[n],输出序列为y[n],x[n]序列的离散时间傅立叶变换X(ejw) ,Y[n]序列的离散时间傅立叶变换Y(ejw).
则:Y(ejw)= X(ejw)*H(ejw)。
其中H(ejw) =(a0*z-0+a1*z-1+ a2*z-2+…+ ai*z-i)/
(1*z-0+b1*z-1+b2*z-2+ b3*z-3+…+ bj*z-j).
即:即有分母,又有分子。


二 理解:
Conv(y,b)=conv(x,a)其中b0!=0(多为1)
即为输出序列y与系数序列b的卷积
等于输入序列x与系数序列a的卷积。
三  设计方法:
首先分析出滤波器的性能(wp,ws,Rp,Rs)。
直接设计方法:
(直接求出数字滤波器的系数序列)
1:首先利用阶数估算函数以及性能指标wp,ws,Rp,Rs作为函数输入。直接求数字滤波器的出最低阶数N与归一化截止频率Wn。
2:然后利用N,Wn,和一些参数去求出数字滤波器的系数序列a与b
3:利用freqz函数观察结果。(可省)
脉冲响应不变法设计:
(先求出模拟滤波器的系数序列,再转换为数字滤波器的系数序列)
1:首先利用阶数估算函数以及性能指标wp,ws,Rp,Rs作为函数输入。先求模拟滤波器的出最低阶数N与归一化截止频率Wn。
2:然后利用N,Wn,和一些参数去求出模拟滤波器的系数序列a与b
3:利用freqs函数观察结果。(可省)
4:利用impinvar()函数把模拟滤波器的系数序列转换为数字滤波器的系数序列
5:利用freqz函数观察结果。(可省)
双线性变换法设计:
(先求出模拟滤波器的系数序列,再转换为数字滤波器的系数序列)


1:首先利用阶数估算函数以及性能指标wp,ws,Rp,Rs作为函数输入。先求模拟滤波器的出最低阶数N与归一化截止频率Wn。
2:然后利用N,Wn,和一些参数去求出模拟滤波器的系数序列a与b
3:利用freqs函数观察结果。(可省)
4:利用bilinear()函数把模拟滤波器的系数序列转换为数字滤波器的系数序列
5:利用freqz函数观察结果。(可省)


四 matlab所用函数
4.1滤波器函数(模拟与数字均可以求)
功能:      估算阶数函数    计算系数函数
巴特沃兹滤波器: buttord,     butter
切比雪夫I滤波器: cheb1ord,     cheby1
切比雪夫II滤波器: cheb2ord,     cheby2
椭圆滤波器:  ellipord,     ellip


说明:
对于所有的低通iir滤波器而言,其标准为


标准:
1通带的边频:wp 见图
2阻带的边频:ws 见图
3峰通带波纹:Rp=20*log10(       )db (p86)
4最小阻带衰减:Rs=20*log10(A) db       (p86)
估算阶数的函数fn的统一用法:
[N,Wn]=fn(Wp,Ws,Rp,Rs)
说明:参数见上图
   返回值:N=满足指标的最低阶数,Wn=归一化截止频率
注意:也可以计算高通与带通滤波器。
计算系数的函数fc的统一用法(低通)
[num,den]=butter(N,Wn)
[num,den]=cheby1(N,Rp,Wn)
[num,den]=cheby2(N,Rs,Wn)
[num,den]=ellip(N,Rp,Rs,Wn)


注意:高通:参数还要加’high’高通    ,’stop’带阻,


注意:估算阶数函数与计算系数函数默认为求出数字滤波器(方法一)
若想求出模拟数字滤波器(方法二与三),则在所用的函数的参数中加入’s’


4.2模拟滤波器的系数序列转换为数字滤波器的系数序列函数
bilinear()双线性变换法
impinvar()脉冲响应不变法
4.3结果的观察(直接画出幅频与相频曲线)
Freqz();看数字滤波器的频域响应
Freqs();看模拟滤波器的频域响应



五:matlab示例
例]  采样频率为 1Hz,通带临界频率 fp =0.2Hz,通带内衰减小于 1dB(αp=1);阻带临界
频率 fs="0".3Hz,阻带内衰减大于 25dB(αs=25)。设计一个数字滤波器满足以上参数。


%直接设计数字滤波器
[n,Wn]=buttord(0.2,0.3,1,25); %无‘s’
[b,a]=butter(n,Wn); %无‘s’
freqz(b,a,512,1); %用freqz不用freqs
数字滤波器系数的序列a,b
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a=1.0000   -4.5037    9.3614  -11.5644    9.2168   -4.8281    1.6174   -0.3159    0.0275
%b=0.0000    0.0003    0.0012    0.0024    0.0030    0.0024    0.0012    0.0003    0.0000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%脉冲响应不变法设计数字滤波器
[n,Wn]=buttord(0.2,0.3,1,25,’s’); %有‘s’
[b,a]=butter(n,Wn,’s’); %有‘s’
freqs(b,a); %用freqs不用freqz
[bz,az]=impinvar(b,a,1);
freqz(bz,az,512,1);
模拟滤波器系数的序列a,b
数字滤波器系数的序列az,bz
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a=1.0000    1.2550    0.7875    0.3225    0.0947    0.0206    0.0033    0.0004    0.0000    0.0000
%b= 1.0e-005 *
         0         0         0         0         0         0         0         0         0    0.1109
%az=1.0000   -7.7485   26.7606  -54.0600   70.3876  -61.2489   35.6151  -13.3434    2.9225   -0.2851
%bz=1.0e-006 *
    0.0000    0.0000    0.0051    0.0772    0.2440    0.2122    0.0508    0.0025    0.0000         0
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%双线性变换法设计 ButterWorth 数字滤波器
[n,Wn]=buttord(0.2,0.3,1,25,’s’); %有‘s’
[b,a]=butter(n,Wn,’s’); %有‘s’
freqs(b,a) %用freqs不用freqz
[bz,az]=bilinear(b,a,1);
freqz(bz,az,512,1)
模拟滤波器系数的序列a,b
数字滤波器系数的序列az,bz
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%a= 1.0000    1.2550    0.7875    0.3225    0.0947    0.0206    0.0033    0.0004    0.0000    0.0000
%b=1.0e-005 *
         0         0         0         0         0         0         0         0         0    0.1109
%az= 1.0000   -7.7502   26.7721  -54.0942   70.4461  -61.3114   35.6580  -13.3618    2.9270   -0.2856
%bz=1.0e-006 *
    0.0012    0.0104    0.0417    0.0972    0.1458    0.1458    0.0972    0.0417    0.0104    0.0012
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
2
关闭 站长推荐上一条 /3 下一条