您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页实验5 基于Matlab的数字滤波器设计

实验5 基于Matlab的数字滤波器设计

来源:尚车旅游网


实验五 基于Matlab的数字滤波器设计

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

实验原理:低通滤波器的常用指标如下所述,其典型规格如下:

1pG(ejw)1p,wwpjwG(e),wwss

通带边缘频率:

pp 阻带边缘频率:s

p20log10(1p)(dB)通带起伏: 通带峰值起伏:

阻带起伏: s 最小阻带衰减:s20log10(s)(dB)

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

一、窗函数法设FIR滤波器

在Matlab中产生窗函数十分简单:

(1) 矩形窗

调用格式:w=boxcar(n) ,根据长度n产生一个矩形窗w。

(2) 三角窗

调用格式:w=triang(n) ,根据长度n产生一个三角窗w。

(3)汉宁窗

调用格式:w=hanning(n) ,根据长度n产生一个汉宁窗w。

(4)汉明窗

调用格式:w=hamming(n) ,根据长度n产生一个汉明窗w。

(5)布莱克曼窗

调用格式:w=Blackman(n) ,根据长度n产生一个布莱克曼窗w。

基于窗函数的FIR滤波器设计利用Matlab提供的函数firl来实现。

调用格式:firl(n,wn,’ftype’,Window),n为阶数,wn是截止频率(如果输入是形如[w1 w2]的矢量时,本函数将设计带通滤波器,其通带为w11、设计一个长度为8的线性相位FIR滤波器。

Window=boxcar(8); b=fir1(7,0.4,Window); freqz(b,1);

Window=blackman(80;

b=fir1(7,0.4,Window); freqz(b,1);

2、设计线性相位带通滤波器,其长度N=15,上下边带截止频率分别为w1=0.3,w2=0.5

Window=blackman(16); B=firl(15,[0.3 0.5],Window); Freqz(b,1);

p0.2,Rp0.25dB,a0.3,As50dB3、设计指标为,的底通滤波器。

见课本P197。

二、IIR滤波器的实现

(1)脉冲响应不变法设计数字ButterWorth滤波器

调用格式:[bz,az]=impinvar(b,a,Fs),再给定模拟滤波器参数b,a和取样频率Fs的前提下,计算数字滤波器的参数。两者的冲激响应不变,即模拟滤波器的冲激响应按Fs取样后等同于数字滤波器的冲激响应。

(2)利用双线性变换法设计数字滤波器ButterWorth滤波器

调用格式: [bz,az]=bilinear(b,a,Fs) ,根据给定的分子b,分母系数a和取样频率Fs,根据双线性变换将模拟滤波器变换成离散滤波器,具有分子系数向量bz和分母系数向量az

4、采样频率为1Hz,通带临界频率

fp0.2Hz,通带内衰减小于1dB(

p1);阻带

临界频率fs0.3Hz,阻带内衰减大于25dB(s25)。设计一个数字滤波器满足以上参数。

%直接设计数字滤波器

[n,wn]=buttord(0.2,0.3,1,25); [b,a]=butter(n,wn); freqz(b,a,512,1); %脉冲响应不变发设计数字滤波器

[n,wn]=buttord(0.2,0.3,1,25,'s'); [bz,az]=impinvar(b,a,1);

[b,a]=butter(n,wn,'s'); freqz(b,a)

freqz(bz,az,512,1); %双线性变换法设计ButterWorth数字滤波器

[n,wn]=buttord(0.2,0.3,1,25,'s'); [b,a]=butter(n,wn,'s'); freqz(b,a);

[bz,az]=bilinear(b,a,1); freqz(bz,az,512,1);

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

p10.45,p20.65,通带边缘频率:通带峰值起伏:

p1(dB))

阻带边缘频率:,s10.3,s20.75,最小阻带衰减:,s40(dB)。

分别用IIR和FIR两种数字滤波器类型进行设计。

实验要求:给出IIR数字滤波器参数和FIR数字滤波器的冲激响应,绘出它们的幅度和相位频响曲线,讨论它们各自的实现形式和特点。

参考程序:

(1) IIR数字滤波器实现(巴特沃什)

%Design of a Butterworth Bandpass Digital Filter

ws=[0.3 0.75];wp=[0.45 0.65];rp=1;rs=40;

%Estimate the Filter Order

[n1,wn1]=buttord(wp,ws,rp,rs);

%Design the Filter

[num,den]=butter(n1,wn1); [g,w,pha]=gain(num,den);

%Plot the gain and phase response

subplot(1,2,1); plot(w/pi,g); grid; axis([0 1 -60 5]); ylabel('Gain in dB');

title('巴特沃什带通滤波器增益响应');

subplot(1,2,2); plot(w/pi,pha); grid; xlabel('\\omega/\\pi'); title('巴特沃什带通滤波器相位响应');

xlabel('\\omega/\\pi'); ylabel('phase');

子程序

function[g,w,pha]=gain(num,den)

%Computes the gain function in dB of a

%transfer function at 256 equally spaced points

%on the unit circlr

w=0:pi/255:pi; h=freqz(num,den,w); g=20*log10(abs(h)); pha=angle(h);

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务