FIR数字滤波器的Matlab实现Word文档格式.docx

上传人:b****8 文档编号:22706043 上传时间:2023-02-05 格式:DOCX 页数:11 大小:131.98KB
下载 相关 举报
FIR数字滤波器的Matlab实现Word文档格式.docx_第1页
第1页 / 共11页
FIR数字滤波器的Matlab实现Word文档格式.docx_第2页
第2页 / 共11页
FIR数字滤波器的Matlab实现Word文档格式.docx_第3页
第3页 / 共11页
FIR数字滤波器的Matlab实现Word文档格式.docx_第4页
第4页 / 共11页
FIR数字滤波器的Matlab实现Word文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

FIR数字滤波器的Matlab实现Word文档格式.docx

《FIR数字滤波器的Matlab实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《FIR数字滤波器的Matlab实现Word文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

FIR数字滤波器的Matlab实现Word文档格式.docx

但是将

作为滤波器脉冲响应有两个问题:

(1)它是无限长的,与FIP滤波器脉冲响应有限长这一前提不一致

(2)它是非因果的,

对此,要采取以下的措施,

(1)将

截短

(2)将其往右平移,

由此得到

的实际频域响应

,与理想频域响应

相近,但不完全一致。

理论证明上述现象是对

进行简单截短处理的必然结果,一般称为吉布斯现象,为尽可能的减少吉布斯现象,应对

进行加窗截取,即以

作为FIR滤波器的系数。

常用的窗函数有矩形窗、海明窗和布莱克曼窗等。

7.2.2用窗函数法设计FIR滤波器

Matlab设计FIR滤波器有多种方法和对应的函数,见表7-1。

表7-1matlab设计FIR滤波器的方法和函数

方法

描述

函数

窗方法

使用窗函数和逆傅立叶变换实现

fir1,fir2,kaiserord等

多带方法

包含子带频率域

firls,remez等

最小二乘法

使用最小二乘法将整个频率域上的错误几率压缩到最小

fircls,fircls1等

任意响应法

使用任意响应,包括非线性相位以及复滤波器

cremez等

余弦法

使用三角函数的低通响应

firrcos等

窗函数方法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs现象所带来的影响。

窗函数设计线性相位FIR滤波器步骤如下:

(1)确定数字滤波器的性能要求,临界频率

,滤波器单位脉冲响应长度N

(2)根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确定理想频率响应

的幅频特性和相频特性

(3)求理想单位脉冲响应

,在实际计算中,可对

采样,并对其求IDFT的

,用

代替

(4)选择适当的窗函数w(n),根据

求所需设计的FIR滤波器单位脉冲响应

(5)求

,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果

调用格式:

a)b=fir1(N,wn)

b)b=fir1(N,wn,’hign’)

N为滤波器的阶次,wn是通带截止频率,其值在0~1之间,1对应抽样频率的一半;

b是设计好的滤波器系数h(n)。

对于格式a),若wn是标量,则用来设计低通滤波器,若wn是1×

L的向量,则用来设计带通(带阻)滤波器。

其格式为:

b=fir1(N,wn,’DC-1’)或b=fir1(N,wn,’DC-0’),其中,前者保证第一个带为通带,后者保证第一个带为阻带。

b)用来设计高通滤波器。

 

用于产生窗函数的matlab文件有如下8个:

(巴特利特窗)

(布莱克曼窗)

(矩形窗)

(汉明窗)

(汉宁窗)

(三角窗)

(切比雪夫窗)

(凯泽窗)

【实例7-1】设计一个34阶的高通滤波器,截止频率为

,使用具有30dB波纹的chebyshev窗。

解:

源程序如下:

b=fir1(34,,'

high'

chebwin(35,30));

freqz(b,1,512)

其响应波形如图7-1所示。

图7-1带通FIR滤波器

【实例7-2】设计一个24阶FIR带通滤波器,通带频率

wn=[];

N=24;

b=fir1(2*N,wn,'

DC-0'

);

%DC-0表示第一个带为阻带,这样设计出来的滤波器为带通滤波器。

图7-2带通FIR滤波器

【实例7-3】设计具有下面指标的低通FIR滤波器

由于其最小阻带衰减为50dB,因此可以选择hamming窗来实现这个滤波器,因为它具有较小的过渡带。

MATLAB源程序为

%数字滤波器指标

wp=*pi;

ws=*pi;

tr_width=ws-wp;

%通带宽度

N=ceil*pi/tr_width)+1;

%滤波器长度

ifrem(N,2)==0

N=N+1;

end

Nw=N;

%滤波器长度为奇数

n=[0:

1:

Nw-1];

wc=(ws+wp)/2;

%截止频率

alpha=(Nw-1)/2;

m=n-alpha+;

%如果不加,当n=alpha时,m为0,下式分母为0,不能执行

hd=sin(wc*m)./(pi*m);

%理想滤波器的冲激响应

%生成hamming窗

w_ham=(hamming(Nw))'

;

%频域图像的绘制

h=hd.*w_ham;

%滤波器实际冲激响应

freqz(h,[1])

figure

(2);

subplot(2,2,1),stem(n,hd);

title('

理想脉冲响应'

axis([0Nw-1]);

xlabel('

n'

ylabel('

hd(n)'

subplot(2,2,2),stem(n,w_ham);

hamming窗'

w(n)'

subplot(2,2,3),stem(n,h);

实际脉冲响应'

h(n)'

其响应波形如图7-2所示。

图7-3hamming窗函数设计FIR滤波器

【实例7-4】设带通滤波器的指标为

选择Blackman窗来实现这个滤波器。

%数字滤波器指标

ws1=*pi;

wp1=*pi;

ws2=*pi;

wp2=*pi;

As=60;

tr_width=min((wp1-ws1),(wp2-ws2));

%过渡带带宽

N=ceil(11*pi/tr_width)+1;

wc1=(ws1+wp1)/2;

wc2=(ws2+wp2)/2;

hd=sin(wc2*m)./(pi*m)-sin(wc1*m)./(pi*m);

%生成blackman窗

w_bla=(blackman(M))'

h=hd.*w_bla;

freqz(h,[1])

idaelimpulseresponse'

subplot(2,2,2),stem(n,w_bla);

blackmanwindow'

axis([0Nw-10]);

actualimpulseresponse'

其响应波形如图7-4所示。

图7-4blackman窗函数设计FIR滤波器

7.3编程练习

1.设计一个48阶FIR带阻滤波器,通带频率

2.用窗函数设计一个线性相位FIR高通滤波器,并满足性能指标:

通带边界频率

阻带边界频率

,阻带衰减不小于40db。

提示:

参考例7-3,4;

首先根据阻带衰减,选择合适的窗函数,见课本P342,表7-3。

再根据P345,式7-74写出理想滤波器的冲激响应hd。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 自考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1