黄红云老婆:基于DSP的FIR滤波器的设计与实现
来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 00:29:38
一、引言
随着信息时代和数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。数字信号处理(DSP)包括两重含义:数字信号处理技术(Digital Signal Processing )和数字信号处理器( Digital Signal Processor )。数字信号处理(DSP)是利用计算机或专用处理设备,以数值计算的方法、对信号进行采集、滤波、增强、压缩、估值和识别等加工处理,借以达到提取信息和便于应用的目的,其应用范围涉及几乎所有的工程技术领域。
在数字信号处理的应用中,数字滤波器很重要而且得到了广泛的应用。按照数字滤波器的特性,它可以被分为线性与非线性、因果与非因果、无限长冲击响应(IIR)与有限长冲击响应(FIR)等等。其中,线性时不变的数字滤波器是最基本的类型;而由于数字系统可以对延时器加以利用,因此可以引入一定程度的非因果性,获得比传统的因果滤波器更灵活强大的特性;IIR 滤波器的特征是具有无限持续时间冲激响应,这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器,而FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现,但其结构主要还是是非递归结构,没有输出到输入的反馈,并且FIR滤波器很容易获得严格的线性相位特性,避免被处理信号产生相位失真,而线性相位体现在时域中仅仅是h( n)在时间上的延迟,这个特点在图像信号处理、数据传输等波形传递系统中是非常重要的,且不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。相对于IIR滤波器,FIR滤波器有着易于实现和系统绝对稳定的优势,因此得到广泛的应用;对于时变系统滤波器的研究则导致了以卡尔曼滤波为代表的自适应滤波理论的产生。自适应滤波即利用前一时刻已获得的滤波器参数等结果,自动地调节(更新)现时刻的滤波器参数,以适应信号和噪声未知的统计特性,或者随时间变化的统计特性,从而实现最优滤波。几种主要的自适应滤波器为:最小均方(LMS)自适应滤波器、递推最小二乘(RLS)自适应滤波器、格型自适应滤波器、无限冲击响应(IIR)自适应滤波器。而自适应去噪电路是信号处理领域一个简单应用,一个被噪声污染的信号借助于相关噪声可以把信号提取出来,而噪声不断变化,为了得到较清晰的语音信号必须采用自适应去噪技术,随噪声变化进行自适应滤波,滤波器自动调整它们的系数。
二、数字滤波器的设计方法概述
数字滤波器有多种设计方法,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等,但是通常采用窗函数法设计。窗函数法设计FIR滤波器的基本思想是:根据给定的滤波器技术指标选择滤波器长度N和窗函数ω(n),使其具有最窄宽度的主瓣和最小的旁瓣,其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列h(n)。一般采用以下四种窗函数:
矩形窗 w(n)=RN(n);
Hanning窗
Hamming窗
Blackmen窗
在实际的FIR滤波器的设计中,一般采用计算机辅助设计。MATLAB是一套功能强大的适应于科学工程计算的可视化高性能语言,它提供了2种窗函数方法设计FIR滤波器:一种是标准通带滤波器的设计FIR1;一种是多带FIR滤波器的设计FIR2。函数FIR1只能设计标准的低通、高通、带通和带阻线性相位FIR滤波器。函数FIR2也设计加窗的FIR滤波器,但它针对任意形状的分段线性频率相应,这一点在FIR1中是受到限制的。
目前FIR滤波器的实现方法大致可分为三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要,使用以串行运算为主导的通用DSP芯实现要简单,是一种实时、快速、特别适合于实现各种数字信号处理运算的微处理器,借助于通用数字计算机按滤波器的设计算法编出程序进行数字滤波计算 。由于它由具有丰富的硬件资源、改进的哈佛结构、高速数据处理能力和强大的指令系统而在通信、航空、航天、雷达、工业控制、网络及家用电器等各个领域得到广泛应用。
三、DSP技术概述
利用DSP器件来实现,它的一个DSP系统的设计过程如下:
在设计DSP系统之前,首先必须根据应用系统的目标确定系统的性能指标、信号处理的要求,通常可用数据流程图、数学运算序列、正式的符号或自然语言来描述。第二步是根据系统的要求进行高级语言的模拟。一般来说,为了实现系统的最终目标,需要对输入的信号进行适当的处理,而处理方法的不同会导致不同的系统性能,要得到最佳的系统性能,就必须在这一步确定最佳的处理方法,即数字信号处理的算法(Algorithm),因此这一步也称算法模拟阶段。例如,语音压缩编码算法就是要在确定的压缩比条件下,获得最佳的合成语音。算法模拟所用的输入数据是实际信号经采集而获得的,通常以计算机文件的形式存储为数据文件。如语音压缩编码算法模拟时所用的语音信号就是实际采集而获得并存储为计算机文件形式的语音数据文件。有些算法模拟时所用的输入数据并不一定要是实际采集的信号数据,只要能够验证算法的可行性,输入假设的数据也是可以的。
在完成第二步之后,接下来就可以设计实时DSP系统,实时DSP系统的设计包括硬件设计和软件设计两个方面。硬件设计首先要根据系统运算量的大小、对运算精度的要求、系统成本限制以及体积、功耗等要求选择合适的DSP芯片。然后设计DSP芯片的外围电路及其他电路。软件设计和编程主要根据系统要求和所选的DSP芯片编写相应的DSP汇编程序,若系统运算量不大且有高级语言编译器支持,也可用高级语言(如C语言)编程。由于现有的高级语言编译器的效率还比不上手工编写汇编语言的效率,因此在实际应用系统中常常采用高级语言和汇编语言的混合编程方法,即在算法运算量大的地方,用手工编写的方法编写汇编语言,而运算量不大的地方则采用高级语言。采用这种方法,既可缩短软件开发的周期,提高程序的可读性和可移植性,又能满足系统实时运算的要求。
DSP硬件和软件设计完成后,就需要进行硬件和软件的调试。软件的调试一般借助于DSP开发工具,如软件模拟器、DSP开发系统或仿真器等。调试DSP算法时一般采用比较实时结果与模拟结果的方法,如果实时程序和模拟程序的输入相同,则两者的输出应该一致。应用系统的其他软件可以根据实际情况进行调试。硬件调试一般采用硬件仿真器进行调试,如果没有相应的硬件仿真器,且硬件系统不是十分复杂,也可以借助于一般的工具进行调试。
系统的软件和硬件分别调试完成后,就可以将软件脱离开发系统而直接在应用系统上运行。当然,DSP系统的开发,特别是软件开发是一个需要反复进行的过程,虽然通过算法模拟基本上可以知道实时系统的性能,但实际上模拟环境不可能做到与实时系统环境完全一致,而且将模拟算法移植到实时系统时必须考虑算法是否能够实时运行的问题。如果算法运算量太大不能在硬件上实时运行,则必须重新修改或简化算法。
在DSP系统设计中,开发工具是必不可少的。 TI公司的CCS IDE(Code Composer Studio Integrated Development Environment)可以提供环境配置、源程序编辑、编译连接、程序调试、跟踪分析等各个环节,以加速软件开发进程,提高工作效率。它把编译、汇编、链接等工具集成在一起,用一条命令即可完成全部的汇编工作。另外把软、硬件开发工具集成在其中,使程序的编写、汇编、程序的软/硬件仿真和调试等开发工作在统一的环境中进行,给开发工作带来极大的方便。
DSP分为定点和浮点两种,而TMS
四、FIR滤波器的DSP实现
DSP系统的开发是一个复杂的过程,在系统的设计和调试中不但需要数字信号处理方面的理论知识,而且还有需要对各种DSP芯片、外围硬件电路以及DSP开发工具等都有丰富的实际开发经验。
一个典型的DSP系统构成如图1所示。
图1 典型的DSP系统构成
DSP系统的输入信号多种多样,但一般都要转换为模拟信号,经过抗混叠滤波后由模数转换芯片将模拟信号变换为数字信号。然后,DSP根据实际需要对其进行相应的处理,如FFT、卷积等;处理后的数字信号再由数模转换芯片将其转换为模拟值,在对其进行平滑滤波后最终输出模拟信号。需要说明的是,对输入模拟信号的采样频率要大于其本身频率的两倍,因为根据奈奎斯特采样定律,只有采样频率至少为输入信号频率的两倍时输入信号的信息才保证不会丢失。
五.DSP系统的特点
DSP系统是以数字信号处理为基础的,因此不但具有数字处理的全部优点而且还具有以下特点:
(1) 接口方便:DSP应用系统与其他以现代数字技术为基础的系统或设备都是相互兼容的,它与这样的系统接口以实现某种功能要比模拟系统与这些系统接口要容易得多;
(2) 编程方便:DSP应用系统中的可编程DSP芯片可使设计人员在开发过程中能灵活方便地对软件进行修改和升级;
(3) 稳定性好:DSP应用系统以数字处理为基础,受环境温度及噪声的影响较小、可靠性高;
(4) 精度高:16位数字系统可以达到10-5级的精度;
(5) 可重复性好:模拟系统的性能受元器件参数性能变化的影响比较大,而数字系统基本不受影响,因此数字系统便于测试、调试和大规模生产;
(6) 集成方便:DSP应用系统中的数字部件有高度的规范性,便于大规模集成。当然,数字信号处理也存在一些缺点。例如,对于简单信号处理任务,若采用DSP则使成本增加。DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。此外,DSP技术更新速度快,对于数学知识要求高,开发和测试工具还有待进一步完善。
六、数字滤波器的应用
数字滤波是现代数字信号处理的重要研究内容,在信号分析、图像处理、模式识别、自动控制等领域得到了广泛应用。目前Wiener滤波、Kalman滤波和自适应滤波等一些线性滤波方法已经得到了很快的发展,其中自适应滤波器是目前数字滤波器领域中最为活跃的分支。随着科学技术的发展,电话,光缆,微波等通信方式已发展得日益完善,语音质量空前提高.但在某些领域,周围噪声比较大,所需的语音信号很容易被周围噪声所污染,基于DSP实现并进行了去噪处理,速度快且性能稳定,也就是利用LMS算法实现自适应滤波器来消除噪声。而随着现代数字信号处理技术的发展,非线性数字信号处理方法在信号处理领域中的地位和作用显得越来越重要,因为从自然现象和社会现象中涌现出来的大量信号处理问题是非线性的。线性数字信号处理方法虽然在理论上比较成熟,且实现相对简单,但它对非线性问题的处理结果在大多数情况下是不十分理想的。近二十年来,非线性数字信号处理技术已取得了长足进展,其中包括对非线性数字滤波器的研究。受到人们日益重视的一些非线性滤波方法包括小波滤波、同态滤波、中值滤波、形态滤波等,它们都是现代数字信号处理领域的前沿研究课题,不但有重要的理论意义,而且有广阔的应用前景。
参考文献
[1](日)谷秋隆嗣著. 数字滤波器与信号处理. 科学出版社.2003.
[2] 赵刚,黄建明,隋燕. 基于数字滤波器设计的讨论[ J ]. 南开大学学报(自然科学版),2003.26(3):15218.
[3] 潘松,黄继业,王国栋. 现代DSP技术. 西安电子科技大学出版社. 2003
[4] 陈金鹰.DSP技术及应用. 机械工业出版社.2004.6
[5] 孙宗瀛. DSP原理设计与应用[M]. 北京:清华大学出版社,2002.
[6] TMS
Instruments Incorporated. 2001
[7] 汪安民. TMS
[8] TMS
[9] 薛年喜.Matlab在数字信号处理中的应用[M].北京:清华大学出版社,2003.
[10]楼顺天,李博菡. 基于MATLAB的系统分析与设计- 信号处理[M ]. 西安:西安电子科技大学出版社.2001.
[11]王立宁. Matlab与通信仿真[M ]. 北京: 人民邮电出版社, 2000. 276—281.
[12]余成波,杨菁,杨如民编著. 数字信号处理及MATLAB实现. 清华大学出版社.2005.
[13]程佩青.数字滤波与快速傅里叶变换.北京:清华大学出版社,1988
[14]胡广书. 数字信号处理理论、算法与实现. 清华大学出版社. 1997
[15]彭启.DSP与实时数字信号处理.成都:电子科技大学出版社,1995
[16]付丽琴,桂志国,王黎明. 数字信号处理原理及实现. 国防工业出版社. 2004
[17]张雄伟,陈亮,徐光辉.DSP集成开发与应用实例[M]. 北京:电子工业出版社.2002.
[18]张雄伟 曹铁勇. DSP芯片的原理与开发应用. 电子工业出版社. 2000
[19]周霖. DSP算法设计与系统方案. 国防工业出版社,2004.7.