(4)确定采用的窗函数类型及阶数(本例采用hamming窗.阶数为27阶);
(5)根据设定的FIR滤波器参数,即可得到该FIR滤波器的幅频响应图、对数幅频响应图、相频响应图、群延时图、冲击响应图和单位阶跃响应图,可直观的观察设计是否满足要求.如果不满足设计要求,可重复步骤3)、4),直至满足设计要求为止。本FIR滤波器的幅频响应图、对数幅频响应图见图3、图4;
(6)设计的FIR滤波器满足要求后,选择菜单项“Code-Gen|FreeScale|DPS56800/DPS56800E”,导出基于16位定点数的单位脉冲响应h(n)的*.h文件,用于后续的工程设计。
4 基于56F8013 DSP的设计实现
56F8013是FreeScale推出的基于56F800E内核的低价位、低功耗的16位DSP,它具有I2C、SPI、UART、ADC、QEI等外部接口,具有在片硬件调试接口,可进行32位整数、36位整数加分数运算,配合CodeWarrior开发环境非常适合于嵌入式开发。
Processor Expert(PE)是由捷克UNIS公司开发的针对FreeScale单片机和DSP的嵌入式软件开发包.它集成在CodeWarrior开发环境中。Processor Expert提供了连接、生成嵌入式系统的硬件、接口和算法的驱动,对CPU核、芯片集成接口、虚拟设备和纯算法进行了封装(该封装被称为“Embedded Beans”),并把这些功能变成属性、方法和事件,这与面向对象的程序设计方法是一样的。用户在进行程序设计时,通过调用Processor Expert提供的各种Bean,可以方便的对DSP内核、外部中断、DSP的片上外设及程序所需的各种通用算法进行设置.使用户只需关注整个设计的创造性部分,而不是花费大量时间让芯片正常工作,大大提高了生产率。本文的FIR滤波器的实现,就是基于Processor Expert的“DSP_Func_DFR”Bean和“DSP_MEM”Bean的。现将具体的设计过程描述如下:
进入CodeWarrior开发环境,选中菜单项“Processor Expertl| View| Bean Selector”,在弹出的“Bean Selector”窗口中,选中负责内存管理的“DSP_MEM”Bean和负责数字信号处理的“DSP_Func_DFR”Beafl加入工程文件,将“DSP_Func_DFR”Bean中的“dfrl6FIRCreate”、“dfrl6FIR”和“dfrl6FIRDestroy”方法加入主程序。修改主程序如下:
5 结束语
本文介绍了基于CodeWarrior8.0软件自带的开发工具包QEDesign Lite和ProcessorExpert,快速进行FIR滤波器窗函数设计的方法。通过软件工具包的综合运用.大大缩减了设计研发的时间。在实际应用中,可以通过对滤波器参数的修改.很容易地实现其他各种滤波器的设计,具有一定的工程设计参考价值。