《现代电子技术)2007年第1期总第240期 测试・测量・自动化司 FIR数字滤波器在DSP上的实现 伍小芹,吴秋丽 (海南大学信息学院海南海口 570228) 摘 要:在TM¥320C54x系统开发环境CCS(Code ComposeI'Studio)下对FIR滤波器的DSP实现原理进行了讨论。利 用Matlab中的FIR数字滤波器的函数设计相应的滤波器,对得到的滤波器系数采用Q15格式表示,并用C语言产生模拟输 入信号。将获取的系数和输入信号通过相应的指令调到DSP芯片的数据存储器中,运用MAC指令、循环缓冲寄存器、块循 环寄存器实现已知混合信号的滤波。通过实验仿真,从输入信号和输出信号的时域和频域曲线可看出在DSP上实现的FIR 滤渡器能完成预定的滤渡任务。 ‘ 关键词:CCS开发环境}DSP}FIR}Matlab 中田分类号:TN713 .7 文献标识码:B 文章编号:1004—373X(2007)01—085一O3 FIR Digital Filter Implementation on the DSP Chip WU Xiaoqin.WU Qiuli (Information Technology College.Hainan University.Haikou.570228,China) Abstract:This paper discusses how tO implement FIR digital filter in the Code Composer Studio(CCS)environment of TMS320C54x system.The design of FIR digital filter is performed in the Matlab.We represent the produced coefficients in Q1 5 form.C program helps to produce analog input signal,which,as well as system coefficients,are transferred into RAM of DSP chip.Then using MAC instructions,circular buffer registers and block circular registers tO implement filtering of known signa1.From the simulation,we can conclude the FIR filter implemented on the DSP chip can satisfy required tasks. Keywords:CCS environment;DSP;FIR;Matlab 处理。这里重点讨论如何在CCS开发环境下实现FIR滤 1 引 言 波器。 在数字信号处理过程中,经常需对信号进行过滤、检 测、预测等处理,这些任务的完成都要用到滤波器。FIR 2 FIR滤波器的DSP实现原理 滤波器是有限长单位冲激响应滤波器,在结构上是非递归 在DSP上实现FIR滤波器的方法很多,主要分为用 型的。他可以在幅度特性随意设计的同时,保证精确严格 MAC指令实现或者用FIRS指令实现。假设FIR滤波器 的线性相位。线性相位特性在实际应用中非常重要,如在 的冲激响应为^(O),^(1),…,^(N一1),也即为FIR滤波 数据通信、图像处理、语音信号处理等领域,往往都要求具 器的系数。 (n)表示滤波器在n时刻的输入,则n时刻的 有线性相位特性。并且由于FIR滤波器的单位脉冲响应 输出为: 有限长,系统不存在非稳定现象,我们总能用因果稳定系 (n)一^(O) (n)+h(1)x(n—1)+…+ 统来实现FIR滤波器。FIR主要的不足在于其较好的性 ^(N—1)xF.一(N 1)] 能是以较高的阶数为代价换来的,对于相同的设计指标, 求输出的运算是一个乘加的过程,可用DSP中MAC FIR滤波器所要求的阶数比IIR滤波器高2~5倍,信号的 指令或FIRS指令实现该乘加的计算。图1说明了如何使 延迟偏大。因此。在保证相同性能的前提下,尽量降低其 用循环寻址实现FIR滤波器。 阶数是FIR数字滤波器设计的目标之一。 开始时输入抽样值结束时输入抽样值 本文利用Matlab环境下有关的FIR滤波器函数得到 x(n) x[n-(N-1)】 相应类型的滤波器系数,由于TMS320C54x是l6位定点 环 处理器,在进行汇编程序设计时,数据需采用Q15格式, x(n-2) 因此需将系数分别乘以2 。同理输入信号也要经过如此 x(n-1) 图1 FIR滤波器存储器里的数据存储方式 收稿日期:2006一O6—16 85 维普资讯 http://www.cqvip.com
伍小芹等:FIR数字滤波器在DSP上的实现 在图1中,滤波系数指针初始化时指向^(Ⅳ一1),经 在CCS环境下实现FIR滤波器的程序框图如图3 过一次FIR滤波计算后,在循环寻址的作用下,仍然指向 所示。 ^(N一1)。而数据缓冲区指针指向需更新的数据,如 (”)。在写入新数据并完成FIR运算后,该指针指向 (”一 (N一1))。因此,利用循环寻址可方便地完成滤波窗口数 据的自动更新。 3开发环境CCS简介 Code Composer Studio(CCS)是TI公司推出的为开发 TMS320系列DSP软件的集成开发环境(IDE)。CCS工 作在Windows操作系统下,类似于VC“的集成开发环 境,采用图形接口界面,提供编辑工具和工程管理工具。 CCS的软件开发流程图如图2所示。 图3 用循环寻址的方法实现FIR滤波器的程序框图 从图3可知FIR滤波器的DSP实现包括4个部分:模 拟输入数据的生成、DSP初始化程序、滤波系数以及输入 围2 简化的CCS开发流程 数据的调入及滤波子程序。其中模拟输入数据的生成可 对于CCS的使用,先应建立工程文件*.mak。根据 利用c语言编程实现,用.copy汇编命令将生成的数据文 需要,添加C语言源程序*.C,汇编源程序*.asm,链接配 件拷贝到汇编程序中,作为FIR滤波器的输入数据,文中 置文件*.cmd等可能需要的文件,完成整个工程的建立; C语言程序运行后所生成的数据文件名为firinput。DSP 然后对源文件编辑、修改后进行汇编、连接以生成目标文 初始化程序包括了对堆栈指针(SP)、软件等待状态寄存器 件*.OUt。对源文件每作一次修改,都必须全部重新建 (SwwSR)、中断寄存器(IFR)、中断屏蔽寄存器(IMR)以 立,生成新的目标文件*.out。接下来,就可用CCS调试, 及处理器工作状态寄存器(PMST)的初始化,另外还对各 先让系统复位,再载入*.out。调试的方式是多种多样 变量赋值。由于滤波器系数一开始是存在程序存储器中, 的,有单步执行、多步执行、单步跳出、单步进入等,还有断 输入数据则是存在程序外的文件中,程序对这两组数据进 点设置和探测点设置。 行处理时,需要把两者都调到数据存储器中,这是滤波系 数以及输入数据的调入部分的任务。滤波子程序重复执 4 FIR滤波器设计实例 行的次数一般等同于输入序列的长度,实现对数据的读 入、处理、输出等功能。 用循环缓冲区和双操作数寻址方法实现FIR滤波器, 先用Matlab,选择51点海明窗设计一个通带截止频率为 5仿真实验结果 9 kHz,阻带截止频率为8 kHz的高通滤波器,对混合信号 实验中将滤波前的信号放置在数据存储器中从200H f—cos(2 000 7vt)+cos(10 000 7vt)+cos(20 O00nt)]/6进 开始的256个字中,采样频率为25 kHz,采样点数选为 行滤波,采样频率选为25 kHz。分析可知信号通过高通 256,对其前128个数据进行观察。在CCS仿真环境中,单 滤波器后的输出应该只包含10 kHz的余弦信号。本文用 击View—Gragh—Time/Frequency…,在对话框的第一 到的高通滤波器系数如表1所示。 行“DisplayType”选择“SingalTime”然后在对话框各属性位 裹l高通滤波器系数裹 86 维普资讯 http://www.cqvip.com
《现代电子技术}2007年第l期总第240期 置按图4所示填入相应参数。当“Display type”选择为 测试 到量・自动化q 对比CCS下所显示的滤波前和滤波后信号的时域和 频域波形图可看出,混合输入信号经过高通FIR滤波后, “FFT Magnitude”,在对话框中设置如图5所示的参数,可 看到相应信号的频域波形。输入信号的时域和频域波形 分别如图6,图7所示。 10 kHz频率的正弦信号被保留,其余两个信号得到压制, 实现了预期的滤波效果。 图8经高通滤波后的时域波形 图4输入信号时域渡形属性设置 图9经高通滤波后的频域波形 图5输入信号频域渡形属性设置 6结 语 本文介绍CCS开发环境下如何采用循环寻址的方式 实现FIR数字滤波器。根据指标在Matlab中设计FIR高 通滤波器,通过实验仿真,对由C语言产生的混合信号进 行高通滤波,比较CCS下滤波前后的时域和频域图可知 设计的结果能满足要求。 参考文献 图6输入信号的时域波形 [1]卢山,田野,郭黎利.利用DSP技术实现FIR滤波器[J].应 用科技,2002,29(11):19—21. [2]胡琥,万秋玉,周彤.FIR数字滤波器的DSP实现[J].哈尔 滨理工大学学报,2004,9(1):122—1 24. [3]薛继华,沈琰.一种基于TMS320VC5402实现FIR滤波器 的技术[J].南通大学学报:自然科学版,2005,4(3):71 74. [4]文玮玮,董金明.数字滤波器在定点DSP上的实现[J].遥测 遥控,2001,23(1):36—41. 囤7输入信号的频域波形 [5]周金治.基于Matlab与DSP的FIR数字滤波器软硬件实现 类似于上面的设置,将Start Address内容改为 [J].现代电子技术,2005,28(1 7):1—2. [6]孙克梅,刘洋.数字滤波器在DSP上的实现[J].沈阳航空工 0x1020,就可以分别画出高通滤波后信号的时域图(图8) 业学院学报,2005,22(3):53—54. 和频域图(图9)。 《现代电子技术))(NN TU)2006年电子版开始征订 电话:O29—85393376 邮发代号:52—126 定价:158元/套 87
因篇幅问题不能全部显示,请点此查看更多更全内容