绘芯电池测试 - 专业的电池测试平台!

电池测试在线  - 电池测试仪|超级电容测试仪|电池测试系统|超级电容

当前位置: 电池测试 > 知识库 >

自适应滤波器

时间:2016-08-09 15:03来源:未知 作者:admin 点击:
运用MATLAB对采用了LMS自适应算法的自适应噪声抵消系统进行了仿真,通过分析仿真结果,验证了系统设计和自适应算法的可行性。在理论和仿真研究的基础上,结合先进的数字信号处理技术完成了自适应滤波器的实现方案的设计:基于DSP芯片实现LMS算法的噪声抵消器。

   

任何系统都不可避免地受到噪声的影响,如何有效地消除和抑制噪声是多年来的热门研究课题之一。噪声抑制方法可以分为两大类:被动噪声抑制和主动噪声抑制。随着控制系统理论和数字信号处理技术的发展,主动噪声抑制技术开始以自适应为主要研究方向。自适应噪声滤波是指从信号被噪声干扰所淹没的环境中检测和提取有用信号,而自适应抵消的以噪声干扰为处理对象,将它们抵制或进行非常大的衰减,以提高信号传递和接收的信噪比质量。自适应噪声抵消器是基于自适应滤波器原理的一种扩展。本文阐述了自适应噪声抵消(ANC)技术的基本原理,基于自适应滤波器的原理,设计了自适应噪声抵消器;在对自适应滤波器相关理论研究的基础上,研究了自适应噪声抵消器的核心——LMS自适应滤波算法。运用MATLAB对采用了LMS自适应算法的自适应噪声抵消系统进行了仿真,通过分析仿真结果,验证了系统设计和自适应算法的可行性。在理论和仿真研究的基础上,结合先进的数字信号处理技术完成了自适应滤波器的实现方案的设计:基于DSP芯片实现LMS算法的噪声抵消器。

 

关键词:噪声抵消;自适应算法;MATLABDSP  

基于自适应噪声抵消技术(Adaptive Noise CancellationANC),作为在强噪声背景下通信的一种主要语音增强方法,把信号中的噪声和语音信号进行有效的分离,降低或抑制环境噪声的影响,有效提高了语音的清晰度。Widrow等于1967年提出自适应滤波概念以来,因其计算量小、易于实现等优点,发展极为迅速。自适应噪声抵消技术有着重要的应用。目前广泛应用于通信、语音信号处理、图像处理、模式识别、系统辨识及自动控制等领域,是目前最活跃的研究领域之一。

 

  


1绪论

1.1噪声抵消技术的研究背景

在日常生活中,人们经常受到各种噪声的干扰。例如,在有线电话、无线通信中回波是不可避免的。回波的存在严重影响了通信的质量。各种封闭空间的噪声如厂房、汽车内的噪声等对人体也会产生不利的影响。在工程实际中,经常会遇到强噪声背景中的微弱信号检测问题。例如腹部胎儿心电信号埋藏在母亲心电等强背景噪声中以及强噪声背景下的语音识别等。在信号的传播路径中以及在信号处理过程中,都会引入噪声。噪声的引入影响了对真实信号的处理。基于自适应噪声抵消技术能有效的解决这些问题。例如,在长途电话通话中,由于接收端有反射,会把话音反向传输过来,使说话者听到自己的话音,造成讨厌的回音干扰,需要等回音过去才能再讲话,拉长了通信时间,很不经济。解决这个问题的方法就是用回波干扰抵消装置来消除这种回音干扰。因此在如今这个人们不断追求工作效率、生活质量的年代里,如何有效地消除和抑制噪声已成为人们研究的一个热门课题。

1.2噪声抵消技术国内外现状

噪声抵消技术起源于上世纪30年代,它由德国物理学家Paul Leug提出,并于1936年在美国获得了专利,明确阐述了利用声波的相消干涉来消除噪声的原理。噪声主动控制的思想为噪声控制开辟了新途径。近十几年来,国内外都为推动ANC系统的实际应用进行了不懈的努力,典型的有如有源抗噪声耳罩,空调和风机等的管道有源消声系统,螺旋浆飞机座舱的有源噪声控制、汽车发动机启动噪声的有源控制等等。由于实际噪声系统的复杂性,大多数都还仅仅处于实验研究阶段,距离成为真正成熟实用的系统并投入商业应用还有很长的路要走。目前国内一些著名大学如清华大学等在自适应有源消声控制器及算法方面都取得很重要的研究成果。

 

 

2自适应滤波器原理

自适应滤波技术是在20世纪五六十年代发展起来的一门学科,如今,自适应滤波技术已广泛的应用于通信系统的自适应均衡、自适应噪声对消、语音编码、雷达声纳系统的阵列处理、图像自适应压缩编码等众多领域。自适应滤波理论和技术是统计信号处理和非平稳随机信号处理的主要内容,它可以在未知环境无需先验知识的条件下有效工作,并能够跟踪输入信号的时变特征。它能够有效的过滤或抑制输入信号中的干扰信号,提取有用信号。自适应滤波器实际上是一种能够自动调本身参数的特殊维纳滤波器,自适应滤波器由滤波器结构和自适应算法两部分组,滤波器从滤波结构上分有自适应FIR滤波器与自适应IIR滤波器两种,它们在通信、声纳、雷达、电子测量仪器,以及生物医学工程等领域有着广泛的极其重要的应用主要用来抵制噪声干扰,提高信噪比。

2.1自适应滤波器原理

自适应滤波原理是利用前一刻以获得的滤波器参数的结果,以输入和输出信号的统计特性的估计为依据,采取特定算法自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,使其达到最佳滤波特性。自适应滤波器一般是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。图2.1是自适应滤波器的一般结构,图中x(n)是输入信号,输入信号x(n)通过滤波器结构后产生输出信号y(n),将其与期望响应d(n)进行比较,形成误差信号e(n)。自适应滤波器的滤波器系数受误差信号e (n)控制,根据e (n)的值和自适应算法自动调整。

2.1自适应滤波器的一般格式

滤波器从滤波结构上分有自适应FIR滤波器与自适应IIR滤波器两种,从自适应算法的不同可分为LMSRLS等类型。由于自适应滤波器在未知或时变系统中的明显优势,它在众多领域得到广泛应用。

2.2自适应滤波器的应用

  自适应滤波处理技术可以用来检测平稳的和非平稳的随机信号,自适应数字系统具有很强的自学习、自跟踪能力和算法的简易实现性,因而在通信、雷达、声纳、电子测量仪器、实时控制以及图像处理等领域都有成功的应用。自适应滤波器的形式是多样的,决定它是系统的输入输出结构。

2.2.1自适应预测器

2.2给出了自适应预测器的系统结构。x (n)是原始信号d (n)的延时信号,并输入自适应滤波器中产生y (n)为信号输出,e (n)为误差信号。

2.2自适应预测器框图

自适应预测器的经常应用于话音信号的波形编码。通过压缩编码技术提高信道容量。

2.2.2自适应均衡器

   2.3给出了自适应均衡器的框图。图中,x (n)为接收信号和信道噪声混合,它是所接收信号通过信道滤波后的结果。d (n)是检测码或伪随机码。y (n)是均衡输出码,e (n)码间串扰剩余再加上噪声。

2.3自适应均衡器方框图

    由于信道的非理想特性是产生码间干扰的主要因素所以自适应均衡器在在电讯中有着很重要的应用,自适应滤波器用来分离各个数码,减少码间串扰,减小信道的影响。

2.2.3自适应回波消除器

   在长途电话线路中,由于终端混合装置的性能不理想会产生回波,即讲话者在讲话后一段时间又听到自己讲话的回波声音,造成干扰,这大大影响了电话通信质量。尤其是在通信这样的大型线路中,回波返回的延迟时间长达几百毫秒,对话音信号的损害就非常严重。为此,可在网络的两端安装自适应回波消除器,如图2.4所示。其中,x (n)为远端信号,y (n)为远端回波信号的估计,d (n)为远端信号经边回波路径产生的回波信号加上近端信号, e (n)为近端信号和回波估计剩余。

2.4自适应回波消除器框图

    自适应回波消除器在长途电话线路通讯中、卫星通讯系统中以及高性能电话会议中已经成了不可缺少的一部分,并在各个方面不断有着新的应用出现。

2.2.4自适应噪声消除器

自适应滤波器还可以用来构成自适应的噪声消除器,其结构如图2.5所示。d (n)是原始信号和噪声合成信号,这里的噪声包含有意无意的干扰,x (n)为参考噪声输入。通过这种自适应滤波器,完成d (n)中的噪声估计,并把估计值y(n)与原始值信道信号相减以达到噪声消除的结果。

2.5噪声消除器一般形式

自适应噪声抵消系统问世40多年来,受到人们的普遍关注并得到十分广泛的应用。它广泛应用于通信,声纳、雷达、生物工程等领域。

2.3自适应滤波器的体系结构

自适应滤波器从滤波结构上分有自适应FIR滤波器与自适应IIR滤波器两种。在实际应用中,一般都采用FIR滤波器,其主要原因是,FIR结构的自适应技术实现容易,其权系数的修正就调节了滤波器的性能,同时还可以保证其稳定性。一个自适应的FIR滤波器的结构,可以是横向结构,对称结构以及格形结构。下面分别分析其特点。

2.3.1横向型结构

   横向型结构是大多数应用情况下所采用的最主要的自适应滤波器结构,如图2.6所示。

其中滤波器的输出y(n)表示为:    (2.1)

其中,为输入矢量,是权系数矢量,T表示转置符,n表示时间序列,N是滤波器阶数。y (n)是两矢量的内积——即把X(n)W(n)相卷积的结果。

2.6横向型滤波器结构

2.3.2对称横向型结构

   如果NFIR滤波器的单位脉冲响应h(n)为实数,且满足对称性的条件,即 

                      2.3

则自适应滤波器采用具有线性相位FIR滤波器结构的滤波器。如图2.7所示,就可称为对称横向型结构。这种关于中心点对称的FIR滤波器的输出y(n)可由下面的表达式表示:

       2.4

    其中N为阶位数,它一定是偶数,对于定点处理器,上式的相加运算则有可能产生溢出。因此有时需要对归一化的输入数据再右移一位。

2.7对称横向结构(偶对称)

2.3.3格形结构的自适应滤波器

数字格型滤波器有FIRIIR两种类型的结构,本文讨论FIR滤波器结构型格形结构,图2.8为格式结构框图。

2.8格式结构框图

它是基于一系列预测误差滤波器的去相关传输结构。格形结构的误差预测器的递推公式表示如下:

其中,前向预测误差为,后向预测误差是,反射系数为m是阶数序列值。格式结构的优点是按阶递归,因此增加或者减少级数不会影响存在的阶数设计。

2.3.4三种结构特性的比较

三种FIR的实现结构各自有它的优点和缺点,在不同场合有不同广度的应用,表2.1是对三种结构的对比。

2.1三种FIR实现结构的对比

结构类型

应用条件

优点

缺点

横向型

所有FIR滤波器

形式简单,易于实现;可以用流水线提高性能。

——

对称横向型

符合对称性条件的FIR滤波器

权系数少,大大减小了计算量;可以用流水线提高性能。

对称性条件约束

格型结构

所有FIR滤波器,符合最优权系数条件

收敛速度快,稳定性好,对系数量化精度要求不高。

计算量大,不容易

实时实现;只能部

分实现流水线。

 

3 自适应滤波器算法研究

根据自适应滤波算法优化准则的不同,自适应滤波算法可以分为两类最基本的算法:最小均方误差(LMS)算法和递推最小二乘(RLS)算法。基于最小均方误差准则,LMS算法使滤波器的输出信号与期望输出信号之间的均方误差最小。基于最小二乘准则,RLS算法决定自适应滤波器的权系数向量使估计误差的加权平均和最小。

 

3.1适应最小均方(LMS)算法

LMS算法是一种线性自适应滤波算法,是一种梯度最速下降方法。其显著的特点和优点是它的简单性,这种算法不需要计算相应的相关矩阵和矩阵运算,也不需要计算相应的相关函数。一般来说,LMS算法包括两个最基本过程:一个是滤波过程,一个是自适应过程。在滤波过程中,自适应滤波器计算其对输入的响应,并且通过与期望响应比较,得到估计的误差信号。在自适应过程中,系统估计误差自动调整滤波器自身的参数。这两个过程共同组成一个反馈环。

    对于横向型自适应滤波器,其误差为:

                                      3.1

    均方误差ε表示为:

                          3.2

    代入的表达式(2.1),有

          3.3

知道了输入信号的自相关矩阵 和期望响应与输入信号的互相关矢量 ,在均方误差ε达到最小时,得到最佳权系数 ,它满足以下方程:

                                  3.4

                                        3.5

这是一个线性方程组,如果矩阵R是满秩的,存在,得到最佳权系数的值满足                                     3.6

用完整的矩阵方式可表示为

3.7

    显然, x(n)的自相关值, x(n)d(n)的互相关值。在一些应用当中,把输入信号的采样值分成几个相同的段,然后求出RP的估计值,得到每帧的最佳权系数。在RP的计算中,要求出期望值E[],在实际运算中不太容易实现。因此,可通过下列式子进行估计:

      3.8

        3.9

    用上述的方法获得最佳的运算量非常大,在实际的应用中这种方法是难以实现的。一方面,我们通常很难得到有关信号和噪声的统计先验知识;另一方面,当R的阶数较高是,直接计算R和逆矩阵有一定的困难。因此,最佳权矢量的实现一般都采用迭代方法,迭代算法可以避免复杂的P的运算,又能实时求得式(3.6)的近似解。

LMS算法是一种梯度最速下降算法,即W (n+1)矢量是W (n)矢量按均方误差性能平面的负斜率大小调节相应一个增量

         3.10

这个u是由系统稳定性和迭代运算收敛速度来决定的自适应步长。n次迭代的梯度。对于LMS算法,是式(3.2)中的斜率,

 3.11

由式(3.10)产生了求解最佳权系数的两种方法,一种是最陡梯度法。其思路为,设初始权系数W(0),用式(3.10)迭代公式计算,直到W (n+1)W (n)误差小于规定范围。其中E[]计算,可用估计值表达式

 3.12

式中K的取值应该足够大。如果用瞬时-2e(n)x(n)来代替上式对-2E{e(n)x(n)}的估计运算,就产生了另一种算法——随机梯度法,即Widrow HoffLMS算法。此时迭代公式为

    3.13

式中μ是自适应滤波器的步长因子。式(3.13)即为著名LMS算法的滤波器权矢量迭代公式。为了分析方便,对式(3.13)进行如下变换。将式(3.1)代入(3.13)可得

3.14

假定滤波器为横向型结构滤波器。对于对称的横向型结构滤波器,也可推出类似的迭代公式

3.15

其中,x(n) ,x(n-N+1)

由式(2.2),式(3.1)和式(3.13)便构成了LMS的实现算法。LMS算法的两个优点是:实现起来简单;不依赖模型(model-independent),因此具有稳健的性能。

3.2自适应递推最小二乘(RLS)算法

RLS算法是“递推最小二乘法”。它的主要优点是收敛速度快,因此首先在快速信道均衡、实时系统辨识和实际序列分析中得到广泛的应用。其主要缺点时每次迭代计算量大[10]RLS算法推导见文献[26]RLS算法的递推公式为

        3.16

上式表明n时刻的最佳值w(n)可由n-1时刻的最佳值w(n-1)加一修正量得到。修正量等于。其中为根据n-1时刻的最佳加权和n时刻数据对d (n)之预测值。因而为预测误差,g (n)确定了根据预测误差进行修正时的比例系数,因而称为增益系数。

比较上式和实信号LMS算法的递推公式

3.17

可以看出两者的主要差别在于增益系数,LMS算法简单的利用输入矢量乘上常数作为增益系数,而RLS算法则用较复杂的的增益系数g(n)g(n)中指数加权因子λ为遗忘因子,它是小于1的正数。遗忘因子λ的数值对算法影响很大。算法的有效记忆长度用t0来度量,t0定义为

              3.18

λ越小,对应的t0越小,稳态误差越大,意味着对信号的非平稳性的跟踪性能越好。但如果λ太小,t0会小于信号每个平稳段的有效时间,这时就不能充分利用所有能够获取的取样数据(这些数据本来覆盖着整个平稳段),结果所算出的权矢量w(n)将会受到噪声的严重影响,对于平稳信号λ的最佳值为1

    RLS算法的收敛速度比LMS算法快一个数量级,滤波性能也要优于最小均方算法,但是它的运算量比LMSNLMS大很多,对于硬件实现来说相对困难。

 

4 自适应噪声消除原理及模拟与仿真

       这里主要讨论采用LMS算法的噪声对消器。原始输入为,其中s为沿信道传递到传感器的信号,为一与信号s不相关的噪声,抵消器的参考输入为噪声与信号s不相关,却以某种未知的方式与噪声相关,由图可看出噪声经自适应滤波器输出y,再从原始输入中减去该输出,产生了系统的输出:

                               (4.1)

均方误差输出的均方值为:

                                                  (4.2)

因为s互不相关,所以sy也互不相关,设均值为0则有:

                                 (4.3)

所以,式   就成为:

     (4.4)

自适应滤波器要调整其加权矢量,使最小。因s不在自适应通道内,所以这种最小化可以表示为

(4.5)

    从而自适应滤波器调整的结果,将使y在均方误差最小的意义下,最接近主通道噪声分量,可使系统输出中的噪声大大降低。再由式4.1

                                     (4.6)

所以

                  (4.7)

上式说明,在最小均方误差意义下,y接近等于e(系统输出)接近s。所以在噪声对消器的输出端大大提高了信噪比。当参考输入噪声与原始输入通道噪声完全无关时,滤波器输出y也将与原始输入通道噪声完全无关。在此种情况下,输出均方值

(4.8)

显然,要使上式中的输出功率最小化只能要求最小化,即要滤波器所有的系数为零,使=0,也即自适应抵消器没有起抑制噪声的作用。这可以扩展到是随机的或确定的互不相关情况,因此,自适应噪声抵消器要求参考输入噪声必须与原始输入信号中噪声存在相关性,才能获得有效的噪声抵消。若中只包含信号源信号而未包含噪声分量,则原始输入端的信号会完全被消除。所以在噪声消除系统中主通道和参考通道要最好隔离,以保证最佳性能。

 

4.1 MATLAB简介

MATLAB是由美国MathWorks公司推出的用于数值计算和图形处理的科学计算系统环境。它集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。

MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。另外,MATLAB还具有很强的功能扩展能力,可以配备各种各样的工具箱,以完成一些特定的任务,同时,用户还可以根据自己的工作任务,开发自己的工具箱。

4.2自适应噪声抵消器的.m文件的仿真

自适应噪声干扰抵消器是一种在通信系统、图像处理中应用广泛的自适应数字滤波器,能从被噪声干扰的环境中检测和提取有用信号。它以噪声干扰为处理对象,将它们抑制掉或进行非常大的衰减,以提高信号传递和接收的信噪比质量。自适应噪声干扰抵消器是基于自适应滤波原理的一种扩展,把自适应滤波器的期望信号改为信号加噪声干扰的原始输入端,而它的输入端改为噪声干扰端,由横向滤波器的参数调节输出,以将原始输出中的噪声干扰抵消掉,这时误差输出就是有用信号。

建立如图2.5所示的自适应噪声抵消系统,原始输入d(n),其中s为沿信道传递到传感器的信号,为一与信号s不相关的噪声,抵消器的参考输入为噪声与信号s不相关,却以某种未知的方式与噪声相关,当s不相关时,自适应滤波器将调整自己的参数,以尽量使y成为的最佳估计。这样,e(n)将逼近信号s(n),且均方值为最小。这样噪声就得到了一定程度的抵消。在这里我们假设其中的噪声干扰信号为正弦干扰sin2x,所期望的输出信号s为正弦信号sinx。根据LMS算法程序,程序清单附录,仿真效果如下面各图所示:

4.1为信号源s和加入噪声的信号d(n),图4.2d(n)s的比较,其中:

,

图中绿线代表s(n),红线代表d(n)

4.1原始输入的d(n)

4.2 d(n)s(n)比较

4.3为自适应滤波器的输出波形y(n),图4.4y(n)和噪声的比较图,其中绿线代表噪声,红线代表y(n),由图可以看出输出波形y(n)的值逐渐减小,直到与相关噪声0.4*noise(n)基本适应,如图所示

4.3 y(n)的输出波形

4.4 y(n)的比较图

4.5为自适应噪声抵消系统的输出波形e(n)=d(n)-y(n);图4.6s(n)e(n)的比较图形,其中绿线代表e(n),红线代表s(n),可以看到e(n)经过一段时间的振荡,噪声被逐渐抵消,波形向期望波形靠近。

4.5噪声抵消系统输出波形e(n)

4.6 s(n)e(n)的比较

结合上述所有结果:采用LMS算法,仿真效果如图所示:

 

 

从仿真图我们得到为信号源s(n)和加入噪声的信号d(n),其中s(n)=sin(0.01*n),d(n)=sin(0.01*n)+0.4*noise(n),并可以看到e(n)经过一段时间的震荡,噪声被逐渐抵消,波形向期望波形靠近。y(n)的值逐渐减小,直到与相关噪声0.4*noise(n)基本适应。

通过前面对自适应滤波器和自适应噪声抵消系统原理的研究,结合对含有干扰的信号的噪声抵消分析,并运用MATLAB进行了仿真试验。通过分析仿真结果验证了算法了可行性并且表明自适应噪声抵消技术可以有效的抵消正弦干扰信号,为我们以后的研究工作奠定了理论基础。

4.6 :输入为f=1000Hz正弦信号时的LMS回波抵消性能

 

4.7 信噪比波形图

 

 

5 基于DSP的自适应噪声抵消器设计

由于自适应滤波器要求的实时性强,在采集数据的同时还要对数据依据算法进行处理,运算器件要完成这样的任务需要很高的速度。数字信号处理器简称DSP是集成了高速乘法器,具有多组内部总线,能够进行快速乘法和加法运算,适用于高速数字信号处理的高速、高位单片计算机,它具有体积小、功耗小、使用方便、实时处理迅速、处理数据量大、处理精度高、性能好等特点。本设计选用DSP芯片TMS320C5402为主控芯片,以实现对数字信号的实时处理。

5.1数字信号处理的实现方法

数字信号处理算法的实现方案有多种,对于不同的应用领域、使用范围和指标要求,可以选用不同的解决方案和DSP系统的实现器件。数字信号处理的实现方法一般有以下几种:

1、在通用微计算机上用软件实现。其表现形式为软件包。这种方法只能实现Off-Line形式的数据处理。如果用于实际中,数据处理的速度较慢。通常该方法用于教学与科研中。

2、用单片机实现。高性能的单片机的出现和广泛应用,为自适应算法的实现提供了一种方式。但这种自适应算法的实现方法,处理速度较慢,难以达到复杂算法的实时处理。

3、使用专用的DSP芯片来实现。DSP专用芯片比单片机有更突出的优点,如内部带高速乘法器、累加器等,同时DSP专用芯片采用流水线工作方式,设计结构为并行运算和多总线的结构,另外配有适于信号处理的各种指令等,这些为数字信号处理算法提供了高速的实现条件。DSP专用芯片的发展和应用,为DSP技术应用于工程实际提供了可能。目前DSP专用芯片以美国德州仪器公司(T1)的TMS320系列为主。

4、利用专门设计的DSP处理芯片来实现。实现的方法可以是ASICFPGA等。这种专用的芯片中的设计软件算法已经在芯片内部用硬件电路实现。

在上述几种方法中,方法一便于算法的实现,它的缺点是处理速度慢,所以一般用于算法的模拟仿真中;方法二只适用于一些简单的DSP算法的实现;方法三则为DSP的应用打开了新局面。方法四采用专用芯片,其处理速度快,但是它的专用性强,一般用于一些特殊用途中,因而其使用受到很大限制。

5.2 DSP系统

典型的DSP系统主要有输入滤波器、A/D转换器、数字信号处理芯片、D/A转换器和输出滤波器等几部分组成如图5.1。输入信号首先进行抗混叠滤波,然后进行A/D(Analog to Digital)变换将模拟信号变换成数字信号。根据奈奎斯特抽样定理,为保证有用信息不丢失,抽样频率至少是输入带限信号最高频率的二倍。

5.1典型的数字信号处理系统

DSP芯片的输入是A/D变换后得到的以抽样形式表示的数字信号,DSP芯片

对输入的数字信号进行某种形式的处理。最后,经过处理后的数字样值再经过D/A变换为模拟值,之后进行内插和平滑滤波就可得到连续的模拟波形。DSP处理器是基于CPU架构的器件,通过软件指令的方式完成DSP算法。它从硬件结构上作了很大的改进,工作性能上也有了很大的改进。例如:早期的DSP处理器只有一个硬件乘法器,而现在的处理器(C6000系列)中,有的己经达到了八个。然而,DSP处理器在硬件结构的改变,并没有摆脱传统CPU的工作模式。

DSP开发者通常都选用DSP处理器来构成DSP应用系统。DSP处理器的优点主要有:

1、接口方便。DSP系统与其它以现代数字技术为基础的系统或设备都是互相兼容的,与这样的系统接口来实现某种功能要比模拟系统与这些系统接口容易得多。

2、编程方便。DSP系统中的可编程DSP芯片可使设计人员在开发过程中灵活方便的对软件进行修改和升级。

3、稳定性好。DSP系统以数字处理为基础,受环境温度以及噪声的影响比较小,可靠性高。

4、可重复性好。模拟系统的性能受元器件参数性能变化比较大,而数字系统基本不受影响,所以数字系统便于测试、调试和大规模生产。

5、集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。

可见DSP系统具有很好的通用性和灵活性,适用于各种DSP算法实现。只要将调试好的机器码放在程序ROM中,系统就能完成相应的功能。因此,从理论上说,只要能用对应指令表达出DSP算法,其硬件结构都能接受并执行。

5.3基于TMS320C54X的噪声抵消系统设计

5.3.1 DSP芯片介绍

TMS320C54x芯片是TI公司推出的高性能16bit定点DSP,其高性能和低功耗使其成为各种无线和有线通信系统的理想器件。TMS320C54x采用改进哈佛结构,具有一组程序总线和三组数据总线,17X17-bit乘法器,一个供非流水的MAC(乘法\累加)使用的加法器,一个比较,选择,存储单元(Virerbi加法器)。TMS320C54x配备了双操作码指令集,这是该系列芯片操作灵活和高速度的基础。该芯片系列的单周期执行时间为25/20/15/12.5/10ns,其运算的性能分别为40/50/66/80MIPS的定点运算速度。

作为DSP家族高性价比代表的16位定点DSP芯片,TMS320C5402适用于通信等实时嵌入应用场合。与其它C54X芯片一样,TMS320C5402具有高度灵活的可操作性和高速的处理能力。其性能特点如下:操作速率可达100MIPS;具有先进的多总线结构,三条16位数据存储器总线和一条程序存储器总线;40位算术逻辑单元(ALU),包括一个40位桶形移位器和两个40位累加器;一个17×17乘法器和一个40位专用加法器,允许16位带/不带符号的乘法;整合维特比加速器,用于提高维特比编译码的速度;单周期正规化及指数译码;8个辅助寄存器及一个软件栈,允许使用业界最先进的定点DSP C语言编译器;数据/程序寻址空间为1M×16bit,内置4K×16bit ROM16K×16bit RAM;内置可编程等待状态发生器、锁相环(PLL)时钟产生器、两个多通道缓冲串VI、一个与外部处理器通信的8位并行HPI口、两个16位定时器以及6通道DMA控制器且低功耗。与C54X系列的其它芯片相比, C5402具有高性能、低功耗和低价格等特点。它采用6级流水线,且当RPT(重复指令)时,一些多周期的指令就变成了单周期的指令;芯片内部RAMROM可根据PMST寄存器中的OVLYDROM位灵活设置。这些都有利于算法的优化。

5.3.2自适应噪声抵消器的整体设计

自适应噪声抵消系统的硬件装置组成的设计如图5.2所示。滤波器分为三个部分,信号输入部分,算法实现部分和信号输出部分。

    其中抵消器信号输入部分主要由两个部分组成:

    1.参考通道。

    麦克风收到的环境噪声信号输入到抗混叠滤波器,由模/数转换器将模拟信号转换为数字信号后送入高速信号处理器进行处理。

    2.主通道。

    语音信号与环境噪声的混合信号经麦克风输入到抗混叠滤波器,由模/数转换器将模拟信号转换为数字信号后,与参考通道的信号同时送入高速信号处理器进行处理。

    噪声抵消器的核心部分是算法实现部分,自适应滤波算法的计算是由TMS320C5402高速信号处理芯片完成。高速信号处理器的输入信号是由由模/数转换器转换后得到的数字信号;DSP芯片按照自适应滤波算法对信号进行滤波后将信号送到系统的输出部分。

    滤波器的输出部分由数/模转换器组成。高速信号处理器的输出信号,由数/模转换器将数字信号转换为模拟信号后经重构滤波,送入电话通信系统,从而实现电话降噪的目的。

硬件装置图中,抗混叠滤波器的截止频率为3. 4kHz, A/DD/A12位转换器,转换频率为8kHz

5.2语音噪声消除实例框图

噪声抵消器的核心部分是算法实现部分,自适应滤波算法的计算是由TMS320C5402高速信号处理芯片完成。高速信号处理器的输入信号是由模/数转换器转换后得到的数字信号;DSP芯片按照自适应滤波算法对信号进行滤波后将信号送到系统的输出部分。滤波器的输出部分由数/模转换器组成。高速信号处理器的输出信号,由数/模转换器将数字信号转换为模拟信号后经重构滤波,从而实现语音信号降噪的目的。

5.3.3系统的硬件设计

自适应噪声抵消器的A/DD/A转换

    自适应噪声抵消器的输入数据采集和输出数据处理是通过A/DD/A转换器实现的。本文采用高速数字信号采样板对输入和输出数据进行A/DD/A转换。高速信号采样板为ADG105多通道采样板,其结构框图如图5.3所示,ADG105是一块既可与SEED-C30PS  DSP处理板配合使用,也可由PC机直接控制的通用模拟输入/输出板。其上装有16通道A/D转换器和2通道D/A转换器,A/DD/A16位转换器,12位分辨率,单通道最高采样频率为1000KSPS

    模拟输入:采样通道数可根据实际采集的需要可编程设定为N(N=1, 2,…,16),最多单端为16通道,且只需由软件设定采样通道数,采样通道则由硬件自动切换,无需CPU干预。本文的自适应降噪系统的输入由2通道组成,故模拟输入通道数设定为2o ADG105高速信号采集板具有较完备的触发方式,它包括内触发方式(由程序给出A/D转换启动信号)、外触发方式(由外部输入信号EXT给出A/D转换启动信号)、定时触发方式(ADG105板上定时/计数器82C54定时给出A/D转换启动信号)。在定时触发方式下,还可设定定时触发脉冲起始时刻是由程序给出(内同步),还是由外部输入信号EXT给出外同步)A/D转换器输出数据由硬件控制直接写入FIFO数据缓冲器,并由硬件提供多种数据准备好方式:A/D完成一次转换; A/D完成设定通道数转换; FIFO缓冲器半满;FIFO缓冲器全满。不仅如此采集板的数据传输可以有多种方式:①查询方式;②中断方式: DMA方式。在DMA传输方式下,还可用DMA传输完成信号TCPC机申请中断。另外,硬件还可产生多路同时采样信号,在外扩多路采样/保持器时,可实现多路同时采样。

    模拟输出:2通道、12位电压型D/A转换器组成,电压建立时间为10

D/A采用双缓冲结构,实现2通道同时输出。

    定时逻辑: ADG105板上装有一片82C54通用可编程定时一计数器,提供3通道定时计数能力。通道0已被用作模拟输入定时触发信号,通道1和通道2用作外部定时/计数,通道1和通道2的时钟输入可用跳针设置为内部5MHz时钟或外部时钟输入;通道1和通道2的门控也可用跳钟设置为内部控制和外部控制;

通道1和通道2的输出可作为外部输出。

    ADG105可由TMS320C5402控制,从而实现数据的高速采集与处理,因此

这种板非常适合于降噪系统的应用与研究。

4.3自适应噪声抵消器的算法实现系统

    高速数字信号处理器TMS320C5402是整个电话通信降噪系统的核心,自适

应滤波算法的所有运算变换以及滤波器权值更新都由它完成。由于TMS320C5402相应的仿真板比较昂贵。所以在没有仿真板的情况下,如何完成对DSP系统的调试是在硬件设计中必须考虑的问题。本设计中,采用通过单片机对DSP系统进行在线调试的方法,通过单片机AT89S51将源程序写入TMS320C5402中来达到调试DSP系统的目的。

    设计思想如下:通常情况下,进行DSP系统进行开发调试时,都要配备一片SRAM芯片作为片外程序RAM。调试时,使用相应的仿真板将程序下载到SRAM中,这样DSP系统通过运行SRAM中的程序代码来实现相应的操作。可以看到DSP系统调试时关键是要将程序下载到SRAM中,因此如果我们能将程序代码通过单片机写入SRAM中则同样可以完成对DSP系统的调试。

    完成DSP系统的调试首先要将程序的源代码写入片外的SRAM中。此时,单片机与SRAM组成一系统,单片机将分离出来的DSP程序代码写入SRAM中。完成这一操作后,切断单片机与SRAM的联系,使DSPSRAM组成一独立的系统,并将TMS320C5402配置为微处理方式即MP/MC引脚置为高电平。这样DSP系统开始工作,TMS320C5402从外部SRAMOOOOh单元处开始执行程序代码。当修改DSP的程序时,只需修改单片机中相应的代码区,然后重新写入SRAM中即可。单片机的ISP功能能非常方便的完成这一过程,实现了DSP系统的在线调试。

    单片机选用AT89S51,该芯片具有在系统编程功能,能通过并口下载线十分方便的修改、下载程序。TMS320C5402的片外程序RAM选用64k*16位的SRAM芯片CY7C1021V,该芯片的/BHE/BLE引脚分别用来使能SRAM的高8位和低8位。DSP在线调试系统的结构框图如图5.4所示。

    由于 89S515伏供电,而CY7C1021V采用3.3伏供电,因此要进行5v3.3v电平的转换,如图单片机端的地址线和控制线分别通过74LVC1624574LVC2455v电平转换为3.3v电平,数据线的电平转换建议采用74LVC4245,该芯片采用5v3.3v双电源供电,它可以将数据线上的5v3.3v电平相互转换,可实现单片机读、写RAM中的数据。读出的数据可以通过串口发送到计算机上,这样可以检验写入SRAM中的代码是否正确。895518位单片机,而CY7C1021VDSP数据位都为16位,所以代码的写入要分两次写入,先写低8位,再写高8位。高8位数据线和低8位数据线之间可以加一个8位的拨码开关,当向SRAM中写数据时和上开关,而当要运行DSP时则必须将拨码开关断

5.3 ADG高速信号采集板结构框图

开。当代码正确写入SRAM中后将DSPMP/MC引脚跳至高电平,选择MP方式运行片外程序RAM复位后即可以使DSP运行。设计中一定要注意以下情况:由于MCU-SRAMDSP-SRAM两个系统的数据线和地址线存在共用的情况。所以当一个系统在运行时,数据线和地址线不能受到另一芯片相关管脚状态的影响,否则这一系统将无法正常运行。因此一定要注意控制好各个芯片的片选信号,以保证两个系统分别运行时地址线和数据线不相互影响。

5.4 DSP在线调试系统的结构框图

    TI公司的CC’C2000编译后生成的*.out文件为通用对象文件格式(coff )该格式为一种结构性文件格式,而单片机的烧入程序必须为hex文件格式,所以要将*.out文件转化为hex文件格式才能烧入单片机中。转换步骤如下:

    (1)生成*.out形式的公用目标文件(coff )

    当在TI公司的集成开发环境CC' C 2000下进行程序开发时,都会经过编译,链接最后生成*.out文件。

(2)*.out文件进行提取,从中筛选出对最后装载有用的代码和地址信息。

 第一步所产生的*.out文件由于是coff格式的文件,它的可重定位特性使得用户可以对程序在允许的地址范围内灵活地安排。正因为如此,*.out文件还不是一个完完全全的可执行代码,它里面包含有一些关于程序中各个段的诸如起始地址、段的长度这样的辅助信息,如果把这些信息连同程序代码都装入DSP内部,程序是不会被正常执行的。这时必须要对*.outT进行辅助信息与可执行代码的提取与分离,这个任务要靠专门的程序完成。这里采用TI公司提供的程序,程序的名称是:coff_both.exe。它可以在TI的网站上免费下载。

 利用该程序将*.out文件进行操作,最后生成第三步所需的*.out.c的文件。具体操作是把coff_both.exeexample.out文件放在同一目录下,在DOS命令提示符下键入:coff both -out example.out,这时就会生成example.out.c格式的文件。程序分解后的文件格式如下。

section=.verctors

src_addr=0x0

length=0x6(6)

dest_addr=0x0

space=0

  0x7980, 0x0150

  0x7980, 0x0150

Ox7980,Ox0150

checksum=Ox78D0

section=.text

src_addr=0x0

length=0x13(19)

dest_addr=0x150

space=0

OxBE41, OxBE46, OxBE42, OxBE44

OxBCEO, OxAE18, Ox83FE, OxAE29

OxAE1A, OxFFAA, Ox8B00, Ox8B00,

这个程序有两段程序:.vect.text段,起始地址分别为OOOOh0150h,分别由6个字和19个字的代码组成。这些16进制代码则是最后真正被执行的LF2407的程序代码,也是单片机需要写入SRAM中的代码。第二步生成的*.out.c文件明确地告诉了程序有几个段,每个段的大小,段的起始地址以及每个段的16进制代码。有了这个文件,就知道该写些什么内容到SRAM中去才能够开始执行TMS320C5402的程序了。接下来要做的就是编写单片机的应用程序把*.out.c文件中的16进制代码写入SRAM内部了。程序流程图如图5.5所示。

通过设计过程可以看出,通过单片机对TMS320C5402进行程序装载属于一种基于RAM的在线编程,它不用对程序存储器进行烧写,属于一种软配置。利用单片机AT89S51ISP功能可以实现程序的修改、烧写,使系统具有了在线开发的特点。

 系统的具体电路共分为四个部分:电源部分、程序RAM CY7C1021V部分、DSP CTMS320C5402)部分及单片机AT89S51控制部分电路,

 

5.3.3系统的软件设计

由于自适应滤波器要求的实时性强,要以高性能的DSP芯片作为实现基础。DSP芯片较一般单片机复杂,编程是要涉及复杂的寄存器操作。下面以采用横向FIR结构和基本LMS算法的自适应噪声滤波器为例具体介绍自适应滤波器算法实现并给出了相关的程序清单。

用线性缓冲区实现数据采样

    用线性缓冲区方法实现NFIR滤波器时,需要在数据存储区开辟一个具有N个单元的缓冲区,存放最新的N个输入样本。DSP计算每个输入值,都需要读取这N个样本并进行N次乘法和累加。每当DSP读出一个样本后都将次样本向后移动,读完最后一个样本后,最前面的样本被推出缓冲区,输入最新样本至缓冲区顶部。

TMS320C2xx本身的结构对于实现FIR滤波器是很方便的,执行指令可把B块指定为程序存储器。这样将滤波器的系数w(n)放在B块的RAM内,由程序总线存放;数据(采样信号)放在BlRAM内,由数据总线同时存取,并同时送往并行的乘法器进行累加。存储器结构安排如图5.6所示。

 

5.5程序流程图

5.6存储器结构

浮点数的确定

在用DSP进行数字信号处理时,首先遇到的问题是数的表达方式,DSP分为2:一种是定点DSP,另一种是浮点DSP。在浮点DSP中,数据即可以表示成整数,也可以表示成浮点数。浮点数在运算中,表示的数的范围由于其指数可以自动调节,因此,可以避免数的规格化和溢出等问题,但浮点DSP一般比定点DSP复杂,成本也较高。在定点处理器中,数据采用定点表示方法,它有两种基本的表示方法;整数表示方法和小数表示方法:整数表示方法主要控制操作、地址计算和其他非信号处理的应用。而小数表示方法则主要用于数字的各种信号处理算法的计算中,定点表示并不意味着就一定是整数表示。

程序流程图

16阶自适应噪声抵消器LMS算法的程序流程图如图5.7所示。

5.7 LMS算法的程序流程图

 

 

 

参考文献:

[1] 何振亚,自适应信号处理.北京:科学出版社,2002.

[2]数字信号处理实践方法(第二版)(英)Emmanuel C.IfeachorBarrie W.Jervis.罗鹏飞,杨世海,朱国富,谭全元.北京:电子工业出版社,2004.

[3]自适应滤波算法与实现(第二版)(英)Paulo S.R.Diniz.刘郁林,景晓军,谭刚兵等译.杨义先审计校.北京:电子工业出版社.2004.

[4]曹斌芳. 自适应噪声抵消系统的研究[D].中国优秀硕士学位论文全文数据库,2007,(9).

[5]薛年喜.MATLAB在数字信号处理中的应用.北京:清华大学出版社,2003

[6] 伦淑娴,冯健,张化光.基于遗传算法的多传感器自适应噪声抵消器.东北大学学报(自然科学版)2003

[7]罗小东,贾振红,王强.一种新的变步长LMS自适应滤波算法.电子学报,2006

[8]张志涌,刘瑞桢,杨祖樱.精通MATLAB 6.5.北京:北京航空航天大学出版社,2003.

[9]李彦鹏黎湘庄钊文.RLS自适应噪声消除器设计研究.无线电工程,2003

[10] 陈桂明,张明照,戚红雨,张宝俊等.应用Matlab建模与仿真.北京:科学出版社,2001.

[11] 邹彦等.DSP原理及应用.北京:电子工业出版社,2006.5.

[12] ER MJSIA A M.Adaptive Noise Cancellation Using Dynamic Fuzzy Neural

Networks Algorithm,Proceedings 15th of IFAC World Congress,Barcelona

Spain2002.

[13] C.Y Chang and K.K.Shyu,Active Noise Cancellation with A Fuzzy AdaptiveFiltered-X Algorithm,IEE Proc.Circuits Devices Syst,2003

[14] Manolakis G.D.,Ingle V.K.,Kogon S.M.Statistical and Adaptive Signal

Processing.Bei-jing:Tsinghua University Press,2003.

[15]Simon Haykin.自适应滤波器原理,电子工业出版社,2003.7.

[16] 李正周. MATLAB数字信号处理一应用.北京:清华大学出版社,2008

 

 

 

 

 

 

附录

LMS算法程序清单如下:

function [EE]=jshLMS(number)

close all;

clear;

number=2^13;

M=4;

Fs=40;

t=(1:number);

frequcyl=5;

frequcy2=10;

for n=1:number;

noise(n)=sin(0.02*n);

P(n)=sin(0.01*n);

d(n)=sin(0.01*n)+0.4*noise(n);

end

 

X=zeros(1,M);

e=zeros(1,number);

error=zeros(1,number);

w=ones(1,M)/M;

for n=1:number

if n<M

  for j=1:n

      X(j)=noise(n-j+1);

    end

else

  for j=1:M

    X(j)=noise(n-j+1);

  end

end

y(n)=0;

for k=1:M

    y(n)=y(n)+w(k)*X(k);

    end

  e(n)=d(n)-y(n);

    mu=0.0001;

    w=w+2*mu*e(n)*X;

      end

plot(1:number,d,'r',1:number,e,'g');

xlabel('sequence of time');

ylabel('value of output s(n) e(n)');

 

number=2^13;

M=4;

Fs=40;

t=(1:number);

frequcyl=5;

frequcy2=10;

for n=1:number

noise(n)=sin(0.02*n);

d(n)=sin(0.01*n)+0.4*noise(n);

end

 

X=zeros(1,M);

e=zeros(1,number);

error=zeros(1,number);

w=ones(1,M)/M;

for n=1:number

    if n<M

      for j=1:n

        X(j)=noise(n-j+1);

        end

else

  for j=1:M

    X(j)=noise(n-j+1);

  end

end

y(n)=0;

for k=1:M

  y(n)=y(n)+w(k) * X(k);

end

e(n)=d(n)-y(n);

mu=0.0001;

  w=w+2*mu*e(n)*X;

  end

plot(1:number,d,'r',1:number,e,'g',1:number,y);

xlabel('sequence of time');

ylabel('value of output');

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容