将其从横截型转换为级联型结构,并画出各种结构的流程图。 五、 实验程序
b=[8,-4,11,-2]; %输入系统函数b参数 a=[1,-1.25,0.75,-0.125]; %输入系统函数a参数 [sos,g]=tf2sos(b,a) %由直接型转换为级联型 [r,p,k]=residuez(b,a) %由直接型转换为并联型
六、 试验结果分析
实验三 用双线性变换法设计IIR数字滤波器
一、 实验目的
(1) 加深对双线性变换法设计FIR数字滤波器的基本原理的理解; (2) 掌握用双线性变换法设计数字低通、高通、带通滤波器的设计; (3) 了解MATLAB有关双线性变换法设计的常用子函数。 二、 实验原理
1. 设计思想
21?z?1s平面与z平面之间满足以下映射关系:s?
Ts1?z?1s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。双线性变换不存在混叠问题。
双线性变换是一种非线性变换??畸变可通过预畸而得到校正。
2. 设计步骤
((1)确定数字滤波器的性能指标:通带临界频率fp、阻带临界频率fs;通带内的最大衰减Ap;阻带内的最小衰减As;
(2)确定相应的数字角频率?p?2?fp,?s?2?fs; (3)计算经过预畸的相应模拟低通原型的频率??2tg(?/2); Ts2tg(?/2),这种非线性引起的幅频特性Ts (4)根据?p和?s计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha?s?;
(5)用上面的双线性变换公式代入Ha?s?,求出所设计的传递函数H?z?; (6)分析滤波器特性,检查其指标是否满足要求。 三、
实验仪器
微型计算机、MATLAB
四、 实验内容
(1) 采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:通带截止频率?p?0.25?,?p?1dB,阻带截止频率?s?0.4?,?s?15dB,滤波器的采样频率
fs?100Hz,并画出滤波器的幅频响应曲线和相频响应曲线以及零极点图。
五、 实验程序
%双线性变换法设计巴特沃斯数字低通滤波器 %数字滤波器指标
wp=0.25*pi; %滤波器的通带截止频率 ws=0.4*pi; %滤波器的阻带截止频率
Rp=1;As=15; %输入滤波器的通阻带衰减指标 ripple=10^(-Rp/20); Attn=10^(-As/20);
%转换为模拟原型滤波器指标 Fs=100;T=1/Fs;
Omgp=(2/T)*tan(wp/2); Omgs=(2/T)*tan(ws/2); %模拟原型滤波器计算
[n,Omgc]=buttord(Omgp,Omgs,Rp,As,'s') %计算阶数n和截止频率 [z0,p0,k0]=buttap(n); %归一化切比雪夫1型原型设计 ba=k0*real(poly(z0)); %求原型滤波器系数b aa=real(poly(p0)); %求原型滤波器系数a
[ba1,aa1]=lp2lp(ba,aa,Omgc);%变换为模拟低通滤波器
%注意,以上4行求滤波器系数ba1、aa1的程序,可由下一条程序替代 %[ba1,aa1]=butter(n,Omgc,'s'); %直接求模拟滤波器系数 %用双线性变换法计算数字滤波器系数 [bd,ad]=bilinear(ba1,aa1,Fs) %双线性变换
[sos,g]=tf2sos(bd,ad) %由直接型变换为级联型 %求数字系统的频率特性 [H,w]=freqz(bd,ad);
dbH=20*log10(abs(H)/max(abs(H))); %化为分贝值 %
subplot(2,2,1),plot(w/pi,abs(H));
ylabel('|H|');title('幅度响应');axis([0,1,0,1.1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]);
set(gca,'YTickMode','manual','YTick',[0,Attn,ripple,1]);grid subplot(2,2,2),plot(w/pi,angle(H)/pi);
ylabel('\\phi');title('相位响应');axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]); set(gca,'YTickMode','manual','YTick',[-1,0,1]);grid subplot(2,2,3),plot(w/pi,dbH);title('幅度响应(dB)'); ylabel('dB');xlabel('频率(\\pi)');axis([0,1,-40,5]);
set(gca,'XTickMode','manual','XTick',[0,0.25,0.4,1]); set(gca,'YTickMode','manual','YTick',[-50,-15,-1,0]);grid subplot(2,2,4),zplane(bd,ad);
axis([-1.1,1.1,-1.1,1.1]);title('零极图');
六、 试验结果分析
1 、滤波器的幅频响应曲线和相频响应曲线以及零极点图:
七、 思考题
使用双线性变换法时,数字频率与模拟频率有何关系?会带来什么影响?如何解决?
实验四 用窗函数法设计FIR数字滤波器
一、
实验目的
(1) 加深对窗函数法设计FIR数字滤波器的基本原理的理解;
(2) 学习用MATLAB语言的窗函数法编写设计FIR数字滤波器的程序; (3) 了解MATLAB有关窗函数法设计的常用子函数。 二、
实验原理
1. 设计思想
从时域从发,设计h(n)逼近理想hd(n)。设理想滤波器Hd(ej?)的单位脉冲响应为hd(n)。hd(n)一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要想得到一个因果的有限长的滤波器h(n),最直接的方法是截断h(n)?hd(n)w(n),即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。
2. 设计步骤
(1)根据过渡带和阻带衰减设计指标选择窗函数的类型,并估算滤波器的阶数N:
(2)由数字滤波器的理想频率响应H(ej?)求出理想的单位冲激响应hd(n)。 (3)计算数字滤波器的单位冲激响应h(n),h(n)?hd(n)w(n)。 (4)检查设计出的滤波器是否满足技术指标。
若不满足技术指标,则需重新选择或调整窗函数的类型,估算滤波器的阶数
N,再重复前面的四个步骤,直到满足指标为止。
三、 实验仪器
微型计算机、MATLAB 四、
实验内容
选择合适的窗函数设计FIR数字低通滤波器。要求:通带截止频率
?p?0.3?,?p?0.05dB,阻带截止频率?s?0.45?,?s?50dB,描绘实际滤波器的脉冲响应、窗函数及滤波器的幅频响应曲线和相频响应曲线。 五、
实验程序
%FIR低通滤波器