有限冲击响应FIR 滤波器的设计.docx

上传人:b****5 文档编号:11837707 上传时间:2023-04-05 格式:DOCX 页数:10 大小:54.65KB
下载 相关 举报
有限冲击响应FIR 滤波器的设计.docx_第1页
第1页 / 共10页
有限冲击响应FIR 滤波器的设计.docx_第2页
第2页 / 共10页
有限冲击响应FIR 滤波器的设计.docx_第3页
第3页 / 共10页
有限冲击响应FIR 滤波器的设计.docx_第4页
第4页 / 共10页
有限冲击响应FIR 滤波器的设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

有限冲击响应FIR 滤波器的设计.docx

《有限冲击响应FIR 滤波器的设计.docx》由会员分享,可在线阅读,更多相关《有限冲击响应FIR 滤波器的设计.docx(10页珍藏版)》请在冰豆网上搜索。

有限冲击响应FIR 滤波器的设计.docx

有限冲击响应FIR滤波器的设计

一设计题目有限冲击响应FIR滤波器的设计

二设计目的

1掌握数字滤波器的设计过程;

2了解FIR的原理和特性;

3熟悉设计FIR数字滤波器的原理和方法;

4学习FIR滤波器的DSP实现原理;

5学习使用ccs的波形观察窗口观察输入、输出信号波形和频谱变化情况。

三设计内容

1通过MATLAB来设计一个低通滤波器,对它进行模拟仿真确定FIR滤波器系数;

2用DSP汇编语言及C语言进行编程,实现FIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波型变化.

四设计原理

滤波器就是在时间域或频域内,对已知激励产生规定响应的网络.使其能够从信号中提取有用的信号,抑制并衰减不需要的信号,滤波器的设计实质上就是对提出的要求给出相应的性能指标.再通过计算,使物理可实现的实际滤波器响应特性逼近给出的频率响应特性。

FIR数字滤波器是一种非递归系统,其传递函数为:

H(z)=Y(Z)/X(Z)=∑b(n)z-n

由此可得到系统的差分方程为:

y(n)=∑h(i)x(n-i)

其激响应h(n)是有限长序列,它其实就是滤波器系数向量b(n),N为FIR滤波器的阶数.

在数字信号处理应用中往往需要设计线性相位的滤波器,FIR滤波器在保证幅度特性满足技术要求的同时,易做到严格的线性相位特性。

为了使滤波器满足线性相位条件,要求其单位脉冲响应h(n)为实序列,且满足偶对称或奇对称条件,即h(n)=h(N-1-n)或h(n)=h(N-1-n)。

这样,当N为偶数时,偶对称线性相位F讯滤波器的差分方程表达式为

Y(n)=∑h(i)(x(n-i)+x(N-1-n-i))

由上可见,FIR滤波器不断地对输入样本x(n)延时后,再做乘法累加算法,将滤波器结果y(n)输出。

因此,FIR实际上是一种乘法累加运算。

而对于线性相位FIR而言,利用线性相位FIR滤波器系数的对称特性,可以采用结构精简的FIR结构将乘法器数目减少一半。

应用MATLAB设计FIR滤波器的主要任务就是根据给定的性能指标设计一个H(z),使其逼近这一指标,进而计算并确定滤波器的系数b(n),再将所设计滤波器的幅频响应、相频响应曲线作为输出,与设计要求进行比较,对设计的滤波器进行优化,设计完成之后将得到FIR滤波器的单位冲激响应序列h(n)的各个参数值。

五MATLAB设计FIR滤波器的方法

FIR滤波器最大的优点就是在满足幅频特性的同时,还可以获得严格的线性相位特性,这使得它在语音处理、图像处理等要求高保真的数字信号处理中显得十分重要。

设计FIR滤波器主要有窗函数法、最优化设计法及约束最小二乘法等设计方法。

用MATLAB设计FIR数字滤波器方法有很多种,最常用的有窗函数设计方法、最优化设计方法等。

1窗函数设计方法

窗函数法一般是基于直接程序设计法来设计标准频率响应的,可实现加窗线性相位FIR数字滤波器设计。

Fir1是用来设计标准频率响应的基于窗函数的FIR滤波器函数,可实现加窗线性相位FIR数字滤波器的设计,使用firl函数可设计标准的低通、高通、带通和带阻四种滤波器;fir2是用来设计有任意频率响应的各种加窗FIR滤波器函数。

利用firl和fir2两种函数可以设计有任意频率响应的各种加窗FIR滤波器.滤波器系数包含在返回值b中,可表示为

b(z)=b

(1)+b

(2)z-n+…+b(n+1)z-n

fir1函数的使用格式有以下几种:

b=fir(n,Wn),可得到低通滤波器;参数n为滤波器的阶数;Wn为滤波器的截止频率:

其中,0<Wn<1,Wn=1相当于0.5fs.当Wn=[W1W2]时,为带通滤波器,其通带为wl<W<w2,w1.w2分别为通带的下限频率和上限频率.

b=fir1(n,Wn,’ftype’),当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器‘

b=firl(n,Wnwindow),参数window用来指定的窗函数类型,默认值为hamming窗,参数可以使用的窗口函数有boxcar、hamming、blackman、kasier和chebwin.

b=firl(n,wn,ftype,window),ftype参数用来决定滤波器的类型:

参数window用来指定所使用的窗函数类型

这里需要注意的是,用firl函数设计高通和低通池波器时,所使用的阶数n为偶数,当输入的阶数n为奇数时.firl函数会自动将阶数增加1形成偶数。

fir2函数的使用格式有以下几种:

b=fir2(n,f,m},参数n为滤波器的阶数.

b=fir2(n,f,m,window),参数f为频率点矢量,f属于[0,l],对应于0.5fs.矢量f按升序排列,且第一个元素必须为0,最后一个必须为l,并可以包含重复的频率点

b=fir2(n,f,m,npt),参数m为幅度点矢量,在矢量m中包含了与f相对应的期望得到的滤波器幅度

b=fir2(n,f,m,npt,window),参数window用来指定所使用的窗函数类型,其默认为汉明(hamming)窗.

b=fir2(n,f,m,npt,lap),参数npt用来指定fir2函数对频率响应进行内插的点数.

b=fir2(n,f,m,npt,lap,window),参数laP用来指定fir2函数在重复频率点附近插入的区域大小.

2最优化设计法

Remez函数可采用Parks一Mcclellan算法设计线性相位FIR滤波器,Parks一Mcclellan算法使用Remez交换算法和chebyshev逼近理论来设计最优拟合滤波器,这种滤波器使期望频率响应与实际频率响应之间的最大误差最小,使其频率响应呈现出等波形特性,因此有时也称为等波纹滤波器。

由于这种滤波器具有等波纹特性,因此在其冲激响应的头部和尾部会表现出不连续性。

remez函数的使用格式有以下几种:

b=remez(n,f,a),可得到一个n阶FIR讯数字滤波器,其幅频特胜由f和a指定.f是频带边缘频率矢量,且f属于[0,1],当f=1时相当于n(Nyquist频率)。

矢量f按升序排列,且第一个元素必须为0。

最后一个必须为1。

a是频率矢量f处的期望幅值响应。

f和a的长度必须相等,而且为偶数。

b=remez(n,f,a,w),可利用加权矢量w对各频率段的误差进行加权处理,w的长度是f和a长度的一半,用以指定各频率段的权值。

b=remez(n,f,a,’ftype’)和b=remez(n,f,a,w,’ftype’),可指定滤波器的类型,当ftype=hilbert时,设计的滤波器为奇对称的线性相位滤波器(Ⅲ型和Ⅳ型).当ftype=differentiator时,采用了特殊的加权技术设计Ⅲ型和Ⅳ型滤波器。

[n,f0,a0,w]=remezord(f,a,dev),可找到近似的阶n,归一化频带边缘矢量f0、频带内辐值响应矢量匀及加权矢量w,使由remez函数构成的滤波器满足f,a及dev指定的性能要求。

其中f和a分别指定频段的边缘矢量与相应的幅值响应,dev用于指定各频带允许的偏差

[n,f0,a0,w]=remezord(f,a,dev,fs),可指定取样频率fs,fs的缺省值为2Hz.

六设计步骤

1利用MATLAB来确定FIR滤波器的参数

2启动CCS,在CCS中建立一个汇编源文件、建立一个C源文件和一个命令文件,并将这三个文件添加到工程,再编译并装载程序

3设置波形时域观察窗口,得到其滤波前后波形变化图;

4设置频域观察窗口,得到其滤波前后频谱变化图。

七利用MATLAB来确定FIR滤波器的参数

用双线性法设计低通滤波器,并确定FIR滤波器的参数:

fp=1000;

fc=1200;

as=100;

ap=1;

fs=22000;

wp=2*fp/fs;

wc=2*fc/fs;

[n,wn]=ellipord(wp,wc,ap,as);

[b,a]=ellip(n,ap,as,wn);

freqz(b,a,512,fs);

 

八源程序

1、汇编源文件

.global_fir,_init,_B,_outdata

_fir

bsetfrct

amov#_B,xdp

mov#_B,cdp

movt0,ac0

sub#1,ac0

movac0,mmap(csr)

addac0,ar0

mov#0,ac0

rptcsr

macmz*ar0-,*cdp+,ac0

movhi(ac0),t0

ret

_init

movmmap(t0),ac0

sub#1,ac0

movac0,ar7

rptzac0,ar7

movac0,*ar0+

ret

_outdata

movt1,ac0

sub#2,ac0

movac0,mmap(csr)

addac0,ar0

rptcsr

delay*ar0-

mar*ar0+

movt0,*ar0

ret

2、C源文件

externintfir(int*,int);

externintinit(int*,int#include"s.h"

#include"math.h"

#definesignal_1_f200

#definesignal_2_f620

#definesignal_sample_f2000

#definepi3.1415926

#definecoff_L23

#definebufer_L256

intdata_in[bufer_L];

intout[bufer_L];

intfirout;

intx[coff_L+1];

intk=0;

intbufer=bufer_L;

);

externintoutdata(int*,int,int);

voidinputwave();

voidmain()

{

inputwave();

init(x,BL);

while

(1)

{

x[0]=data_in[k];

firout=fir(x,BL);

outdata(out,firout,bufer);

k++;

if(k>=bufer_L)

{

k=0;

}

}

}

voidinputwave()

{

floatwt1;

floatwt2;

inti;

for(i=0;i<=bufer_L;i++)

{

wt1=2*pi*i*signal_1_f;

wt1=wt1/signal_sample_f;

wt2=2*pi*i*signal_2_f;

wt2=wt2/signal_sample_f;

data_in[i]=(cos(wt1)+cos(wt2))/2*32768;

}

}

3、命令文件

-stack0x500

-sysstack0x500

-heap0x1000

-c

-u_Reset

-lrts55.lib

MEMORY

{

PAGE0:

RAM(RWIX):

origin=0x000100,length=0x01ff00

ROM(RIX):

origin=0x020100,length=0x01ff00

VECS(RIX):

origin=0xffff00,length=0x000200

PAGE2:

IOPORT(RWI):

origin=0x000000,length=0x020000

}

SECTIONS

{

.text>ROMPAGE0

.data>ROMPAGE0

.bss>RAMPAGE0

.const>RAMPAGE0

.sysmem>RAMPAGE0

.stack>RAMPAGE0

.sysstack>RAMPAGE0

.switch>RAMPAGE0

.cinit>RAMPAGE0

.pinit>RAMPAGE0

.vectors>VECSPAGE0

.ioport>IOPORTPAGE2

}

九实验结果及分析

1、设置波形时域观察窗口,得到其滤波前后波形变化图

滤波前的波形输入

滤波前的波形输出

2、设置频域观察窗口,得到其滤波前后频谱变化图

滤波前频谱图

滤波后频谱图

十设计总结

通过这次DSP课程设计,我初步掌握和熟悉了数字滤波器的设计过程、其DSP实现原理与CCS的使用方法。

数字滤波是语音处理、图像处理、模式识别、频谱分析等应用的基本处理算法。

用DSP实现FIR数字滤波,具有稳定性好、准确度高、灵活性好、不受环境影响等优点。

这次DSP课程设计,加强了我动手、思考和解决问题的能力。

在设计过程中,经常会遇到各种各样的情况,但通过思考、查阅资料等方法,克服了各种问题。

课程设计同时也使我的课本知识得到巩固和加强,平时看课本时,有些问题老是弄不懂,做完课程设计后,那些问题迎刃而解了。

经过努力,在老师和同学的帮助下,我基本上完成了设计任务。

通过这次课程设计,我充分认识到了自学的重要性,以及学以致用的道理,也体会到自己完成一件事,成功解决困难的乐趣。

我查阅了大量的资料,在今后的学习过程中,我会多看一些专业方面的书籍,以丰富自己的知识。

这次课程设计也使我加深了对DSP技术的理解和应用。

 

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

当前位置:首页 > 求职职场 > 简历

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

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