基于MATLAB的滤波器的设计

2019-09-02 18:42

基于MATLAB高通滤波器的设计

[摘要]:滤波器可以分为模拟滤波器和数字滤波器两大类,其中模拟滤波器的设计已经很成熟,不仅有完整的设计公式,还有完善的图表和曲线供查阅;另外还有一些典型的优良滤波器类型共我们使用。数字滤波器可以分为IIR滤波器和FIR滤波器,其中IIR滤波器的设计方法有间接法和直接法两种;FIR滤波器不能采用间接法设计,其常用的方法有窗函数法、频率采样法和切比雪夫等纹逼近法。

[关键词]:模拟滤波器、数字滤波器、FIR滤波器、IIR滤波器。

一. IIR模拟高通滤波器的设计

1.设计方法

选频型模拟滤波器按幅频特性可分成低通、高通、带通和带阻滤波器,但设计滤波器时,总是先设计低通滤波器,再通过频率变换将低通滤波器转换成希望类型的滤波器。低通滤波器的设计方法有技术指标和逼近法、巴特沃斯滤波器和切比雪夫滤波器设计法等。 2.设计步骤

1)通过高通与低通滤波器的映射关系式,将希望设计的高通滤波器的指标转换成相应的低通滤波器的指标。 2)设计相应的低通系统函数Q?p?;

3)再用低通到高通滤波器的映射关系将设计好的模拟低通滤波器的函数式转换成希望设计的高通滤波器的系统函数Hd?s?。

3.实例设计

本例将设计一个巴特沃斯模拟高通滤波器,要求通带边界频率为4kHz,阻带边界频率为1kHz,通带最大衰减为0.1dB,阻带最小衰减为40dB。 1)低通到高通滤波器的映射关系式

p??p?phs公式1;

????p?ph?公式2;

将希望设计的高通滤波器的指标转换成相应低通滤波器Q?p?的指标。为了计算简单令?p=1。则由公式2可求的归一化阻带边界频率为

?s??ph?s?2??4000通带边界频率?p=1,?4转换得到低通滤波器的指标为:

2??1000阻带边界频率?s=4,通带最大衰减?p?0.1dB,阻带最小衰减?s?40dB。

2)为了设计方便该处将调用MATLAB函数buttord和butter来设计Q?p?。

3)用公式1将Q?p?转换成希望设计的高通滤波器的系统函数HHP?s?。该处调用MATLAB函数lp2hp实现低通到高通的变换。 4.基于MATLAB的模拟高通滤波器设计 wp=1;ws=4;Rp=0.1;As=40;

[N,wc]=buttord(wp,ws,Rp,As,'s'); [B,A]=butter(N,wc,'s'); wph=2*pi*4000;

[BH,AH]=lp2hp(B,A,wph); fk=0:0.001:10;wk=2*pi*fk; Q=freqs(B,A,wk); subplot(2,1,1);

plot(wk,20*log10(abs(Q)));grid on

xlabel('归一化频率');ylabel('幅度(dB)'); axis([0,10,-60,5]);

title('归一化低通滤波器Q(p)');

fkh=0:6000;wkh=2*pi*fkh; H=freqs(BH,AH,wkh); subplot(2,1,2);

plot(fkh,20*log10(abs(H)));grid on

xlabel('频率(Hz)');ylabel('幅度(dB)'); axis([0,6000,-60,5]);

title('高通滤波器H(s)'); 仿真如下:

图 1

二. IIR数字高通滤波器的设计

1. 设计方法

IIR数字滤波器的设计方法有两种一种是脉冲响应不变法另一种是双线性变换法。本例设计的是高通滤波器,如果要用脉冲响应不变法设计,为避免频谱混叠则要在高通滤波器之前加保护滤波器,滤除高于折叠频率?/T以上的频带,颇为不便,所以此处将用双线性变换法进行设计。在利用MATLAB设计的时候可以更简便,可以直接调用数字高通滤波器函数进行设计

2. 设计步骤

1)确定所需类型数字滤波器的技术指标

2)将所需类型数字滤波器的边界频率转换成相应类型模拟滤波器的边界频率转

21换公式为??tan?公式3。

T23)将相应类型模拟滤波器计数指标转换成模拟低通滤波器技术指标。 4)设计模拟低通滤波器。

5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。

6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字滤波器。

3. 数字高通滤波器的传统方法设计

设计一个数字高通滤波器,要求通带介质频率?p?0.8?rad,通带衰减不大于3dB,阻带截止频率?s?0.44?rad,阻带衰减不小于15dB。希望采用巴特沃斯型滤波器。下边是传统设计方法

1) 确定数字高通技术指标:

?p?0.8?rad,?p?3dB ?s?0.44?rad,?s?15dB

1) 将高通数字滤波器的及数字表转换成高通模拟了滤波器的及数字表:令

T=2s,预畸变校正得到模拟边界频率:

1?ph?tan?p?3.0775rad/s,?p?3dB

21?sh?tan?s?0.8275rad/s,?s?15dB

21) 模拟低通滤波器的技术指标计算如下:对带通边界频率归一化,即

?p??c?1,?p?3dB将?p?1和-?sh带入公式,求出归一化低通滤波

器的阻带截止频率

?s??ph?sh=3.7190,?s?15dB

1) 设计归一化模拟滤波器G?p?

ksp?100.1?s?1100.1?p?1?5.5463,?sp??s?3.719 ?pN?lgksplg?sp2取N?2查表可得归一化模拟低通原型系统函数G?p?为 ?1.3043,

G?p??1p?2p?1

1) 利用频率变换公式即公式1将G?p?转换成模拟高通HHP?s?:

Ha?s??G?p?p??p?phss2?2 s?4.3522s?9.47101) 利用双线性变换法将模拟高通Ha?s?数字高通H(z):

H(z)?Ha?s?s?21?z?11?z?10.1326?0.2653z?1?0.1326z?2 ??1?21?0.7394z?0.2699z4. 基于MATLAB的数字高通滤波器的设计

传统的设计步骤用MATLAB实现起来比较麻烦,对于新手而言程序过长,容易出错,所以该处用比较简单的另一种方法设计,直接调用MATLAB中的数字高通滤波器函数进行设计,该方法程序短容易理解和应用。设计程序如下: wpz=0.8;wps=0.44;rp=3;rs=15;

[N,wc]=buttord(wps,wpz,rp,rs);

[Bz,Az]=butter(N,wc,'high');

f=0:0.00001:1;w=f*pi;

H=freqz(Bz,Az,w);

plot(f,20*log10(abs(H)));grid on

xlabel('w/pi');ylabel('幅度/dB');

axis([0,1,-100,5]);

title('高通数字滤波器耗损函数')

仿真图如下

图2

三.FIR数字滤波器的设计

1.设计方法

FIR滤波器的设计和IIR滤波器的设计方法有很大的不同,FIR滤波器不能用间接法进行设计,其设计方法主要有以下几种:窗函数法、频率采样法和切比雪夫波纹逼近法等,在本设计中将采用较为简单的窗函数法设计。其中窗函数设计法里面又分为矩形窗、三角窗、汉宁窗、哈明窗、布莱克曼窗以及凯瑟窗等。 2.设计步骤

1) 根据对阻带衰减及过渡带的指标要求,选择窗函数的类型,并估计窗口长度N。选择原

则为:在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。 2) 构造希望逼近的频率响应函数Hdej?。 3) 计算hd?n?。

4) 加窗得到设计结果:h?n??hd?n???n?。

??3.实例设计

用窗函数法设计线性相位高通FIR滤波器,要求通带介质频率?p??/2rad,阻带截止频率?s??/4rad,通带最大衰减?p?1dB,阻带最小衰减?s?40dB

1) 选择窗函数??n?,计算窗函数长度N。已知阻带最小衰减?s?40dB,查表可知汉宁


基于MATLAB的滤波器的设计.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:把握维权重点 不断创新发展 举全会之力推进工资集体协商工作

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: