利用双线性变换法设计数字带通滤波器..doc
文本预览下载声明
西安邮电大学
数字信号处理课内上机报告
专业班级:
学生姓名:
学号(班内序号):
年 月 日
题目:设计一个数字带通滤波器,通带范围为0.3pi rad到0.4pi,通带最大衰减为3db,阻带最小衰减为 18db,0.2pi 以下和0.5pi以上范围为阻带。
采用切比雪夫型,利用双线性变换法设计之
源程序
%所设计的数字滤波器的指标
Ts = 0.1,Fs=1/Ts,Rp = 3,Rs = 18;
wp1=0.3*pi,wp2=0.4*pi;
ws1=0.2*pi,ws2=0.5*pi;
%频率的预畸变
Wp1=(2/T)*tan(wp1/2);
Wp2=(2/T)*tan(wp2/2);
Wp=[Wp1,Wp2]; %模拟滤波器的通带截止频率
Ws1=(2/T)*tan(ws1/2);
Ws2=(2/T)*tan(ws2/2);
Ws=[Ws1,Ws2]; %模拟滤波器的阻带截止频率 BW=Ws2-Ws1; %模拟滤波器的带宽
% BW=Wp2-Wp1;
Omegaw0=sqrt(Ws1*Ws2); %模拟滤波器的中心频率
% Omegaw0=sqrt(Wp1*Wp2);
%求模拟低通滤波器的阶数与边缘频率
[N,OmegaC]=cheb2ord(Wp,Ws,Rp,Rs,s);
%[N,OmegaC]=cheb1ord(Wp,Ws,Rp,Rs,s)
%求切比雪夫模拟低通滤波器的零、极点与增益
[z0,p0,k0]=cheb2ap(N,Rs);
%[z0,p0,k0]=cheb1ap(N,Rp);
%设计归一化的模拟原型带通滤波器
%求原型滤波器的分子系数
AnalogB=k0*real(poly(z0));
%求原型滤波器的分母系数
AnalogA=real(poly(p0));
%模拟低通到模拟带通的分子、分母系数的变换
[BandB,BandA]=lp2bp(AnalogB,AnalogA,Omegaw0,BW);
%双线性变换:模拟带通与数字带通的分子分母系数的变换
[DigitalB,DigitalA] = bilinear(BandB,BandA,Fs);
%变为二阶节级联结构
[sos,G] = tf2sos(DigitalB,DigitalA);
%求数字带通滤波器的幅频、相频特性、及其群延迟
%求数字带通滤波器的幅频特性
[Hz,Wz]=freqz(DigitalB,DigitalA,1024,whole);
%将数字带通滤波器的幅频特性转化为分贝表示
dbHz=20*log10((abs(Hz)+eps)/max(abs(Hz)));
%求数字带通滤波器的相频特性
φ=angle(Hz)
%求数字带通滤波器的群延迟特性
grd = grpdelay(DigitalB,DigitalA,Wz);
%作图
subplot(2,3,1);plot(Wz/pi,abs(Hz));title(幅频响应);
xlabel(),ylabel(幅度:|Hz|);axis([0,1,0,1.1]);
set(gca,XTickMode,manual,XTick,[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]);grid;
subplot(2,3,4);plot(Wz/pi,dbHz);title(模值(dB));
xlabel(频率(单位:\pi));ylabel(分贝(dB));axis([0,1,-40,5]);
set(gca,XTickMode,manual,XTick,[0,ws1/pi,wp1/pi,wp2/pi,ws2/pi,1]);
set(gca,YTickmode,manual,YTick,[-50,-30,-2,0]);
set(gca,YTickLabelMode,manual,YTickLabels,[50;30; 2; 0]);grid;
subplot(2,3,2);plot(Wz/pi,angle(Hz)/pi);title(相频响应);
xlabel();ylabel(单位:\pi );axis(
显示全部