IIR滤波

2024-06-05

IIR滤波(共7篇)

IIR滤波 篇1

目前, 随着科学技术水平的提高, 体育运动员体育成绩的提高更多的依靠科学技术。心跳信息对于教练指导运动员训练是极其重要的, 教练可以根据运动员的心跳信息来合理的安排训练的长度及强度。基于此, 一套运动员的心跳信号无线收发装置被设计, 系统包括无线收发装置、A/D转换模块、数字信号处理模块、计算机分析存贮显示模块, 还有单通道D/A转换、音频输出模块。这套装置可以帮助教练员更加科学的指导运动员的训练, 提高运动员的水平。为了开发研究该项目中的信号处理模块, 首先分析心跳信号样本的频谱, 并根据分析的结果确定设计相应滤波器的各项参数, 设计了一个IIR巴特沃斯数字滤波器对原始心跳信号进行滤波去噪。用Matlab对所有过程进行仿真效果, 滤除原始心跳信号中的噪声, 获得高信噪比的心跳信号。如图1所示。

1 运动员心跳信号频谱分析及设计滤波器的参数确定

所采集到的运动员心跳信号是一个频率范围在0~4KHZ内的音频信号, 其抽样频率取8KHZ, 这也是实际应用过程中对音频信号进行采样时所选取的频率。原始心跳信号波形如图2所示, 该信号含有大量的噪声, 通过音频率播放软件进行播放, 可以听到较大的噪音, 不能用于心率的计算分析, 采用快速傅立叶变换FFT对原始心跳信号进行频谱分析, 可得原始信号的频谱图如图3所示。

根据原始信号的频谱图确定所设计的数字滤波器参数如下:抽样频率8KHz, 上阻带频率截止频率1800Hz和下阻带截止频率是1930Hz, 通带频率范围是1800~1930Hz, 根据实验反复测定, 通带最大衰减为1dB, 阻带最小衰减为60dB。以上的参数作为设计IIR带通滤波器的参数。

2 IIR滤波器的基本原理

IIR数字滤波器是一种离散时间系统, 其系统函数为:

假设M≤N, 当M>N时, 系统函数可以看作一个IIR的子系统和一个 (M-N) 的FIR子系统的级联。IIR数字滤波器的设计实际上是求解滤波器的系数ak和bk, 它是数学上的一种逼近问题, 即在规定意义上 (通常采用最小均方误差准则) 去逼近系统的特性。如果在S平面上去逼近, 就得到模拟滤波器;如果在z平面上去逼近, 就得到数字滤波器。

通过上面的分析与调试, 设计滤波器的类型和参数已经确定, 是要设计一个通带频率范围是[1800~1930]HZ的带通滤波器。根据确定的参数设计对应的IIR滤波器方法有很多种。一般IIR数字滤波器的设计具体步骤如下:

(1) 按照一定的规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标。

(2) 根据转换后的技术指标设计模拟低通滤波器G (s) (G (s) 是低通滤波器的传递函数, 采用巴特沃斯低通滤器。

(3) 再按照一定的规则将G (s) 转换成H (z) (这里采用双线性不变法进行设计) 。若设计的数字滤波器是低通的, 上述的过程可以结束, 若设计的是高通、带通或者是带阻滤波器, 那么还需要下面的步骤:将高通、带通或带阻数字滤波器的技术指标转换为低通模拟滤波器的技术指标, 然后设计出低通G (s) , 再将G (s) 转换为H (z) 。

3 实验结果分析

用Matlab编程语言进行编程实现, 通过反复实验得到滤波后的运动员心跳信号波形如图6所示, 从滤波后的心跳信号可以看出滤波效果明显, 可以看出清晰的等间隔的心跳信号, 只有少量上下波动的噪音信号在零值附近, 在第2个信号与第3个信号干忧波动信号较大, 但波动信号的幅度的最大值还不到0.01, 而目标心跳信号比噪声信号大的多, 微小的噪音信号可以忽略不计。应用音频播放软件进行播放, 心跳声音清晰, 处理后信噪比高的心跳信号可以用来计算心率, 为系统的开发打下基础。

摘要:随着科技的发展, 体育运动员成绩的提高越来越依赖于科学技术, 通过开发运动员的心跳信号检测系统, 为教练员提供运动员的心率, 可以帮助教练员调整运动员的运动强度和运动方法, 从而提高训练效果, 首先分析原始心跳信号样本的频谱, 确定设计IIR滤波器的各项参数, 通过IIR滤波器滤波得到处理后的心跳信号。用Matlab平台进行仿真实验, 结果表明滤波效果明显。

关键词:运动员心跳信号,Matlab,IIR数字滤波器,信号滤波

参考文献

[1]侯志荣, 吕振肃.IIR数字滤波器设计的粒子群优化算法[J].电路与系统学报, 2003, 8 (4) :16-20..

[2]程佩青.数字信号处理教程 (第三版) [M].北京:清华大学出版社, 2007.

[3]丁磊, 潘贞存, 丛伟.基于MATLAB信号处理工具箱的数字滤波器设计与仿真[J].继电器, 2003, 31 (9) :49-51..

[4]刘彬.MATLAB环境下IIR滤波器设计, 仿真与验证[J].电子测量技术, 2011, 34 (4) :7-10.

[5]徐红, 李刚, 黄朝耿.一种设计IIR数字滤波器的参数化方法[J].电子学报, 2012, 4 (4) :847-851.

IIR滤波 篇2

1 基本原理和SOPC实现方案

在数字信号处理领域, 利用FPGA进行数字信号处理已成为一种新趋势, FPGA以其实时、高速、高灵活性、低成本等优点被广泛应用于无线传感器网络领域中。基于FPGA/CPLD的SOC称为SOPC, 即在一片可编程芯片上集成存储器、DSP、CPU等组成的完整的电子系统[3], SOPC结构灵活且可重构, 在优化设计模块方面有很大的自由空间, 且可随环境变化实时变化硬件结构, 使开发周期缩短[4]。设计采用基于SOPC的FPGA实现方案, 同时, 结合使用EDA工具 (QuartusⅡ, SOPC Builder等) 灵活地实现了本次高速滤波算法的设计。整个方案的实现框图如图1所示, 主要包括由传感器和AD电路组成的信号采集模块, 由嵌入式处理器NiosⅡ、IP核和IIR滤波算法组成的控制模块以及滤波后数据的传输和发送模块。

2 NiosⅡ软核处理器

NiosⅡ系列软核处理器是Altera公司的第二代FPGA嵌入式处理器, 与传统CPU的一个根本差别是它通过在FPGA上编程来实现所需功能, 具有32位的精简指令集CPU[5]。本系统硬件部分的核心是NiosⅡ嵌入式系统模块, 该模块采用CycloneⅡ系列EP2C5Q核心板作为其硬件开发平台, Altera公司的软件工具QuartusⅡ和SOPC Builder作为其软件开发平台。NiosⅡ嵌入式处理器主要用于实现时钟控制, 为FPGA提供数据等操作, 使DSP+FPGA的组合在一块FPGA上实现, 降低了成本, 同时, SOPC技术对外围电路的设计使系统的体积减小, 灵活性提高了。

该模块中, NiosⅡ系统所需基本元件包括以下几部分:NiosⅡ32位CPU、Avalon总线、Flash接口、外部SDRAM接口、URAT、各类通信PIO等, 图2所示为利用SOPC Builder软件添加SOPC各功能子模块的情况, SOPCBuilder为以上添加的所有组件生成VHDL源文件, 同时生成相应硬件、片内总线、仲裁和逻辑中断。所有模块均挂接于Avalon总线上进行统一管理。

硬件模块创建后, 还要利用NiosⅡ进行头文件定义、硬件相关宏定义、IO端口初始化、时钟信号输出、数据读取、输出等软件设计。最后将这些C语言程序在NiosⅡ中综合编译, 便可以通过设定的端口进行数据的读取与写入。

3 IIR数字滤波器的FPGA实现

数字滤波作为无线传感器网络节点信号处理中的基本处理模块, 本质上是通过一定运算将输入序列转化为另一组数字序列, 具有模拟器件难以达到的准确线性相位特性[6]。由于对相同的设计指标, IIR滤波器要求的阶数比FIR滤波器低许多, 而且成本低、信号延迟小, 因此本设计的数字滤波器采用IIR滤波器, 其单位冲激响应h (n) 是无限长的, 传递函数H (z) 在有限Z平面0<|Z|<∞上有极点存在, 由于有输出到输入的反馈, 故具有递归型的结构。

二阶IIR滤波器的传递函数如式 (1) 所示:

该滤波器在n时刻输出与输入的关系为:

在式 (2) 中, x (n) 为输入序列, y (n) 为输出序列, ai、bi为滤波系数。

对该滤波器的设计采用由上而下的层次设计思想, 通过乘法器、累加器、移位模块组成算术和逻辑单元, 并在NiosⅡ嵌入式处理器配合下完成数据处理;控制模块则主要实现数据的输入输出和单次结果递归。该滤波器的结构框图见图3。

3.1 数据控制模块

该滤波器的数据控制实质上是递归控制, 数据在该模块内完成迭代, 同时提供数据与滤波系数给下游执行模块。本设计在乘法运算之前将各系数扩大了1024倍, 忽略小数部分, 减小了操作难度, 运算结束后, 将结果右移10位即可[7]。

该硬件模块VHDL代码实现过程中的数据及时钟控制是由NiosⅡ中的C语言程序提供的。流程图见图4所示。在硬件宏定义和端口初始化完成后, NiosⅡ处理器会输出使能信号, 当采集到的数据达到一定量时, FPGA将向CPU发出请求, CPU捕获到请求信号后, 将启动采集数据转移至硬件滤波模块的过程;同理, 当滤波完成后, CPU会将滤波后的数据转移出来, 最终通过数据传输模块发送出去。

由图3可知整个IIR滤波过程实际上是数据递归的过程。NiosⅡ处理器主要负责完成滤波过程的启动和结束以及clk、reset、enable、datain等信号控制, 滤波过程中的数据输入、输出以及单次递归实现的VHDL代码如下所示:

程序中, datain为16位的采集数据, 每次递归结果yin在各进程前赋给d_y2, 进程p1在时钟clk控制下完成数据的迭代, 同时输出滤波系数;进程p2在enable信号控制下输出单次结果。

3.2 乘法器、加法器、减法器模块

在IIR滤波算法的实现过程中存在大量的数据计算过程, 需要大量的硬件资源, 同时由于数据计算过程中运算的重复性高, 可重用性强, 特别适合采用IP核的实现方式。由于IP Core针对FPGA本身结构进行了优化, 可达到较高速度, 且可对数据宽度进行灵活修改, 因此乘法器模块采取IP Core调用方式, EP2C5Q208内部有13个内嵌乘法器, 设计仅需调用5个即可。乘法器IP Core如图5所示。

同理, 加、减法器的设计也采取IP Core调用方式。

3.3 移位模块

结果递归导致每次乘法运算后, 计算结果宽度不断增加, 且由于数据控制模块中系数被放大1024倍, 需还原结果, 故而在乘法器模块后设计移位模块, 以便得到实际结果并输出给加法器[8]。移位模块VHDL原理图见图6所示。

图6所示的VHDL语言实现过程如下:乘法器模块将计算结果赋给xin[31..0], 而其中xin (24downto 10) 为有效位数据, 将其赋给xout (14 downto0) , xin (31) 为符号位, 赋给xout (15) , 这样便实现了移位过程。这种取结果有效近似值的方法不会影响到滤波的效果。

4 实验结果和性能检验

将系统设计的2阶IIR滤波器的程序下载到FPGA中, 测试滤波效果。将采集的信号输入到FP-GA中, 经IIR滤波后得到滤波后的信号, 图7所示为采集信号滤波前后对比图, 由图可知, 本系统所设计的滤波器能够过滤噪声, 且过滤效果很好。

使用QuartusⅡ软件工具对该滤波器进行性能分析, 结果见表1所示。

由表1知该滤波器共占用逻辑单元839个, 为内部所有逻辑单元的18%, 使用寄存器673个, 为内部所有寄存器的15%, 使用乘法器5个, 为内部所有乘法器的38%, 使用引脚24个, 为所有引脚的17%, 系统时钟为50 MHz时的单数据处理时间为0.5μs, 可见本滤波器的设计资源利用率较高, 且完全适用于无线传感器网络实时性要求较高的场合。

5 结论

节点的快速计算在无线传感器网络中发挥着重要作用, 本设计提出了基于SOPC的FPGA实现方案, 针对二阶IIR数字滤波算法为NiosⅡ嵌入式系统模块定制硬件设备, 并通过C语言程序和VHDL语言实现硬件功能, 得到的滤波效果良好, 同时分析了FPGA的资源利用率和计算速度。实验和分析表明, 本设计计算速率高、集成度高、电路设计过程简单且成本低, 能够用于需求快速处理能力的高性能无线传感器网络节点定位中。

参考文献

[1] 任丰原, 黄海宁, 林闯.无线传感器网络.软件学报, 2003;14 (7) :1282—1291

[2] 周立功, 等.SOPC嵌入式系统基础教程.北京:北京航空航天大学出版社, 2006:88—96

[3] 李兰英, 等.NiosII嵌入式软核SOPC设计原理及应用.北京:北京航空航天大学出版社, 2006:54—65

[4] 孙亭, 杨永田, 李立宏.无线传感器网络技术发展现状.电子技术应用, 2006;32 (6) :1—6

[5] 王磊.基于FPGA的嵌入式系统设计.哈尔滨工程大学, 2006;10 :1—4

[6] 李乙成, 周祖成, 陈尚松, SOC片上总线技术的研究.半导体技术, 2003;28 (2) :33—35

[7] 王福豹, 史龙, 任丰原.无线传感器网络中的自身定位系统和算法.软件学报, 2005;16 (5) :857—868

IIR滤波 篇3

飞行试验中,通常在进气道/发动机气动界面( aerodynamic interface plane,AIP) 上加装“米字形”或“水字形”压力测量耙,测量进气道出口横截面上稳态( 定常) 压力、动态( 非定常) 压力,以计算进气道出口各项进气畸变指数及紊流度,继而定量地评估进气道进口截面总压畸变特性,如图1 所示。这种进气道总压畸变测量方案及评标指标已经显见于国内外相关标准[4,5],如: SAE1420、GJB/Z 64A。AIP上动态压力测量的典型布局是8 点或6 点周向均匀布置的单点总压,测点位于相对半径的0. 9 位置处。

理想情况下,动态压力传感器测量值就能完全真实地反映流场压力脉动,然而,在实际的试验测量时,不仅气动气流冲击探头振动、飞机抖动、探针传压管的“管腔效应”等会影响动态压力测压结果; 而且背景噪声及其他干扰信号,如: 电磁信号,也会伴随着有用的信号进入传感器进入采集系统。由此导致采集动态压力虽然在平均值附近快速脉动,但是其夹杂着其他无用信号,不能真实地反映发动机转动而造成的流场压力脉动情况。因此,试验获取的动态压力数据处理前就需要滤波,剔除数据干扰及无用信号,获取所关注的受发动机转动产生流场压力脉动信号,进行指标计算和分析[6—8],如图2 所示。动态压力数据处理滤波环节就显得至关重要,相关国内外标准明确了要进行滤波,但对滤波具体要求并未明确。

围绕进气道动态畸变评定,开发了集IIR型数字滤波器设计、动态压力滤波及动态畸变指标计算为一体的进气道动态压力数据处理软件; 在真实飞行试验数据的基础上,分析研究了滤波器关键因素对动态畸变计算结果影响; 基于合理滤波的基础上,研究了飞机飞行状态、发动工作机状态对进气动态畸变的影响。

1 数字滤波器选择

按照脉冲响应时域特性分类,数字滤波器的脉冲响应可以分为有限脉冲响应滤波器( FIR) 和无限脉冲响应滤波器( IIR) 。如图3 所示,相对于FIR滤波器,IIR滤波器的幅频特性比较好,输出信号相位非严格线性,可以优先考虑选此型滤波器。

IIR滤波器总体系统函数如下

IIR滤波器的设计方法包括巴特沃斯法、契比雪夫法、双线性变化法等方法。其中巴特沃斯数字滤波器频率响应在通频带的频率响应曲线最平滑,即频率响应曲线在通频带内具有最大限度平坦,没有起伏,而在阻频带则逐渐下降为零,如图3 所示。因此,巴特沃斯低通滤波器对低频信号的平滑处理具有较好的效果,可应用于进气道动态压力滤波。

2 紊流度计算

进气道动态畸变指AIP总压空间的不均匀度随时间迅速变化称为动态畸变,定义紊流度来定量衡量该总压脉动特性。由于动态畸变时AIP总压不均匀度及低压区的分布均是时间的函数,因此,紊流度计算可以借鉴简单的随机统计函数处理进气道出口截面实测动态压力数据而得到。

2. 1 单测点紊流度

用单个测量点上脉动总压的均方根与面平均总压之比表示

式中( ΔPi)RMS表示第i个测量点脉动总压均方根,可由式( 3) 计算得到

式( 3) 中Pi( t) 为AIP上第i个测点上随时间变化的总压值; Pav为时间Tu内第i个测点总压平均值;Tu为脉动气流的取样时间,该时间间隔应远大于气流波动的最长周期,数据处理时,取Tu= 0. 5 ~ 2 s。

2. 2 平均紊流度

AIP上所有单测点紊流度的平均值,公式

式( 4) 中n为AIP上动态压力测点数。

3 基于IIR型滤波紊流度计算软件

利用Matlab软件设计开发集IIR数字滤波器设计[9]、动态压力数据滤波、紊流度计算功能为一体的进气道动态压力数据处理软件。软件具有良好的人机交互界面,如图4 所示,主要由滤波器设计区、动态压力数据处理区二部分。滤波器设计区可以随时根据需要设计不同的数字滤波器,显示滤波器的频域特性,设计流程如图5; 动态压力数据处理区包括试验采集数据导入及滤波,计算单个测点及面平均紊流度,处理流程如图6。

4 紊流度计算结果影响研究

进气道动态压力处理结果主要受滤波器滤波的影响,下面以飞行试验中4 个不同飞行状态典型试验点获取的数据为例详细分述滤波器关键设计参数变化对进气动态畸变计算结果影响。

4. 1 滤波器类型对紊流度计算结果影响

分别设计一个基于窗函数法FIR型滤波器、基于巴特沃斯法的IIR型滤波器,二滤波器具有相同类型、阶数、截止频率、采样频率,具体滤波器设计参数如下表1 所示。

图7 对比了两种不同滤波器幅频特性,当信号经过滤波器时,在低频通带,相对于IIR滤波器,信号频率经过FIR滤波器后信号幅值衰减程度较大,信号失真程度较为严重; 低频信号频率越大,同一信号经过FIR滤波器后幅值衰减程度更大,信号失真程度更为严重; 在高频阻带,相对于IIR滤波器,信号经过FIR滤波器信号幅值衰减程度较小,信号未能有效剔除; 随着高频信号频率增大,信号经过滤波器后幅值衰减程度增大,信号被有效剔除或抑制。低通滤波器目的是使低频信号无失真地通过,高频信号被有效剔除,由此观点看,采用巴特沃斯法IIR滤波器比采用汉宁窗的FIR滤波器滤波效果更好,处理结果更为可信。

图8 对比了用二种滤波器滤波计算的不同点平均紊流度。图8 表明: 经过巴特沃斯法IIR滤波器滤波计算平均紊流度相对比较大。原因在于: 动态压力数据经过巴特沃斯滤波后低频信号有效通过,幅值衰减程度相对较小,这点可从图7 对比中看出。

4. 2 滤波器阶数对紊流度计算结果影响

滤波器采样频率Fs= 2 000 Hz、截止频率Fc=400 Hz,阶次依次为n = 1,2,…,8,分别设计8 种不同低通巴特沃斯滤波器。图9 对比不同滤波器的幅频特性,结果表明: 随着滤波器阶数n的增大,滤波器幅频特性越好,滤波器越趋近于理想情况下滤波,即所有低频通信号无衰减通过,所有高频信号被剔除。

图10 对比经不同阶次滤波器滤波后的计算紊流度变化情况。图10 表明: 随着滤波器阶次数增大,计算的平均紊流度是增大,增大幅度是减小的,这点图11 也可证明。

图11 定义平均紊流度相邻阶次变化幅度Δεavn1,公式为:

正值表示增加,负值表示减小,绝对值大小反映了相邻阶次平均紊流度变化程度。图11 表明: 随着滤波器阶次数的增加,平均紊流度计算值在增加,但增加的幅度一直在减小,由10- 2减小到10- 4。说明随着滤波器阶次数的增大,滤波器阶次数对平均紊流度计算的影响越来越小。

理想情况下,经过n = ∞ 阶次滤波器计算紊流度是最准确的。图12 定义n阶次紊流度失真度Δεavn2,公式为

反映了n阶次滤波后计算平均紊流度距理想情况下的偏差,绝对值越大,表明距离理想情况下偏差越大。由图11 可知,当阶次n = 8 时,阶次数增加对平均紊流度影响基本在10- 4量级以下,可近似将经8 阶次滤波器滤波后平均紊流度作为理想值,计算经各n阶次滤波器紊流度失真度,如图12所示。

图12 表明: 随着阶次数n增大,Δεavn2在减小,表明平均紊流度距离真值偏差越小,在n = 4 ~ 6 阶次,Δεavn2量级在10- 3~ 10- 4量级以下,可接受。因此,滤波器设计时建议阶次数为4 ~ 6。

4. 3 低通截止频率对紊流度计算结果影响

滤波器采样频率Fs= 2 000 Hz、阶数n = 4,截止频率依次为Fc= 100 Hz,200 Hz,…,900 Hz,分别设计多种不同低通巴特沃斯滤波器,图13 对比了不同截止频率滤波器的幅频特性。图13 表明: 随着滤波器截止频率的增大,通过低频信号越多,被阻高频信号越来越少。由此可见,截止频率的选取对滤波器至关重要,若选择太小,则会将部分关心信号过滤掉,若选择太大,则不能剔除无效的信号。截止频率选择太大或太小都不合适宜。

图14 对比经不同截止频率滤波器滤波后计算平均紊流度变化情况。图15 定义了平均紊流度增幅系数 Δεavw1,公式为:

表示以截止频率每增加100 Hz时,平均紊流度计算值变化情况,正值表示增加,负值表示减小,量值大小表示变化程度。

图14、图15 结果表明: 随着截止频率的增大,平均紊流度值越来越大,并且平均紊流度增长幅值是逐渐减小的,当截止频率大于500 Hz后,Δεavw1小于10- 2量级,当截止频率在500 Hz后,平均紊流度基本上趋于平坦。

对进气道动态压力数据采集及处理而言,其截止频率选取主要考虑该发动机的转速( 即扰动频率) 、满足采样定律的要求,目前并无准确的理论公式可供参考。有资料建议截止频率可采用工程公式估算[7]:

式( 8) 中: Hz为发动机扰动频率( r/s) ,Vmax为发动机进口处最大质量流速( m/s) ,D1为发动机进口直径( m) 。

有资料建议截止频率为400 ~ 600 Hz[10],也有数据资料建议按发动机第一级转子的的( 0. 5 ~ 1) r来考虑[8]。

截止频率选取时可在工程公式估算基础上,综合考虑截止频率对紊流度影响大小等因素。

5 飞行试验中进气动态畸变变化

设计一个低通巴特沃斯滤波器,阶数n = 4、采样频率Fs= 2 000 Hz、截止频率在综合了试验发动机转子转速利用公式计算,同时结合相关资料研究及上述截止频率对平均紊流度的影响分析,综合各项因素后选择截止频率为500 Hz。利用该滤波器计算各种飞行状态下平均紊流度变化进行了研究。

5. 1 飞行高度不变,飞行速度、发动机状态变化

在飞行试验中选取四个不同飞行状态点,各点关系为: HP1= HP2< HP3= HP4,、Mi1< Mi3< Mi2< Mi4,保持各点飞行高度、速度不变,发动机状态变化时发动机进口速度M2与低压压气机转子转速n1co的变化如图16 所示,平均紊流度与进口速度M2的关系如图17 所示。

图16 表明: 随着发动机状态增大时,发动机进口马赫数增加; 同一高度,发动机状态保持、当飞行马赫数增加时,发动机进口马赫数增加。

图17 表明: 随着发动机进口马赫数的增加,进气道出口的平均紊流度增加; 同一高度,发动机状态保持、飞行马赫增加时,进气道出口的平均紊流度增加。由此表明: 当飞行高度不变时,飞行速度增加或发动机状态增加,均使得进气动态畸变加剧。

5. 2 飞行高度、飞行速度、发动机状态变化

飞行试验中在不同飞行高度、不同飞行速度、不同发动机状态时,获取进气道动态畸变性能,将所有试验点的平均紊流度与进口马赫数表示在图18 上。

图18 表明: 在极个别大飞行速度发动机小状态、小飞行速度发动机大状态、大迎角飞行时,平均紊流度较大; 在大部分试验点飞行速度与发动机状态相匹配试验点,平均紊流度较小,且随着发动机进口马赫数的增加而增加,具有近似的二次曲线关系。

6 结论

1)相对于FIR型窗函数法,进气动态压力滤波建议采用IIR型巴特沃斯法,其计算动态畸变评价指标较为准确,开发的基于IIR型滤波进气动态畸变计算软件已经成功应用于工程实践。

2)滤波器阶次越高,对平均紊流度计算影响越小,计算结果越准确,建议选择4 ~ 6 阶次; 截止频率越大,平均紊流度计算值越大,但影响会越小,截止频率过大或过小均不适宜,选择时应根据实际采样率、发动机扰动频率等各方面因素综合考虑。

3)飞机飞行速度增大或发动机状态增大,发动机进口马赫数增大,继而导致平均紊流度增大,表明进气动态畸变增大,且呈现出一定的规律性。当飞行速度和发动机状态不相匹配时,进气动态畸变会突增。

摘要:开发集IIR型数字滤波器设计、滤波、紊流度计算为一体进气动态畸变数据处理工具,成功地应用于进气道/发动机相容性飞行试验中评定进气动态畸变。研究表明:1基于幅频特性考虑,采用巴特沃斯法对进气道动态压力滤波,紊流度计算结果比较准确;2滤波器阶数越高,平均紊流度计算结果越准确,建议选择4~6阶;截止频率越高,平均紊流度计算结果越大,截止频率过大或过小均不适宜,应根据实际采样率、发动机扰动频率等综合考虑选取;3飞行速度增大或发动机状态增大,导致进气道出口马赫数和紊流度增大,进气动态畸变程度严重,且呈现出一定的规律性。当飞行速度与发动机状态不匹配时,进气动态畸变会突增。

关键词:IIR滤波器,巴特沃斯法,进气动态畸变,紊流度,飞行试验

参考文献

[1]姜健,于芳芳,赵海刚,等.进气道/发动相容性评价体系的完善与发展.科学技术与工程,2009;9(21):6474—6483Jiang Jian,Yu Fangfang,Zhao Haigang,et al.Perfection and development of engine/intake compatibility evaluate criterion.Science Technology and Egnineering,2009;9(21):6474—6483

[2] Bowditch D N,Coltrin R E.A Survey of Inlet/Engine Distrtion Capability.AIAA 83-1166,1983

[3] GJB 243A—2004.航空燃气涡轮动力装置飞行试验要求.北京:国防科学技术工业委员会,2004GJB 243A—2004,The flight test requirements for aircraft gas turbine powerplant.Beijing:Commission on Science,Technology,and Industry for National Defense.2004

[4] GJB/Z 64A—2004.航空涡轮喷气和涡轮风扇发动机进口总压畸变评定指南.北京:国防科学技术工业委员会,2004GJB/264A—2004,Aero-Turbojet and turbofan engine linlet totalpressure-distortion assessment guidelines.Beijing:Commission on Science,Technology,and Industry for National Defense.2004

[5] SAE ARP1420.Gas Turbine engine lnlet flow distortion guidelines.Warrendale,PA:The Engineering Society For Advancing Mobility Land Sea Air and Space,2002

[6] 汪涛,姜健,史建邦.进气道/发动机相容性试飞总压畸变的采集与处理.燃气涡轮试验与研究,2012;25(2):54—58Wang Tao,Jiang Jian,Shi Jianbang.Acquisition and processing of total pressure distortion data in inlet/engine compatibility flight test.Gas Turbine Experiment and Research,2012;25(2):54—58

[7] 惠增宏,张理,竹朝霞,等.进气道试验中动态数据采集及处理方法研究.试验力学,2002;17(1):48—54Hui Zenghong,Zhang Li,Zhu Zhaoxia,et al.A research on the dynamic data sampling and processing in ari-inlet dust test.Journal of Experimental Mechanics,2002;17(1):48—54

[8] 刘大响,叶培梁,胡俊,等.航空燃气涡轮发动机稳定性设计与评定技术,北京:航空工业出版社,2004:48—54Liu Daxiang,Ye Peiliang,Hu Jun,et al.Aero gas turbine engine stability design and evaluation technology.Beijing:Aviation Industry Press,2004:48—54

[9] 黄文梅,熊桂林,杨勇.信号分析与处理-MATLAB语言及应用.长沙:国防科技大学出版社,2002:125—172Huang Wen mei,Xiong Guilin,Yang Yong.Signal analysis and process-MATLAB language and practice.Changsha:National University of Defence Technology Press,2002:125—172

IIR滤波 篇4

滤波器设计问题被广泛应用于信号处理应用中[1,2]。为了达到相同频谱特征, 无限脉冲响应 (IIR) 滤波器与有限脉冲响应 (FIR) 滤波器相比具有的优势是更高的运算效率。这是由于无限脉冲响应滤波器使用了反馈过程, 所以通常要比同样性能的有限脉冲响应滤波器所需的滤波器系数更少, 耗费的资源要少。但是由于反馈的因素, 高阶的无限脉冲响应滤波器可能会有不稳定和运算溢出的问题, 因此其设计问题比有限脉冲响应滤波器更难。现有的无限脉冲响应滤波器设计方法计算出的稳定IIR滤波器往往是局部最优解, 所以即满足稳定条件又同时全局最优就成为IIR滤波器的设计目标。

本文提出IIR滤波器设计方法满足稳定条件, 同时还保证设计结果为全局最优, 具体设计算法的理论根据是基于优化理论的最新结果:多项式优化一些理论进展和算法。多项式优化 (polynomia optimization, PO) 比经典的凸优化理论更广泛, 其理论和算法结合了实代数几何与凸优化理论中半正定规划 (semidefinite programming, SDP) 的一些结果。

2. 多项式优化理论

设f (x) , 和为定义在上的多项式函数, 可以将多项式优化问题表述为

设S为 (1) 的可行性解集合且 (1) 的最小值为fmin, 则求解多项式优化问题 (1) 的标准解法由Lasserre提出[3,4], 原理是通过一序列SDP松弛问题最优值{fN}来逼近原问题的最优值fmin, 且这种收敛在一定条件下可以在有限步达到[3]。

3. 最优IIR滤波器设计

3.1 IIR滤波器

设为偶数, IIR滤波器的传递函数为

它的稳定性条件[5]为

其中1≤j≤k, ε>0为很小正数以便保证系统的稳定性。设IIR滤波器H需要逼近的滤波器为

我们希望最小化H与H0的最大误差δ:

需要求解的最优问题为

下面一节我们将 (6) 转化为多项式优化问题 (1) 。

3.2 多项式优化滤波器设计

我们设辅助向量

下面整理乘积式

那么约束条件 (5) 表示成如下形式,

我们将约束条件 (8) 中连续变化的变量ω∈[-π, π]离散化为个点的集合。这样最优问题 (6) 成为多项式优化问题:

多项式最优问题 (9) 可以根据Lasserre的SDP算法[4]求解。

4. 结论

本文提出一种新的全局最优IIR滤波器设计方法, 该方法给出的全局最优滤波器在满足稳定条件和全局最优的同时, 具有很好的频谱特征。

摘要:无限脉冲响应 (IIR) 滤波器最优化设计是非线性和非凸优化问题, 现有的设计方法获得的往往是局部最优解。本文提出一种新的基于多项式优化理论的滤波器设计方法, 该方法可以保证计算出的滤波器具有全局最优解和很好的频谱特征。

关键词:无限脉冲响应滤波器,多项式优化,半正定规划

参考文献

[1]P.P.Vaidyanathan, Multirate Systems and Filter Banks, Prentice-Hall, 1993.

[2]A.V.Oppenheim and R.W.Schafer, Discrete-Time Signal Processing, 3rd ed., Prentice-Hall, Inc.:Upper Saddle River, NJ, 2009.

[3]J.Lasserre.A semidefinite programming approach to the generalized problem of moments.Math.Program.112 (2008) , no.1, Ser.B, 65-92.

[4]D.Henrion and J.Lasserre.Detecting global optimality and extracting solutions in GloptiPoly.In Positive Polynomials in Control, D.Henrion and A.Garulli, eds., Lecture Notes on Control and Information Sciences, Springer Verlag, 2005.

IIR滤波 篇5

IIR数字滤波器良好的幅频特性使其广泛应用于实时、高速场合,设计出稳定可靠的高速IIR滤波器有着显而易见的意义[1]。

为了提高话音质量,有效滤除噪音,根据滤波器的相关理论给出稳定高速IIR数字滤波器的设计方法,采用二阶节级联的IIR数字滤波器基于MATLAB软件平台和FPGA硬件平台设计实现[2,3]。首先在MATLAB仿真平台上,利用专用的数字滤波器设计分析工具FDATool和专用函数设计出符合要求的滤波器,得到滤波器的传输函数,然后采用取整的方法,对传输函数系数进行量化,以充分发挥FPGA的高速性能,设计出具有严格指标要求的数字滤波器,最后基于QuartusⅡ平台使用Verilog语言编程实现该IIR滤波器。

1 IIR滤波器的设计原理

IIR型滤波器是一种具有反馈结构的递归型滤波器,结构简单,运算速度快,占用存储空间少,具有较高的计算精度及较好的选频特性,实现阶数较低,并且可以解析控制,与模拟滤波器有对应关系。其缺点是要考虑系统稳定性,需要记忆的数据多,易产生溢出[4]。

一个N阶IIR数字滤波器的系统函数为[5]:

其线性常系数差分方程为[6]:

用FPGA实现滤波的基本思想就是基于式(1-2)来实现的。由系统的输入序列,根据所给的滤波器指标,通过MATLAB仿真出系数矢量b和a,采用递推算法求解差分方程,就求出输出序列。本文所设计的滤波器采用MATLAB与Verilog编程相结合的方法,首先根据滤波器的性能指标利用MATLAB得到系统函数,即滤波器的系数,通过仿真确保所设计的滤波器符合要求。然后采用Verilog编程实现该算法,在QuartusⅡ软件中编程仿真以验证算法的正确性。采用此方法设计的滤波器既快捷又能获得优化过的硬件电路,节省硬件资源。

2 IIR滤波器的MATLAB设计与仿真

2.1 IIR数字滤波器的设计要求及方案

该IIR数字滤波器指标:采样频率为64KHZ,通带频率:300-3000Hz,阻带截止频率:Fstop1=150HZ,Fstop2=6000HZ。通带内最大衰减为0.5d B,阻带内最小衰减为50d B。根据以上指标,由MATLAB椭圆函数和FDATool工具得到滤波器的传输函数。该滤波器是由四个二阶节级联法构成的八阶IIR带通椭圆滤波器。由MATLAB仿真所得到的滤波器系数往往是非整数,而FPGA目前还不能直接支持浮点数运算,因此,需要对滤波器系数进行整数处理。系数量化对滤波器的性能影响和量化字长有密切关系[7,8],在满足频响的指标下,应尽可能降低系数量化误差,选择最合适的字长。

2.2 IIR滤波器的MATLAB仿真

利用MATLAB的FDATool工具和专用函数得到的滤波系数,采用M语言实现差分方程运算,对所设计的滤波器进行仿真验证。以频率分别为1000HZ和6000HZ的正弦信号叠加合成作为滤波器的输入信号,1000HZ和6000HZ的叠加信号及该合成信号经过该滤波器后所得到的波形如图1所示:

由图1可以看出,频率为1000HZ和6000HZ的合成信号通过该滤波器后,6000HZ的正弦信号被抑制,将带内的1000HZ输出,达到了滤波效果。

3 IIR滤波器的FPGA设计与仿真

本文基于FPGA的IIR数字滤波器硬件实现平台,是一个通用的高速数字信号处理平台。 在该平台所实现滤波器,可应用于高速场合。

3.1 IIR滤波器的FPGA设计

在MATLAB中对设计好的滤波器进行仿真,以确保所设计的滤波器符合要求,得到滤波系数,然后编写Verilog代码实现差分方程,在QuartusⅡ和Modelsim仿真平台上仿真以验证算法的正确性,最后以FPGA作为硬件实现平台测试滤波效果。根据MATLAB仿真可以得到,本文所设计的滤波器为四个二阶节的系统级联构成的八阶带通滤波器。因此可以分为五个模块实现,分别是顶层模块,四个二阶节模块。其中,每个二阶节系统的实现,需要乘法运算,加法运算,移位运算以及延时、截位等。数字滤波器运算过程中有限字长效应也会造成误差,因此对滤波器中乘加法器及寄存器的数据位宽要进行合理的设计,以防止产生极限环现象和溢出震荡。因此,我们可以根据不同滤波器的指标,修改相应的滤波系数及根据仿真结果修改乘加法器及寄存器的数据位宽方便灵活地完成滤波器的设计[9,10]。

3.2 IIR滤波器的FPGA仿真

MATLAB进行仿真时的滤波器的输入信号,输入序列以十六进制的格式文件.hex保存,然后在进行Modelsim仿真时,直接调用此文件作为滤波输入信号,然后观察滤波器输出波形,判断滤波器的性能。

以频率分别为1000HZ和6000HZ的正弦信号叠加合成作为滤波器的输入信号,在QuartusⅡ和Modelsim中运行所得到的仿真结果如图2所示:

由图2的仿真结果可得:1000HZ和6000HZ的叠加信号通过该滤波器后,带外的6000HZ信号被有效抑制,输出1000HZ的正弦信号。

由仿真结果可以得出:与MATLAB仿真结果一致,该滤波器性能良好。使用Verilog语言编程实现IIR滤波器,基于组合逻辑的递推算法虽然不是最节省FPGA内部资源的算法,但其优点是算法简单清晰,代码简短,可大大节省滤波器设计时间。

该IIR滤波器基于QuartusⅡ软件仿真验证完毕后,采用JTAG专门的测试输入输出接口电路,将调试好的Verilog程序下载到FPGA芯片中,借助示波器观察波形,以验证滤波器的性能。各功能模块设计、调试测试完成之后,完成IIR滤波器的实现。在用示波器观测时,滤波器的输出波形带有许多大幅度尖锐毛刺,从而严重影响了滤波器的性能。通常消除毛刺的方法是在具体的电路中加个锁存器。本文采取另一优化方法,即在源代码中通过符号“<=”把输出信号赋给一个中间信号,再把中间信号作为输出,这相当于将信号作一个延时再输出。这种方法不需要知道具体的电路结构,也无需编写其它代码模块,因此优化更为简便快捷,而且优化效果非常好。该IIR滤波器有效地滤除了噪声,实现了音频基带数字信号的提取与杂波信号剔除。仿真实现结果表明,该设计方法快捷、高效,所设计的滤波器能应用于高速场合。

4 结束语

针对二阶IIR数字滤波器的设计提出一种快捷设计高速IIR数字滤波器的方法,给出了IIR数字滤波器从MATLAB设计到FPGA实现的整个过程,并讨论了设计中遇到的一些关键性问题。在MATLAB及QuartusⅡ上作了不同层次的仿真,同时在硬件平台上最终验证了该滤波器的滤波性能。验证结果表明所设计的滤波器各项技术指标均达到预期设计要求。

本文的主要工作在于综合利用Matlab、QuartusⅡ(Verilog语言)、Modelsim软件,进行IIR数字滤波器的设计。该方法结合IIR滤波器的优点及FPGA的实时性,快速设计出高效、低成本、占用硬件资源比较少的IIR数字滤波器,极大地扩展了IIR数字滤波器的应用领域。

参考文献

[1]刘凌,胡永生.数字信号处理的FPGA实现[M].北京:清华大学出版社,2003.

[2]田耘.无线通信FPGA设计[M].北京:电子工业出版社,2009.

[3]罗朝霞,高书莉.CPLD/FPGA设计及应用[M].北京:人民邮电出版社,2007.

[4]孙琢.基于Matlab的IIR数字滤波器仿真研究[J].科技传播,2010(10).

[5]张华,孙运强,姚爱琴.基于FPGA的IIR数字滤波器的实现[J].电子测试,2010(7):50253.

[6]屈星,唐宁,严舒,杨白.基于FPGA的IIR数字滤波器的设计与仿真[J].计算机仿真.2009(8):304-308.

[7]肖尚辉,黄邦菊.基于MATLAB的FIR/IIR滤波器分析与设计研究[J].宜宾学院学报第6期,NO.6.

[8]邓伟,田正文.利用MATLAB辅助设计IIR数字带通滤波器[J].东华大学信息科学与技术学,2009年第6期.

[9]张书召,彭杰.基于FPGA的IIR数字滤波器的设计与实现[J].工业控制计算机,2010,23(1).

IIR滤波 篇6

数字滤波在数字信号处理领域有着十分重要的作用,是信号处理不可或缺的环节。图像处理、语音、谱分析等中均需要应用到数字滤波。在绝大多数的数字信号处理的应用中,数字滤波器的好处远大于模拟滤波器。不同的幅度和相位频率特性指标均可以用数字滤波器实现,模拟滤波器器件性能相关的电压漂移、噪声问题和温度漂移在数字滤波器中均得到了克服。

MATLAB中的信号处理工具箱,在数字信号处理中常用的算法:FFT、相关、滤波器设计、卷积和参数模型等,用一条语句基本上就可以实现。波形的产生、傅里叶变换、Z变换、滤波器的设计和分析都是数字信号处理中常用的函数。

1 数字滤波器设计的相关理论

按照数字滤波器的脉冲响应时域特性分为:无限脉冲响应(IIR,Infinite Impulse Response)滤波器和有限脉冲响应(FIR,Finite Impulse Response)滤波器。FIR数字滤波器具有线性相位特性,模拟滤波器和IIR数字滤波器不具备这一特性[4,5]。IIR数字滤波器方便简单,但它相位的线性,要采用全通网络进行相位校正。图像处理以及数据传输,都要求信道具有线性相位特性。根据数字滤波器频域作用范围的不同,可分为低通、高通、带通和带阻。

1.1 IIR数字滤波器设计的具体步骤

数字滤波器可以根据模拟滤波器成熟的技术和方法来进行设计,因为模拟滤波器具有完整的公式和图表[6,7,8],IIR滤波器设计的具体步骤如图1所示。

一般通过MATLAB来设计IIR数字滤波器,MATLAB为我们提供了设计IIR滤波器的函数,这些函数让我们方便快捷地完成滤波器的设计。通常低通模拟滤波器有四种设计方法:巴特沃斯(Butterworth)、椭圆、切比雪夫(Chebysheve)I型、切比雪夫II型四种设计方法。

1.2 数字滤波器的频带变换

依据某些特定的变换关系,我们把某个数字低通滤波器转化为带阻、带通、低通、高通数字滤波器,转化后的数字滤波器与原来的数字滤波器一致的通带特性和阻带特性曲线。滤波器频带变换关系如表1所示。

2 双线性变换法IIR滤波器

2.1 双线性变换法的基本原理

在设计高通、带通、带阻IIR滤波器可以选用双线性变换法。将模拟滤波器转换成数字滤波器,然后进行设计,其设计原理为:由于从s平面转换到z平面,会产生频率响应的混叠失真,是由于多值映射所产生的。双线性变换法采用非线性频率压缩,使得频率范围在之间,然后用z=es T转换到z平面。这样就建立了一一映射的关系,消除了频谱混叠现象。

由于设计的是带通IIR滤波器,我们选用的是双线性变换法,由于模拟滤波器只能设计低通滤波器,我们先需要将带通滤波器的技术指标转换成模拟的,然后设计低通滤波器,之后将设计得到的模拟滤波器通过双线性变换法转换成数字滤波器,再通过转换公式将其转换成带通滤波器。

2.2 IIR带通滤波器的设计

IIR带通滤波器的指标为:通带中心频率ωp0=0.5π,通带最大衰减αp=3d B,通带上、下截止频率分别为ωp1=0.4π,ωp2=0.6π,阻带截止频率ωs2=0.7π,阻带最小衰减αs=15d B。MATLAB中的bilinear函数可以实现双线性变换。调用格式为:[Bz,Az]=bilinear(B,A,Fs);其中,B、A为模拟滤波器传递函数G(s)的分子多项式的系数向量;而Bz、Az为数字滤波器的传递函数H(z)的分子、分母多项式的系数向量。

双线性变换法设计IIR滤波器MATLAB程序如下所示:

IIR带通滤波器的设计结果如图2所示。

观察图像可以知道,在图中2处允许该频率段的频率通过,而其他地方则不允许通过,设计结果符合参数要求。

3 总结

IIR滤波器的数模转换设计方法的结论是:一般是通过一定的转换规则将数字IIR滤波器的各项性能指标转换成对应模拟滤波器的性能指标,然后设计对应的模拟滤波器,再通过双线性变换法或其他方法将模拟滤波器转换成数字滤波器,若是低通,则结束,其他则按照一定的规则转换成相应的滤波器。这种设计方法效率高,可靠性强。

参考文献

[1]Joyce Van de Vegte.Fundamentals of Digital Signal Processing[M].北京:电子工业出版社,2003.

[2]丁磊,潘贞存,丛伟.基于MATLAB信号处理工具箱的数字滤波器的设计与仿真[J].继电器,2003,31(9):49-51.

[3]杨大柱.MATLAB环境下FIR滤波器的设计与仿真[J].集成电路应用.2006(09):101-103.

[4]钟麟,王峰.MATLAB仿真技术与应用教程[M].北京:国防工业出版社,2004.

[5]赵瑞堃.基于MATLAB的FIR和IIR数字滤波器的设计[D].吉林:吉林大学,2012.

[6]王赟松.FIR数字滤波器设计[D].西安:西安电子科技大学,2012.

[7]严小军,赵妮,秦泓江.基于MATLAB的IIR数字滤波器设计与仿真[J].2007(6):110-112.

IIR滤波 篇7

在数字信号处理中, 常规滤波器或固定滤波器如FIR, IIR滤波器的特性被固定, 即作用于输入信号, 则产生相应的输出, 但是, 在实际应用中对滤波器的输出要求往往是明确的, 如果滤波器的权系数等特性无法预先知道就会限制对需要处理的数字信号实现最优滤波。自适应滤波技术是现代数字信号处理领域中的一个重要方面, 其特点是不需要知道所处理信号的统计特性, 而且能够自动适应环境的变化, 使得处理结果达到最优[1]。由于自适应滤波大多用在实时处理的情况, 所以其实时实现问题是自适应滤波器的一项重要指标。在诸多的自适应算法中, 最小均方算法 (LMS) 由于其设计和实现都较为简单被广泛采用。

TMS320C6713是TI公司开发的一款新型浮点DSP芯片, 它基于超长指令字结构 (VLIW) , 非常适合于做高强度的数学运算, 被认为是TI公司运算能力最强的处理器之一。本文使用合众达公司开发的一款基于TMS320C6713芯片的开发板构建了音频信号处理系统, 对音频信号的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等可供下载至硬件电路运行的二进制格式文件[2], 它还提供了多种C/C++代码优化功能和一些实时分析及编程方案。此外, CCS的调试和仿真具有很强的功能:允许中断点、剖析点及探测点三种断点设置, 分别实现程序断点、实时分析和数据导入等功能[3]。CCS为DSP芯片的开发与设计提供了极大的便利, 是目前使用最为广泛的DSP开发环境之一, 其版本已发展至4.1甚至更高。

在DSP应用系统中, 不可避免地会涉及到大量对DSP器件外设特别是片上外设的编程处理工作, 这将消耗开发工程师在开发初期大量的精力。在TI公司的CCS开发环境中, 提供了DSP片级支持库CSL作为一个组件, 多数CSL模块都由对应函数、宏、类和表示符号组成, 利用这些模块可以非常方便地完成对DSP片上外设的配置和控制的编程工作, 从而简化了DSP片上外设的开发工作, 缩短了用户程序的开发周期, 并且可以达到标准化控制管理片上外设的能力, 减少DSP硬件特殊性对用户程序代码的影响, 以方便对用户代码在不同器件间的移植工作[4]。

3 自适应IIR格型滤波器及算法

3.1 自适应IIR格型滤波器

自适应滤波器就是其权系数可以根据某种自适应算法来不断修改, 使系统的冲激响应满足给定的性能判断。它的设计包括结构设计和自适应算法的选取、最佳参数的确定, 以及有效字长效应影响的最小化等。自适应滤波器的原理图如图2所示。它主要由两部分组成:系数可调的数字滤波器和用来调节或修正滤波器系数的自适应算法。

图中滤波器的结构可以是IIR型结构, 也可以是FIR型结构。尽管IIR结构的滤波器性能不够稳定, 但在实际应用中它能够以很小的复杂度实现和FIR滤波器相同的功能, 且可以利用模拟滤波器设计的结果, 所以在对稳定性要求不高的情况下这是一个理想的选择。本文所采用的是IIR格型自适应滤波器, 格型结构的优点是按阶递归, 增加或者减少级数不会影响已经存在的阶数设计。

格型IIR滤波器的结构框图如图3所示[5]。它由两个格型滤波器级联而成, 上方的格型滤波器H1 (z) 的输入为Input, 输出设为s0 (n) ;下方的格型滤波器H2 (z) 的输入为s0 (n) , 输出为Output。

采用TI公司开发的C67xDSPLIB库函数DSPF_sp_iirlat。DSPF_sp_iirlat是单精度IIR格型滤波算法[6]。其C语言形式为:

void DSPF_sp_iirlat (float*x, intnx, const float*restrictk, intnk, float*restrictb, float*r)

x[nx]:输入信号

nx:输入信号长度

k[nk]:权系数

nk:权系数长度 (>=6且为2的倍数)

b[nk+1]:延迟单元, 初始化为0

r[nx]:输出信号

3.2 自适应滤波器算法

在前面讨论了自适应滤波器的原理和结构, 接下来讨论自适应滤波器的另一个关键组成部分:自适应算法。目前, 大多数自适应滤波器都采用最小均方算法 (LMS) , 因为它容易设计、实现且性能稳健。自适应算法是根据某种准则来设计的, 目的在于设法使y (n) 和d (n) 尽量接近, 不同的算法实质一样, 只是接近的衡量标准不一样。最常用的准则是最小均方误差 (Mean Square Error, MSE) 准则, 即期望信号d (n) 与滤波器输出y (n) 之差e (n) 的平方值最小, 并根据这个准则来不断调整自适应算法[7]。采用TI公司开发的C67xDSPLIB库函数DSPF_sp_lms。DSPF_sp_lms为单精度浮点LMS算法, 实现LMS自适应算法[6]。其C语言形式为:

float DSPF_sp_lms

(float*x, float*h, float*desired, float*r, floatadaptrate, float error, int nh, int nr) ;

x:输入信号

h:权系数

desired:期望信号

r:输出信号

adapt rate:自适应步长

error:误差

nh:数据缓冲区长度

nr:输出数据长度

4 自适应IIR格型滤波算法的DSP实现

由于自适应滤波器需要两个输入端, 一个为主信号输入端, 另一个为参考信号输入端。因此, 如何在软件和硬件上设计和实现两个信号通路的建立问题是自适应滤波器的关键之一。为了解决双通道自适应滤波器的信号输入通道问题, 可以采用开发板上的CS4272编解码器的立体声输入功能, 利用立体声编解码器的左、右两路音频输入作为主信号输入和参考信号输入。然后将两个通道的信号送往DSP进行自适应IIR格型滤波处理, 将处理后的信号通过McBSP0传送到CS4272编解码器, CS4272编解码器的D/A转换电路再将数字信号转换为模拟音频[8]。整个自适应滤波的过程如图4所示。

本文中自适应滤波器的参考输入通道采用的是目标板上的立体声输入接口的左通道, 主信号通道采用立体声接口的右通道, 操作完成后进行交替, 采用Ping-Pong数据缓冲结构, Ping-Pong缓冲存储区分配采用下面的C语言形式[9]:

int gBufferXmtPing[BUFFSIZE]; //传输ping缓冲区

int gBufferXmtPong[BUFFSIZE]; //传输pong缓冲区

int gBufferRcvPing[BUFFSIZE]; //接收ping缓冲区

int gBufferRcvPong[BUFFSIZE]; //接收pong缓冲区

当bypass_bit==1时则进行IIR格型自适应滤波处理

if (bypass_bit==1) //开始处理

{

DSPF_sp_lms (Buffer_iir_l, h0, Buffer_iir_r, mid_iir, 0.00005, 0, 512, 512) ;

DSPF_sp_iirlat (Buffer_iir_l, 512, h0, 512, 0, Buffer_iir_l) ;

DSPF_sp_lms (Buffer_iir_r, h0, Buffer_iir_l, mid_iir, 0.00005, 0, 512, 512) ;

DSPF_sp_iirlat (Buffer_iir_r, 512, h0, 512, 0, Buffer_iir_r) ;

}

程序使用CCS开发环境进行编译、链接生成可执行公共目标文件 (COFF) , 然后加载运行。滤波器的权系数设定为512阶, 自适应步长为5×10-5, 输入信号为某组给定的音频信号, 通过CCS开发环境的图形分析工具得到测试结果如图5所示。可以看到, 滤波前后的频谱图非常相似, 结果表明该滤波器具有很好的滤波效果。

最后通过SEED-XDSusb 2.0仿真器下载到开发板上运行并播放音乐进行实时测试, 实验结果符合预期效果, 有很好的实用价值。

5 结 语

本文设计的重点和难点是掌握和应用DSP来实现音频信号的采集、输出的硬件平台的构建, 研究了IIR格型自适应滤波处理算法的DSP实现问题, 最终通过DSP软件编程完成了目标算法的工程实现。本文提出的基于这种特殊结构的自适应滤波器, 由于实时性强和滤波效果明显, 将越来越广泛地被应用于各种工程中。

摘要:区别于普通的FIR, IIR滤波器, 为了使滤波器能够按照某种准则自动且较快地达到最佳滤波效果, 采用了LMS自适应算法和格型滤波结构相结合的方法。它利用DSP技术在TMS320C6713开发板上构建了验证该音频信号处理算法的硬件平台, 并在集成开发环境CCS通过DSP的软件编程完成其工程实现。实验结果表明, 该滤波器计算复杂度低, 实现速度快, 具有良好的实时性和滤波效果。

关键词:TMS320C6713,IIR,自适应格型滤波器,LMS算法,CCS

参考文献

[1]胡广书.现代信号处理教程[M].北京:清华大学出版社, 2004.

[2]邹彦.DSP原理及应用[M].北京:电子工业出版社, 2008.

[3]彭启琮, 管庆.DSP集成开发环境:CCS及DSP/BIOS的原理与应用[M].北京:电子工业出版社, 2004.

[4]Texas Instruments.TMS320C6000 chip support library APIreference guide[M].[S.l.]:Texas Instruments, 2004.

[5]张贤达.现代信号处理[M].北京:清华大学出版社, 2002.

[6]Texas Instruments.TMS320C67x DSP library programmer′sreference guide[M].[S.l.]:Texas Instruments, 2010.

[7]林静然.基于TI DSP的通用算法实现[M].北京:电子工业出版社, 2008.

[8]董安明.利用TMS320C6713DSK实现的自适应滤波器[J].河西学院学报, 2010, 26 (2) :21-22.

上一篇:消防工作火灾防范下一篇:社区体育指导员