基于DSP6713的IIR格型自适应滤波器
1 硬件系统设计
开发板系统总体方案框图如图1所示。模拟音频信号首先通过高性能前置运算NE5532进行预放,然后进入音频ADC进行A/D转换得到串行输出的数字音频信号,本文使用CIRRUS公司最新专业级音频芯片CS4272,该芯片使用了一个差分模拟结构,采样率高达192 kHz,实际信噪比超过90 dB。接着数字音频信号经过FPGA通过DSP的McBSP口进入DSP芯片TMS320C6713。进入DSP的数据存放在DSP的内部存储区以利于处理器进行高速运算,经过DSP处理后的数据同样通过DSP的McBSP口输出到FPGA,然后通过DAC输出到前置运算NE5532进行放大后输出。电路中同时还接了一个单片机芯片STC89LE52,它用于控制LED、按键、A/D、D/A转换器以及与FPGA进行数据通信。
2 CCS和CSL简介
CCS(Code Composer Studio)是TI公司推出的用于开发DSP芯片的集成开发环境,它采用熟悉的Windows风格界面,提供了基本的代码生成工具,具有编辑、编译、链接、软件仿真、硬件调试以及实时跟踪等功能,支持*.asm,*.c,*.h,*.cmd等多种格式并最终生成*.out等可供下载至硬件电路运行的二进制格式文件,它还提供了多种C/C++代码优化功能和一些实时分析及编程方案。此外,CCS的调试和仿真具有很强的功能:允许中断点、剖析点及探测点三种断点设置,分别实现程序断点、实时分析和数据导入等功能。CCS为DSP芯片的开发与设计提供了极大的便利,是目前使用最为广泛的DSP开发环境之一,其版本已发展至4.1甚至更高。
在DSP应用系统中,不可避免地会涉及到大量对DSP器件外设特别是片上外设的编程处理工作,这将消耗开发工程师在开发初期大量的精力。在TI公司的CCS开发环境中,提供了DSP片级支持库CSL作为一个组件,多数CSL模块都由对应函数、宏、类和表示符号组成,利用这些模块可以非常方便地完成对DSP片上外设的配置和控制的编程工作,从而简化了DSP片上外设的开发工作,缩短了用户程序的开发周期,并且可以达到标准化控制管理片上外设的能力,减少DSP硬件特殊性对用户程序代码的影响,以方便对用户代码在不同器件间的移植工作。
3 自适应IIR格型滤波器及算法
3.1 自适应IIR格型滤波器
自适应滤波器就是其权系数可以根据某种自适应算法来不断修改,使系统的冲激响应满足给定的性能判断。它的设计包括结构设计和自适应算法的选取、最佳参数的确定,以及有效字长效应影响的最小化等。自适应滤波器的原理图如图2所示。它主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。
图中滤波器的结构可以是IIR型结构,也可以是FIR型结构。尽管IIR结构的滤波器性能不够稳定,但在实际应用中它能够以很小的复杂度实现和FIR滤波器相同的功能,且可以利用模拟滤波器设计的结果,所以在对稳定性要求不高的情况下这是一个理想的选择。本文所采用的是IIR格型自适应滤波器,格型结构的优点是按阶递归,增加或者减少级数不会影响已经存在的阶数设计。
格型IIR滤波器的结构框图如图3所示。它由两个格型滤波器级联而成,上方的格型滤波器H1(z)的输入为Input,输出设为s0(n);下方的格型滤波器H2(z)的输入为s0(n),输出为Output。
采用TI公司开发的C67xDSPLIB库函数DSPF_sp_iirlat。DSPF_sp_iirlat是单精度IIR格型滤波算法。其C语言形式为:
3.2 自适应滤波器算法
在前面讨论了自适应滤波器的原理和结构,接下来讨论自适应滤波器的另一个关键组成部分:自适应算法。目前,大多数自适应滤波器都采用最小均方算法(LMS),因为它容易设计、实现且性能稳健。自适应算法是根据某种准则来设计的,目的在于设法使y(n)和d(n)尽量接近,不同的算法实质一样,只是接近的衡量标准不一样。最常用的准则是最小均方误差(Mean Square Error,MSE)准则,即期望信号d(n)与滤波器输出y(n)之差e(n)的平方值最小,并根据这个准则来不断调整自适应算法。采用TI公司开发的C67xDSPLIB库函数DSPF_sp_lms。DSPF_ sp_lms为单精度浮点LMS算法,实现LMS自适应算法。其C语言形式为:
4 自适应IIR格型滤波算法的DSP实现
由于自适应滤波器需要两个输入端,一个为主信号输入端,另一个为参考信号输入端。因此,如何在软件和硬件上设计和实现两个信号通路的建立问题是自
- 基于DES5402PP的IIR滤波器设计与实现 (06-26)
- IIR数字滤波器的FPGA仿真与实现(06-05)
- 基于FPGA的巴特沃兹IIR数字带通滤波器设计(06-04)
- 基于FPGA的IIR数字滤波器设计(03-25)
- IIR数字滤波器设计-在FPGA上实现任意阶IIR数字滤波器(02-11)
- 浅谈IIR滤波器零相位数字滤波实现及应用(01-06)