文档库 最新最全的文档下载
当前位置:文档库 › 实验报告基于MATLAB的数字滤波器设计

实验报告基于MATLAB的数字滤波器设计

实验7\8 基于MATLAB 的数字滤波器设计

实验目的:加深对数字滤波器的常用指标和设计过程的理解。

实验原理:低通滤波器的常用指标:

通带边缘频率:P ω,阻带边缘频率:

S ω ,通带起伏:P δ,通带峰值起伏: ])[1(log 2010dB p p δα--=,阻带起伏:s δ,最小阻带衰减: ])[(log 2010dB s S δα-=。

数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。

在MATLAB 中,可以用[b ,a]=butter (N,Wn )等函数辅助设计IIR 数字滤波器, 也可以用b=fir1(N,Wn,’ftype ’) 等函数辅助设计FIR 数字滤波器。

实验内容: 利用MATLAB 编程设计一个数字带通滤波器,指标要求如下:

通带边缘频率:

πω45.01=P ,πω65.02=P ,通带峰值起伏:][1dB p ≤α。 阻带边缘频率:πω3.01=S ,πω75.02=S ,最小阻带衰减: ][40dB S ≥α。 分别用IIR 和FIR 两种数字滤波器类型进行设计。

实验要求:给出IIR 数字滤波器参数和FIR 数字滤波器的冲激响应,绘出它们的幅度和相位

频响曲线,讨论它们各自的实现形式和特点。

实验内容:

IRR 代码:

wp=[0.45*pi,0.65*pi];

ws=[0.3*pi,0.75*pi];

Ap=1;

As=40;

[N,Wc]=buttord(wp/pi,ws/pi,Ap,As) ;

[b,a]=butter(N,Wc)%[b,a] = butter(n,Wn,'ftype')

[H,w]=freqz(b,a);

subplot(211);

mag=abs(H);

plot(w/pi,mag);

xlabel('角频率(w)');

ylabel('幅度|Ha(j\w)|');

title('IIR|Ha(j\w)|');

grid on;

subplot(212);

phase=angle(H);

plot(w/pi,phase);

xlabel('角频率(w)');

ylabel('相位');

title('IIR 相位响应曲线');

grid on;

图像:

FIR 代码:

>> wp1 = 0.4*pi; wp2 = 0.6*pi;

>> ws1 = 0.3*pi; ws2 = 0.7*pi;

>> tr_width = min((wp1-ws1),(ws2-wp2)) >> tr_width =0.3142

>> M = ceil(6.2*pi/tr_width) + 1

>> M = 63

>> n=[0:1:M-1];

>> wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; >> wc=[wc1/pi,wc2/pi];

>> window= hanning(M);

>> [h1,w]=freqz(window,1);

>> figure(1);

>> subplot(2,1,1)

>> stem(window);

>> axis([0 60 0 1.2]);

>> grid;

>> xlabel('n');

>> title('Hanning窗函数');

>> subplot(2,1,2)

>> plot(w/pi,20*log(abs(h1)/abs(h1(1)))); >> axis([0 1 -350 0]);

>> grid;

>> xlabel('w/\pi');

>> ylabel('幅度(dB)');

>> title('Hanning窗函数的频谱');

>> hn = fir1(M-1,wc, hanning (M));

>> [h2,w]=freqz(hn,1,512);

>> figure(2);

>> subplot(2,1,1)

>> stem(n,hn);

>> axis([0 60 -0.25 0.25]);

>> grid;

>> xlabel('n');

>> ylabel('h(n)');

>> title('Hanning窗函数的单位脉冲响应'); >> subplot(2,1,2)

>> plot(w/pi,20*log(abs(h2)/abs(h2(1)))); >> grid;

>> xlabel('w/\pi');

>> ylabel('幅度(dB)');

>> figure(3);

>> phase=angle(h1);

>> plot(phase);

>> axis([1 pi -1 0]);

>> xlabel('w/\pi');

>> ylabel('线性相位');

>> title('Hanning窗函数相位特性曲线')

相关文档
相关文档 最新文档