DSP实现FIR带通滤波邓露09084102负责编程,讨论算法何世辉09084119负责写报告,讨论算法一、实验目的实验目的实验目的实验目的(1)了解FIR滤波器的原理及使用方法;(2)了解使用Matlab语言设计FIR滤波器的方法;(3)了解DSP对FIR滤波器的设计及编程方法;(4)熟悉对FIR滤波器的调试方法;二、实验内容设计FIR带通滤波器,要求把输入的方波滤成正弦波,首先使用MATLAB设计滤波器,然后得到该滤波器的系数,然后再用DSP设计。三、实验原理假设FIR滤波器的冲击响应为h(0)、h(1)、⋯⋯、h(N-1),x(n)为滤波器的输入信号,则对应的滤波器输出由下面关系式决定:一般只要实现上面的计算关系式就相当于将信号进行了滤波,从上面关系式我们可以看出,首先必须知道FIR滤波器的冲击响应系数h(0)、h(1)、⋯⋯、h(N-1),这和知道IIR滤波器的参数一样,我们必须在高级语言中将这些滤波器的冲击响应系数得到,我们仍然使用Matlab语言实现这一过程。将得到的冲击响应系数应用到DSP汇编语言程序中,实现上面的计算公式,就可以方便的实现FIR滤波器,完成实验的要求,达到滤波效果。Fir滤波器原理:FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理等领域都有着广泛的应用。FIR滤波器工作原理在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,再通过dsp进行滤波。FIR的特点:有限长单位冲激响应(FIR)滤波器有以下特点:(1)系统的单位冲激响应h(n)在有限个n值处不为零(2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(因果系统)(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。设FIR滤波器的单位冲激响应h(n)为一个N点序列,0≤n≤N—1,则滤波器的系统函数为H(z)=∑h(n)*z^-n就是说,它有(N—1)阶极点在z=0处,有(N—1)个零点位于有限z平面的任何位置。FIR滤波器基本结构:FIR滤波器有以下几种基本结构:横截型(7.10)式的系统的差分方程表达式为y(n)=∑h(m)x(n-m)(7.11)很明显,这就是线性移不变系统的卷积和公式,也是x(n)的延时链的横向结构,如图4-11所示,称为横截型结构或卷积型结构,也可称为直接型结构。将转置定理用于图4-11,可得到图4-12的转置直接型结构。图7.11FIR滤波器的横截型结构级联型将H(z)分解成实系数二阶因子的乘积形式(7.12)其中[N/2]表示取N/2的整数部分。若N为偶数,则N—1为奇数,故系数B2K中有一个为零,这是因为,这时有奇数个根,其中复数根成共轭对必为偶数,必然有奇数个实根。图7-13画出N为奇数时,FIR滤波器的级联结构,其中每一个二阶因子用图4-11的横型结构。这种结构的每一节控制一对零点,因而再需要控制传输零点时,可以采用它。但是这种结构所需要的系数B2k(I=0,1,2,k,=1,2,...,[N/2])比卷积型的系数h(n)要多,因而所需的乘法次数也比卷积型的要多。图9.13FIR滤波器的级联型结构快速卷积结构前一章谈到,只要将两个有限长序列补上一定的零值点,就可以用圆周卷积来代替两序列的线性卷积。由于时域的圆周卷积,等效到频域则为离散傅立叶变换的乘积。因而,如果即将输入x(n)补上L—N1个零值点,将有限长单位冲激响应h(n)补上L—N2个零值点,只要满足L>=N1+N2—1,则L点的圆周卷积就能代表线性卷积,即用DFT表示,则有Y(k)=X(k)H(k)因而有其中Y(k)=DFT[y(n)],L点X(k)=DFT[x(n)],L点H(k)=DFT[h(n)],L点这样,我们就可得到图7.16的快速卷积结构,当N1,N2足够长时,它比直接计算线性卷积要快得多。这里计算DFY和IDFT都采用快速傅立叶变换计算方法。FIR滤波器设计过程FIR滤波器设计总框图FIR滤波器设计总框图如图3.1所示开始初始化DSP产生输入数据读入新数据并存放到栈顶...