%例221:利用脉冲响应不变法,用巴特沃思原型设计并实现数字低通滤波器其中滤波器的技术
%指标如下:n=0.4T、R2=0.5dB、0,=0.67、A,=50dB,滤波器的采样频率为1kH。
%MATLAB程序如下:
%数字滤波器指标
wp=0.4*pi;%数字通带频率(Hz)
ws=0.6*pi %数字阻带频率
Rp=0.5;%通带波动(dB)
As=50;%阻带波动(dB)
Fs=1000;%置Fs=1000
Omegah=wp*Fs;%原型通带频率
Omegas=ws*Fs;%原型阻带频率
ep=sqrtt(10^(Rp/10)-1);%通带波动参数
Ripple=sqrt(1/(1+ep*ep));%通带波动
Attn=1/(10^(As/20));%阻带衰减
%模拟巴特沃思原型滤波器计算:
N, Omega]= button( Omega, Omegas,Rp,As,s);%原型的阶数和截止频率的计算
[ z0, pO, ko]=buttap(N);%归一化巴特沃思原型设计函数
p=pO*OmegaC; Z=z0* OmegaC
%将零极点乘以OmB,得到非归一化零极点
k=k0* Omega^N;%将kO乘以 MegacIN,得到非归一化k
ba=k*real(poly(z);%由零点计算分子系数向量
aa=real( poly(p)): %由极点计算分母系数向量
bd,ad= ImpInger(ba,a,1s);%调用脉冲响应不变法函数
%检验频率响应
%计算数字系统频率响应
H,w=freqz( bd, ad, 1000, 'whole');
1:501)' %取其前一半,并化为列向量
H=(H(1:1:501))';w=(w(1:1:501))';
mag=abs(H);%求其幅特性
db=20 * logl0(( magteps)/m( mag));%化为分贝值
pha=ange(H);%求其相特性
grd=grpdelay(ba,ad,w);%求其群迟延特性
subplot(2, 2, 1): plot(w/pi,mag);titile('幅度响应')
xlabel('); ylabel('|H|');axis([0,1,0,1])
set( gca, 'XTick Mode', 'manual', 'XTick',[0,0.4, 0.6, 11); grid on; %画刻度线
set(gca,' YTick Mode,' manual', YTIck',[0,Atn, Ripple,1])
subplot(2,2,3);plot(w/pi,db);tite('幅度(单位:dB)');
xlabel(频率(单位:pi));ylabel('分贝')
set(gea, XTick Mode',' manual',' TIck',[0,0.4,0.6,1]);%画刻度线
set(gca,' YTick Mode',' manual',' TIck',[-100,-50,0,50); grid on;
%set(gea,' YTick Label Mode',' manual',' YTick Labels',['-100;'-50;0;50']);
subplot(2, 2, 2); plot(w/pi, pha /pi);title('相位响应”);
xlabel(''); ylabel('单位:pi');axis([0,1,-1,1);
set(gea, XTick Mode',' manual', TIck',[0,0.4,0.6,1]):%画刻度线
set(gea,' YTick Mode',' manual',' TIck',[-1,0,1]); grid on
subplot(2,2,4);plot(w/pi,grd); title('群延迟')
xlabe(频率(单位:pi)'); ylabel('样本');axis([0,1,0,20])
set(gca,' XTick Mode',' manual'," TIck',[0,0.4,0.6,1]);
set(gca,' YTick Mode',' manual',Yick',[0:2:201);
set(gef,' color',w')%置图形背景色为白色
例22-2:按照例22-1的技术指标,p=0.4m、R2=0.5dB、,=0.6、A,=50dB,采样频率为1kHz
利用双线性变换法,用巴特沃思设计并实现数字低通滤波器。
ATLAB程序如下
%数字滤波器指标:
P=0.4*pi;%数字通带频率(弧度
ws=0.6*pi;%数字阻带频率(弧度
Bp=0.5;%通带波动(dB
=50;%阻带衰减(dB
%模拟原型指标的频率逆映射
Fs=1000:T=1/Fs
Omega=(2/T)*tan(wp/2);%原型通带频率预修正
Omegas=(2/T)*tan(ws/2);%原型阻带频率预修正
1-
sqrt(10(Rp/10)-1);%通带波动参数
Ripple=sqrt(1/(1+ep*ep);%通带波动
Atn=1/(10(As/20));%阻带衰减
%模拟巴特沃思原型滤波器计算
%画刻线
N, Omega]= button( Omega, Omegas,Rp,As,'s');%原型的阶数和截止频率计算
[z0,p0,k0]= buttap(N);%归一化巴特沃思原型设计函数
p=p0* OmegaO;z=20* Omega;%将零极点乘以 Omega,得到非归一化零极点
k=k0* OmegaT;%将k0乘以 Omega N,得到非归一化k
ba0=real(poly(20));ba0=k0*ba0%由零点计算分子系数向量
0=real(ply(p0))%由极点计算分母系数向量
ba=real( poly(z))
k*ba%由零点计算分子系数向量
on;
a=real(poly(p))%由极点计算分母系数向量
Inear
Fs);%双线性变换:
[bd1,ad1]= bilinear(ba0,a0,Fs/ Omega);%双线性变换
%绘图
gure
sun
应
[H,w]= fretz(bd,ad,1000, whole');%计算数字系统频率响应
H=(H(1:1:501)';w=(w(1:1:501);%取其前一半,并化为列向量
g
=ab(H);%求其幅特性
db=20* loglo(mag+eps)/max( mag
%化为分贝值
ange(H);%求其相特性
d
grd=grp
dbaw):%求其群迟延特性
blot(2, 2, 1): plot( w
; title(('幅度响应
ylabel('
axis([0, 1,O
man
a1, TIck',0,0.4,0.6,1]); grid on;%画刻度线
set(gca, 'XTickI
set(gea,' YTick Mode',' manual'," TIck',[0,Atn, Ripple,1])
2,2,3);p
w/p,d):t(C幅度(单位:dB)
);axis([0,1,-100,50])
频率(单位
ylabel('分贝
第22单元R数字滤波属的设计1/20
wet(a,' XTiek Mode',' manual'," STick',[0.0.4,0.6,11);%画刻度线
wet(gea.'YTickmode',, 'YTick' (-100,-50,0, 501): grid on:
subplot(2,2,2);pot(w/p,pha/p);tle('相位响应);
yah(单位:p');axis([0,1,-1,11)
set( gra. 'XTick Mode', 'manual', 'XTick'[0,0.4,0.6. 13)
set( ga,'YTickmele', ' manual' 'YTiek', [-1. 0. 13): grid on
subplot((2,2,4):pl(w/p,rnl);tle('群延迟)
ad(率(单位:p)”);yahC样本);ai(0,1,0.201)
wt(ga,'YTiekmode', 'manual','YTiok'[0: 2: 20): grid on
t(gt.'eol''w)%置图形背景色为白色
程序运行结果如图22所示。
幅度响应
相位响应
频率单位
0406
须率单位;p
图222用双线性变换法设计的巴特沃思数字低通滤波器的频率特性
四、程序设计实验
实验22-1利用脉冲响应不变法和双线性变化法,用 Chebysher1型设计一个数字低通滤改
滤波器的技术指标如下;m=0.47、R2=0.5出B、a.=0.6A,=50dB,滤波器的采样频率为kH
五、思考题
1.直接影响数字器数的主要因素有哪些?
2.胜冲响应不变法和仅线性变换法的基本思想有什么不同,各自的优缺点是什么?
3.m滤波器无法实现线性相位,如例对B数字滤波器进行相位补偿?