dsp大作业 6713系列fir带通滤波_第1页
dsp大作业 6713系列fir带通滤波_第2页
dsp大作业 6713系列fir带通滤波_第3页
dsp大作业 6713系列fir带通滤波_第4页
dsp大作业 6713系列fir带通滤波_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 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)为滤波器的输入信号,则对

2、应的滤波器输出由下面关系式决定: 一般只要实现上面的计算关系式就相当于将信号进行了滤波,从上面关系式我们可以看出,首先必须知道FIR滤波器的冲击响应系数h(0)、h(1)、h(N-1),这和知道IIR滤波器的参数一样,我们必须在高级语言中将这些滤波器的冲击响应系数得到,我们仍然使用Matlab语言实现这一过程。将得到的冲击响应系数应用到DSP汇编语言程序中,实现上面的计算公式,就可以方便的实现FIR滤波器,完成实验的要求,达到滤波效果。Fir滤波器原理: FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意

3、幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理等领域都有着广泛的应用。 FIR滤波器工作原理在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,再通过dsp进行滤波。FIR的特点:有限长单位冲激响应(FIR)滤波器有以下特点: (1) 系统的单位冲激响应h (n)在有限个n值处不为零 (2) 系统函数H(z)在|z|

4、>0处收敛,极点全部在z = 0处(因果系统) (3) 结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 设FIR滤波器的单位冲激响应h (n)为一个N点序列,0 n N 1,则滤波器的系统函数为 H(z)=h(n)*z-n 就是说,它有(N1)阶极点在z = 0处,有(N1)个零点位于有限z平面的任何位置。FIR滤波器基本结构:FIR滤波器有以下几种基本结构: 横截型(7.10)式的系统的差分方程表达式为 y(n)=h(m)x(n-m)( 7.11) 很明显,这就是线性移不变系统的卷积和公式,也是x (n)的延时链的横向结构,如图4

5、-11所示,称为横截型结构或卷积型结构,也可称为直接型结构。将转置定理用于图4-11,可得到图4-12的转置直接型结构。 图7.11 FIR滤波器的横截型结构 级联型将H (z)分解成实系数二阶因子的乘积形式 (7.12) 其中N/2表示取N/2的整数部分。若N为偶数,则N1为奇数,故系数B2K中有一个为零,这是因为,这时有奇数个根,其中复数根成共轭对必为偶数,必然有奇数个实根。图7-13画出N为奇数时,FIR滤波器的级联结构,其中每一个二阶因子用图4-11的横型结构。 这种结构的每一节控制一对零点,因而再需要控制传输零点时,可以采用它。但是这种结构所需要的系数B2k(I = 0,1,2,k,

6、= 1,2,N/2)比卷积型的系数h (n)要多,因而所需的乘法次数也比卷积型的要多。 图9.13 FIR滤波器的级联型结构 快速卷积结构前一章谈到,只要将两个有限长序列补上一定的零值点,就可以用圆周卷积来代替两序列的线性卷积。由于时域的圆周卷积,等效到频域则为离散傅立叶变换的乘积。因而,如果 即将输入x (n)补上LN1个零值点,将有限长单位冲激响应h (n)补上LN2个零值点,只要满足L >= N1 + N21,则L点的圆周卷积就能代表线性卷积,即 用DFT表示,则有 Y(k) =X(k)H(k) 因而有 其中 Y(k) = DFTy (n),L点 X(k) = DFTx(n),L点

7、 H(k) = DFTh (n),L点 这样,我们就可得到图7.16的快速卷积结构,当N1,N2足够长时,它比直接计算线性卷积要快得多。这里计算DFY和IDFT都采用快速傅立叶变换计算方法。FIR滤波器设计过程FIR滤波器设计总框图FIR滤波器设计总框图如图3.1所示图3.1 FIR滤波器设计总框图FIR滤波器设计的原理设a i(i=0,1,2,N-1)为滤波器的冲激响应,输入信号为x(n),则FIR滤波器的输入输出关系为:         FIR滤波器的结构如图3.2所示:图3.2 FIR滤波器的结构

8、FIR滤波器的设计方法循环缓冲算法:对于N级的FIR滤波器,在数据存储器中开辟一个称之为滑窗的N个单元的缓冲区,滑窗中存放最新的N个输入样本。每次输入新的样本时,一新样本改写滑窗中的最老的数据,而滑窗中的其他数据不需要移动。利用片内BK(循环缓冲区长度)寄存器对滑窗进行间接寻址,环缓冲区地址首位相邻。下面,以N=5的FIR滤波器循环缓冲区为例,说明循环缓冲区中数据是如何寻址的。5级循环缓冲区的结构如图3.3所示,顶部为低地址。图3.3 循环缓冲区的结构当第一次执行完之后,间接寻址的辅助寄存器指向x(n-4)。然后,从I/O口输入数据x(n+1),将原来存放x(n-4)的数据存储单元改写为x(n

9、+1)。接着,进行第二次乘法累加运算,最后指向x(n-3)。然后从I/O口输入数据x(n+2) ,将原来存放 x(n-4)的数据存储器单元改写为x(n+2)。FIR滤波器的MATLAB实现MATLAB是一种功能强、效率高、便于进行科学和工程计算的交互式软件包,它集数值分析、矩阵运算、信号处理和图形显示于一体,为用户提供了方便、友好的界面环境。MATLAB中的工具箱(Toolbox)包含了许多实用程序。它提供了多种FIR滤波器设计方法。4.1用fir1函数设计FIR滤波器fir1函数用来设计标准频率响应的基于窗函数的FIR滤波器,可实现加窗线性相位FIR数字滤波器的设计。具体语法如下: b=fi

10、r1(n,Wn) b=fir1(n,Wn,ftype) b=fir1(n,Wn,Window) b=fir1(n,Wn,ftype,Window)其中n为滤波器的阶数;Wn为滤波器的截止频率; ftype为用来决定滤波器的类型,当ftype=high时,可设计高通滤波器;当ftype=stop时,可设计带阻滤波器。Window为用来指定滤波器采用的窗函数类型,Window参数可采用的窗口函数有: Boxcar,Hanning,Bartlett,Blackman,Kasier和chebwin等,其默认时为Hamming窗,从而得到滤波器的系数。 4.2用fir2函数设计FIR滤波器fir2函数用

11、来设计有任意频率响应的各种加窗FIR滤波器。具体语法如下: b=fir2(n,f,m) b=fir2(n,f,m,Window) b=fir2(n,f,m,npt) b=fir2(n,f,m,npt,Window) b=fir2(n,f,m,npt,lap) b=fir2(n,f,m,nptt,lap,Window) 其中n为滤波器的阶数;f为频率点矢量;m为幅度点矢量;Window用来指定所使用的窗函数类型,默认值为汉明(Hamming)窗;npt用来指定fir2函数对频率响应进行内插的点数;lap用来指定fir2函数在重复频率点附近插入的区域大小,从而得到滤波器的系数。4、 实验步骤 1、

12、 Matlan语言编程 可以使用Matlab语言下的FDA工具箱设计FIR滤波器。clc;clear;close all; t=-8:0.1:8; y=square(t); figure(1); plot(t,y); grid ylim(-3 3 ); wn=Hamming(50); fc1=2200; fc2=2279;%阻带频率 ft=46500;%抽样频率 wc1=2*fc1/ft; wc2=2*fc2/ft; B=fir1(49,wc1,wc2,wn); figure(2); Freqz(B,1); X=fftfilt(B,y); figure(3); subplot(2,1,1);

13、plot(t,y,'g');title('滤波前的频谱'); subplot(2,1,2); plot(t,X,'r');程序实现一个最接近矩形的带通FIR滤波器; 程序中使用的Matlab内部函数有linspace、gremez、freqz、freqzplot等,关于这些函数的说明请参考Matlab的帮助文件。从图中可以看出,带通宽度基本上接近矩形,滤波器的最大纹波系数小于0.1,阻带很大。 原始信号为方波由此可以得到滤波器参数:0.0034,0.0050,0.0068,0.0088,0.0105,0.0115,0.0110,0.0083,0.

14、0031,-0.0048-0.0147,-0.0258,-0.0365,-0.0451,-0.0501,-0.0501,-0.0443,-0.0253,-0.0327,-0.0161,-0.00400.0253,0.0455,0.0620,0.0728,0.0766,0.0728,0.0620,0.0455,0.0253,-0.0040 -0.0161,-0.0327,-0.0443,-.0.0501,-.0.0501,-0.0451,-0.0365,-0.0258,-0.0147,-0.00480.031,0.0083,0.0110,0.0115,0.0105,0.0088,.0068,0.

15、0050,0.0034 滤波后的波形 DSP系统的构成一个典型的 DSP 系统如图2.1示。图2.1 典型的DSP系统图2.1是一个用DSP做信号处理的典型框图。由于DSP是用来对数字信号进行处理的,所以首先必须将输入的模拟信号变换为数字信号。于是先对输入模拟信号进行调整,输出的模拟信号经过A/D变换后变成DSP可以处理的数字信号,DSP根据实际需要对其进行相应的处理,如FFT、卷积等;处理得到的结果仍然是数字信号,可以直接通过相应通信接口将它传输出去,或者对它进行D/A变换将其转换为模拟采样值,最后再经过内插和平滑滤波就得到了连续的模拟波形模拟信号。当然,图中的有些环节并不是必需的。如A/D

16、转换,如果输入的是数字信号,就可以直接交给DSP进行运算。DSP系统的特点及设计过程由于数字信号处理系统是以数字信号处理理论为基础,所以具有数字信号处理的全部优点:(1)接口方便 DSP 系统与其它以数字技术为基础的系统或设备都是相互兼容的,比模拟系统与这些系统接口要容易的多。(2)编程方便 DSP 系统中的可编程DSP芯片可以使设计人员在开发过程中灵活方便的进行修改和升级,可以将C语言与汇编语言结合使用。(3)具有高速性 DSP系统的运行较高,最新的DSP芯片运行速度高达10GMIPS以上。(4)稳定性好DSP 系统以数字处理为基础, 受周围环境,如噪声、温度等的影响小、可靠性高;(5)精度

17、高 例如16位数字系统可以达到10-5的精度;(6)可重复性好 模拟系统的性能受元件参数性能变化影响大,而数字系统基本不受影响,更便于测试、调试和大规模生产。(7)集成方便 DSP系统中的数字部件有高度的规范性,便于大规模生产。当然DSP也存在一定的缺点。例如,对于一些简单的信号处理任务,如与模拟交换线的电话接口,若采用DSP则使成本增加。另外,DSP 系统中的高速时钟通常在几十兆赫,可能带来高频干扰和电磁泄漏等问题, 而且DSP 的功率消耗在系统中也是较大的。此外,DSP技术发展得很快,数学知识要求多,开发和调试工具还很不完善。虽然DSP系统还存在一些缺点,但是随着近两年来 DSP 技术突飞

18、猛进的发展,成本的下降,很多问题都得到了缓解。其突出的优点已经使其在通信、语音、图像、雷达、生物医学、工业控制、仪器仪表等许多领域得到越来越广泛的应用。一般来说DSP的设计过程应遵循一定的设计流程,如图2.2示。DSP应用定义系统性能指标硬件调试选择DSP芯片软件编程硬件设计系统集成软件调试系统测试和调试图2.2 DSP基本设计流程CCS开发环境本节将介绍CCS Code Composer Studio 的基本开发环境、软件开发过程、CCS组件。CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,能够加速开发进程,提高工作效率。2.3.1 CCS概

19、述CCS 全称是 Code Composer Studio 它提供了基本的代码生成工具,具有一定的调试、分析能力,在CCS下的程序开发过程如图2.4示。图2.4程序开发过程CCS 包括:1、CCS代码生成工具2、CCS集成开发环境IDE3、DSP/BIOS插件程序和API RTDX插件,主机接口和API等。下面将着重介绍前两项。2.3.1 CCS集成开发环境调试DSP目标程序,它主要由几个主要的窗口组成:工程组显示窗口、程序内容显示窗口、编辑信息提示窗口和主要工具栏。另外,在编辑过程中 还可以显示诸如存储器观察窗口、变量监视框、图形显示框等调试界面,他们为程序编写调试提供多种手段为软件开发提供

20、了极大的方便。图 2.5 就是基本编辑界面。图2.5 CCS基本编辑界面在利用CCS编程的过程中,不可避免的要遇到如何将程序变量分配到内存中去的问题。因为,即使 DSP 的存储空间比较大,速度也十分快,但是如果内存空间分配不当的话,还是会出现空间不够行速度下降,甚至程序跑飞的情况,这样会时程序调试起来十分麻烦。所以,一定要分配好内存空间CCS提供了两种分配空间的方法:利用cmd文件或rcp文件分配空间,其中cmd 文件是纯文本格式的描述性的空间分配方式, 它的优点是程序员对空间的可控制性较高,可以将不同的块分配到指定的地址,并规定长度。但它对于初学者来说,要求对C5410的内存空间的分配有较清

21、楚的认识,否则容易将数据分配到不该分配的地方,引起程序运行的冲突,甚至程序跑飞。所以,一般在编程过程中,使用 rcp 文件对程序进行内存分rcp文件全称是 recipe 文件,这是一种图形化界面的内存分配文件。对于一个新生成的工程组rcp文件的生成方法是:选择CCS菜单上的Tools项,选择linker configuration项,将分配方式改为use the visual linker之后直接编译,编译信息提示窗口中会显示出错信息,提示找不到rcp文件,双击提示CCS会自动弹出rcp生成向导,按照要求选择rcp模板,就会生成这个工程对应的rcp文件,双击生成的rcp文件,通过visual

22、linker连接器可以打开这个文件。当程序中新增加了变量后,在rcp文件中会出现Not yet placed项,只要将其下的文件夹,根据类型拖动到run_view下的相应的数据存储器或程序存储器即可。还可以选择用何种类型的存储器空间装载,通过观察存储空间以使用的状况自行分配空间,所以十分灵活,并且不会出现空间重叠的现象,避免了程序跑飞。FIR滤波器的DSP实现所选取的N=37,滤波器的算法为 y(n)=x(n)+x(n-1)+x(n-2)+···+x(n-36)根据我们所选择使用的循环缓冲区法可以编写得到FIR滤波器的源程序如下: .global input,ou

23、tput,loop_end,fir_start,_c_int00 .bss input,1024 .bss output,1024 .sect "coff_fir"fir_start: .word 34,50,68,88,105,115,110,83,31,-48 .word -147,-258,-365,-451,-501,-501,-443,-253,-327,-161,-40 .word 253,455,620,728,766,728,620,455,253,-40 .word -161,-327,-443,-501,-501,-451,-365,-258,-147,

24、-48 .word 31,83,110,115,105,88,68,50,34fir_table .usect "fir_coff",512data_buffer .usect "fir_bfr",512 .text_c_int00 MVK.S1 input,A0 ; MVKH.L1 input,A0MVK.S1 1,A1MVK.S1 -1,A2 MVK.S2 8,B0MVKL.S2 0x00000000,B1MVKH.S2 0x00000000,B1MVC.S2 B1,AMRloop: MVK.S2 16,B1loop1:STW.D1 A1,*A0+S

25、UB.L2 B1,1,B1NOPB1B loop1 NOP 5 MVK.S2 16,B1loop2:STW.D1 A2,*A0+SUB.L2 B1,1,B1NOPB1B loop2 NOP 5SUB.L2 B0,1,B0B0B loop NOP 5 MVK.S1 fir_start,A3MVK.S1 fir_table,A4MVK.S1 data_buffer,A5 MVK.S2 64,B0 ZERO A2loop5: STW.D1 A2,*A5+ NOP 5 SUB.L2 B0,1,B0 B0B loop5 NOP 5 MVK.S2 49,B0loop3: LDW.D1 *A3+,A7 NOP 5 STW.D1 A7,*A4+ NOP 5 SUB.L2 B0,1,B0 B0B loop3 NOP 5 MVK.S2 15,B0loopa: STW.D1 A2,*A4+ NOP 5 SUB.L2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论