自适应滤波器的设计(终极版)

目 录

摘 要**……………………………………………………………………………………**I

第1章 绪
论**…**1

1.1引言**…………………………………………………………………………………**1

1.2 课题研究意义和目的 1

1.3 国内外研究发展状况 2<#_Toc231889050>

1.4本文研究思路与主要工作 4

第2章 自适应滤波器理论基础 5

2.1 自适应滤波器简介 5

2.2 自适应滤波器的原理 5

2.3 自适应滤波算法 7

2.4 TMS320VC5402的简介 8

第3章 总体方案设计 10

3.1 无限冲激响应(IIR)滤波器 10

3.2 有限冲激响应(FIR)滤波器 11

3.3电路设计 11

4 基于 软件设计及仿真 17

4.3 DSP的理论基础 17

4.4 自适应滤波算法的DSP实现 18

5 总结 21

参考文献 22

致 谢 23

附录 自适应滤波源代码 24

  1. 绪论

1.1 引言

随着微电子技术和计算机技术的迅速发展,具备了实现自适应滤波器技术的各种软硬件条件,有关自适应滤波器的新算法、新理论和新的实施方法不断涌现,对自适应滤波的稳定性、收敛速度和跟踪特性的研究也不断深入,这一切使该技术越来越成熟,并且在系统辨识、通信均衡、回波抵消、谱线增强、噪声抑制、系统模拟语音信号处理、生物医学电子等方面都获得了广泛应用口。自适应滤波器实现的复杂性通常用它所需的乘法次数和阶数来衡量,而DSP强大的数据吞吐量和数据处理能力使得自适应滤波器的实现更容易。目前绝大多数的自适应滤波器应用是基于最新发展的DSP来设计的.

滤波技术是信号处理中的一种基本方法和技术,尤其数字滤波技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。从总的来说滤波可分为经典滤波和现代滤波。经典滤波要求已知信号和噪声的统计特性,如维纳滤波和卡尔曼滤波。现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。自适应滤波的原理就是利用前一时刻己获得的滤波参数等结果,自动地调节现时刻的滤波参数,从而达到最优化滤波。自适应滤波具有很强的自学习、自跟踪能力,适用于平稳和非平稳随机信号的检测和估计。自适应滤波一般包括3个模块:滤波结构、性能判据和自适应算法。其中,自适应滤波算法一直是人们的研究热点,包括线性自适应算法和非线性自适应算法,非线性自适应算法具有更强的信号处理能力,但计算比较复杂,实际应用最多的仍然是线性自适应滤波算法。线性自适应滤波算法的种类很多,有LMS自适应滤波算法、R路自适应滤波算法、变换域自适应滤波算法、仿射投影算法、共扼梯度算法等。

1.2 课题研究意义和目的

自适应滤波理论与技术是现代信号处理技术的重要组成部分,对复杂信号的处理具有独特的功能,对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。自适应滤波器与普通滤波器不同,它的冲激响应或滤波参数是随外部环境的变化而变化的,经过一段自动调节的收敛时间达到最佳滤波的要求。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。自适应滤

波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(LMS)算法、递归最小二乘(RLS)算法及相应的改进算法如:归一化(NLMS)算法、变步长(SVSLMS)算法、递归最小二乘方格形(RLSL)算法等。这些算法各有特点,适用于不同的场合。研究自适应算法是自适应滤波器的一个关键内容。最小均方误差(LMS,The
least Mean
square)算法是线性自适应滤波算法中最基本的两类算法之一,其主要思想是基于最小均方误差准则,使滤波器的输出信号与期望输出信号之间的均方误差最小,由于LMS算法简单有效、鲁棒性好、易于实现,得到了广泛的应用。

1.3 国内外研究发展状况

自适应滤波的基本理论通过几十年的发展已日趋成熟,近十几年来自适应滤波器的研究主要针对算法与硬件实现。算法研究主要是对算法速度和精度的改进,其方法大都采用软件C、MATLAB等仿真软件对算法的建模和修正。通常,自适应滤波器的硬件实现都是用DSP通用处理器(如TI的TMS320系列)。DSP器件采用改进的哈佛结构,具有独立的程序和数据空间,允许同时存取程序和数据,内置高速的硬件乘法器(MAC),增强的多级流水线。DSP具有的硬件乘法模块(MAC),专用的存储器以及适用于高速数据运行的总线结构,使DSP器件具有高速的数据运算能力。目前,用DSP器件处理数字信号已经成为电子领域的研究热点。在自适应信号处理领域,对于数据处理速度在几兆赫兹以内的,通用DSP器件也是首选。迟男等人在TMS320C32芯片上扩展EPROM和RAM,实现了30阶LMS自适应滤波器,使用的刀D转化器件为AD1674,最高采样频率为l00KHz。陆斌等人采用TMS320C30数字信号处理器与IMSA110专用滤波器并行处理的方法设计出了自适应滤波器并应用于直接序列的扩频接收系统1221。赵慧民等人在TMS320C31上实现了自适应权向量滤波器,完成了信号采样频率为80KHz的自适应滤波。在数据处理速度只要求在几兆赫兹以内的应用场合,这些用DSP实现的自适应滤波器能很好的满足系统实时的需求。在这种需求场合下,DSP具有不可媲美的性价比。

但是随着信息化的进程加快和计算机科学与技术、信号处理理论与方法等的迅速发展,需要处理的数据量越来越大,对实时性和精度的要求越来越高。以迅速发展的移动通信技术为例,从IG时代只能传送语音的模拟通信,到2G时代的传送语音和数据的GSM、TDMA与CDMA1595,到2.5G时代传送语音、数据、图片、彩信MMS、简短视频、收发E-mail、网页浏览等的GPRS与CDMA2000lX,到目前正处于研发与测试阶段的能够传送图像、音乐、视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务的3G通信,以及目前正在研发与憧憬中的能够传送高质量流畅的视频流与多种实时流媒体业务的4G通信。DSP处理器虽然具有良好的通用性和灵活性,虽然其在硬件结构上得到了很大的改进,比如增加了多个硬件乘法器和使用多乘法器的并行指令等,但并没有摆脱传统的CPU工作模式,而且DSP处理器是通过软件指令完成DSP算法,其顺序的工作方式制约了其数据处理速率,而使用多片DSP组合电路和过多的外部接口电路将导致信号通道过长、过于复杂,成本也成倍地提高,因此DSP处理器对于3G和4G通信中几十甚至上百兆比特每秒的数据处理速率显得无能为力。

常用的数字系统目标器件除了DSP处理器外还有专用集成电路(ASIC)、专用标准电路模块(ASSP)和现场可编程门阵列(FPGA)。ASIC和ASSP是专门针对完成某种数字信号处理算法的集成电路器件,因此其在性能指标、工作速度、可靠性和成本上优于DSP处理器。其优秀的工作性能主要源于特定的算法全部由ASSP和ASIC中的硬件电路完成。ASSP是半定制集成电路,在许多DSP算法的实现方面都优于DSP(数字信号处理器),但在功能重构,以及应用性修正方面缺乏灵活性;ASIC专用集成电路使用超大规模专用集成电路ASIC的实现方法是实用化的产品唯一可行的方法,只有使用IC,才有高可靠性和可接受的价格及体积功耗等。ASIC虽然有一定的可定制性,但开发周期长,而且有一个最小定制量,在实验室研制开发阶段,开发成本非常高。现代大容量、高速度的FPGA在可重配置的数字信号处理应用领域,特别是对于任务单一、算法复杂的前端数字信号处理运算,有独特的优势。例如对于需要经常更新滤波器权系数的自适应滤波器,由于特定DSP处理器的位数是固定的,采用FPGA处理器相比DSP处理器就具有总线可调整的优势。另外,FPGA所具有的大规模并行处理能力和可编程的灵活性使得设计的系统能获得极高的处理性能,并且能够适应日益变化的标准、协议和性能需求。用FPGA实现自适应滤波器,国外起步比较早,发展也非常迅速。Hesener
A.于1996年提出了用FPGA实现自适应滤波器的设想,并在FPGA上实现了处理速度可达SM的8阶8位FIR滤波器。Woolfries
N.等人用FPGA实现了自适应栈滤波器,并应用于图象处理。Dawood
A.等人用FPGA开发了自适应FIR滤波器并与DSP处理器方案进行了比较研究。国内有一些关于自适应算法硬件实现的研究,但基本是针对自适应滤波器中的算法,如南开大学李国峰的博士论文用VHDL语言描述了正负数的运算问题和浮点数运算问题,完成了基于FIR的LMS自适应滤波器的硬件设计与逻辑综合。国防科学技术大学江和平等人讨论了自适应卡尔曼算法的简化,并完成了FPGA的设计。同济大学梁甲华等人重点讨论了编码方法在FPGA的技术问题。上海交通大学范瑜等人介绍了用VHDL语言实现并行延时LMS算法的自适应数字波束成形器的FPGA设计过程。而针对自适应格型结构采用FPGA硬件实现的文献报导很少,国内中国科学技术大学王显洁等人通过采用流水线结构和运算单元分时复用,提高了运算速度,能够满足实时性预测编码要求。1998年弗吉尼亚大学的StephenJ.Hevey在其硕士论文中利用DSP处理器和自适应格型递归滤波算法完成了对线性二次型最优控制器的设计,通过实验表明了在宽带干扰下格型结构的滤波器性能优于LMS滤波器,在窄带和谐波干扰下两者的区别不大,但所需阶数至少比LMS滤波器减少一半,可以节省大量硬件资源。

1.4本文研究思路与主要工作

本文设计要求使用DSP实现自适应滤波器,要求完成自适应滤波器的设计和调试。自适应滤波器的设计需要使用自适应算法(LMS算法),LMS算法是通过对未知系统传递函数的建模,识别该未知系统,并对该系统进行噪声滤波。

自适应滤波器,其权系数可以根据自适应算法来不断修改,使得系统中的冲激响应满足给定的性能。例如语音信号的ADPCM编码,采用线性预测自适应就可以实现误差信号与输入信号的线性无关,并由此作为依据,不断调节滤波器的权系数,最终使得误差信号趋近于零,使得该滤波器完全适应该输入信号;同样,只要输入信号出现变换,自适应滤波器根据误差信号的变化再次调整其权系数,从而跟上信号的变化。自适应滤波器设计的算法采用的是自适应算法,即LMS算法。LMS算法是通过对未知系统传递函数的建模,识别该未知系统,并对该系统进行噪声滤波。

第2章 自适应滤波器的理论基础

2.1 自适应滤波器简介

自适应滤波器属于现代滤波器的范畴,自适应滤波器是相对固定滤波器而言的,固定滤波器属于经典滤波器,它滤波的频率是固定的,自适应滤波器滤波的频率则是自动适应输入信号而变化的,所以其适用范围更广。在没有任何关于信号和噪声的先验知识的条件下,自适应滤波器利用前一时刻已获得的滤波器参数来自动调节现时刻的滤波器参数,以适应信号和噪声未知或随机变化的统计特性,从而实现最优滤波。所谓自适应滤波,就是利用前一时刻已获得的滤波器参数等结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种能调节其自身传输特性以达到最优化的维纳滤波器。

2.2 自适应滤波器的原理

所谓的自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种能调节其自身传输特性以达到最优的维纳滤波器。自适应滤波器不需要关于输入信号的先验知识,计算量小,特别适用于实时处理。由于无法预先知道信号和噪声的特性或者它们是随时间变化的,仅仅用FIR和II种具有固定滤波系数的滤波器无法实现最优滤波。在这种情况下,必须设计自适应滤波器,以跟踪信号和噪声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。自适应滤波器的结构采用FIR或IIR结构均可,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。图1-1示出了自适应滤波器的一般结构。
在这里插入图片描述

在这里插入图片描述

图1-1为自适应滤波器结构的一般形式,图中x
(k)输入信号,通过权系数可调的数字滤波器后产生输出信号y (k),将输出信号y
(k)与标准信号(期望信号)d(k)进行比较,得到误差信号e (k)。e (k)和x
(k)通过自适应算法对滤波器的权系数进行调整,调整的目的使得误差信号e
(k)最小。重复上面过程,滤波器在自己的工作过程中逐渐了解到输入信号和噪声的统计规律,并以此为根据自动调整滤波器权系数,从而达到最佳滤波效果。一旦输入的统计规律发生变化,滤波器能够自动跟踪输入信号变化,自动调整滤波器的权系数,最终达到滤波效果,实现自适应过程。
在这里插入图片描述

图1-2是使用自适应滤波器的系统识别原理图。

自适应滤波器的结构可以采用FIR或IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应FIR滤波器结构又可分为3种结构类型:横向型结构(Transversal
Structure)、对称横向型结构(Symmetric Transversal
Structure)以及格型结构(Lattice
Struture)。本文采用自适应滤波器设计中最常用的FIR横向型结构。

2.3自适应滤波算法

由Widrow和Hoff引入的最小均方(LMS)算法,由于其简单性、运算高效性各种运行条件下良好的性能,而被广泛应用。基于梯度的最小均方(LMS)算法是最基本的算法,其含义相对简单明了。选定均方误差为权矢量二次函数时,性能度量曲线可以形象地看成一个碗形曲面这样自适应处理器的任务便是不断地向最低点逼近,即可以通过计算梯度的方法实现性能度量的最优化。而基于梯度的算法中,最简单的一种就是最小均方算法LMS算法,LMS算法使用的准则是使均衡器的期望输出值和实际输出值之间的均方误差(MSE)最小化的准则,依据输入信号在迭代过程中估计梯度矢量,并更新权系数以达到最优的自适应迭代算法。这算法不需要计算相应的相关函数,也不需要进行矩阵运算。自适应滤波器最普通的应用就是横向结构。滤波器的输出信号y(n)是y(n)

(2-1)在这里插入图片描述

T表示转置矩阵,
n是时间指针,N是滤波器次数。这个例子就是有限脉冲响应滤波器的形式,为x(n)和w(n)两个矩阵卷积。

这种自适应算法使用误差信号:

(2-2)在这里插入图片描述

为了方便起见,将上述式子表示为向量形式,则上述式子表示为:

(2-3)在这里插入图片描述

误差序列可写为:

(2-4)
在这里插入图片描述

其中d(n)是期望信号,y(n)是滤波器的输出。使用输入向量x(n)和e(n)来更新自适应滤波器的最小化标准的相关系数。

显然,自适应滤波器控制机理是用误差序列e(n)按照某种准则和算法对其系数{wi(n)},i=1,2,…,N进行调节的,最终使自适应滤波的目标(代价)函数最小化,达到最佳滤波状态。

本节所用的标准是最小均方误差(MSE)。

(2-5) 在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这个解称为维纳解,即最佳滤波系数值。因为均方误差(MSE)函数是滤波系数w的二次方程,由此形成一个多维的超抛物面,这好像一个碗状曲面又具有唯一的碗底最小点,通常称之为自适应滤波器的误差性能曲面。当滤波器工作在平稳随机过程的环境下,这个误差性能曲面就具有固定边缘的恒定形状。自适应滤波系数的起始值{wi(0)},i=1,2,…,N是任意值,位于误差性能曲面上某一点,经过自适应调节过程,使对应于滤波系数变化的点移动,朝碗底最小点方向移动,最终到达碗底最小点,实现了最佳维纳滤波。

自适应过程是在梯度矢量的负方向接连的校正滤波系数的,即在误差性能曲面的最陡下降法方向移动和逐步校正滤波系数,最终到达均方误差为最小的碗底最小点,获得最佳滤波或准最优工作状态。广泛使用的LMS算法是一种选择性法适应采样和采样基础。这个方法可以避免复杂的计算。LMS算法是最陡下降法,在这个算法中,向量w(n+1)通过改变对最小均方误差性能的负梯度比例自适应滤波算法及应用研究来增强。

2.4 TMS320VC5402的简介

TMS320VC5402是公司的定点数字信号处理芯片,是一种特殊结构的微处理器,为了达到快速进行数字信号处理的目的,采用程序与数据分开的总线结构,流水线操作,单周期完成乘法的硬件乘法器以及一套适合数字信号处理的指令集。

2.4.1 TMS320VC5402的主要特点

TMS320VC5402处理器在本系列中处于先进水平。它具有运算速度快,内部存储空间大,外部接口性能好等优点。所以我选择了技术上比较先进,价格又较便宜的C5402作为硬件开发对象。下面结合C5402的实际情况,介绍一下该芯片的体系结构。C5402共有144个引脚,其中有20根地址线AO-A19,16根数据线DO-D15,4个外部可屏蔽引脚INTO#-INT3#和一个不可屏蔽中断引脚BIO#,剩下的引脚可以分成以下几类:存储器控制引脚,时钟/晶振引脚,多通道缓冲串口引脚,主机接口通讯引脚,电源引脚,初始化和复位引脚,通用输入/输出引脚,以及用于测试的IEEE1149.
1标准JTAG口。

2.4.2. TMS320VC5402 DSK工作原理

TMS320VC5402 DSK是以TMS320VC5402处理器为核心的DSP 初学者工具(DSP Starter
Kit)。它提供了一个低功耗,独立的开发平台,使用户能评估和开发C54X
DSP的应用程序,同时也可以作为以其他芯片为核心的DSP硬件设计的参考。TMS320VC5402
DSK的结构框图如图2.2所示,主要包括以下部分:

• 100M VC5402 DSP

• 64K16位的SRAM存储器

• 256K16位的FLASH存储器

• JTAG仿真测试总线控制器(JTAG TBC)和并行接口控制器(Parallel

Port Controller)

• 电话网络接口(DAA)

• 麦克风/扬声器音频接口

• RS-232异步数据接口

• 扩展子板接口(MEMORY I/F和PERIPHERAL I/F)。

第3章 总体方案设计

3.1 无限冲激响应(IIR)滤波器

3.1.1 自适应IIR滤波器的基本原理

图3-1为自适应IIR滤波器的基本结构,其输入为x(n),输出为y(n),滤波器由可变系数IIR滤波器和递归算法组成,递归算法通过预测误差e(n)去调系数θ(n),以使输出y(n)按某种准则逼近于期望响应d(n)。θ为描述滤波器具有零点和极点转移函数的系数参数。滤波器输出误差e(n)=d(n)-y(n)是按某种准则,如均方误差(MSE)或递归最小二乘(RLS)准则等,使e2
(n)最小化,可调整IIR系数使输出信号y(n)逼近于期望响应d(n) 。

3.1.2 IIR滤波器的一般结构

根据前面所介绍的IIR滤波器的传递函数可表示为:

(3-1)在这里插入图片描述
在这里插入图片描述

3.2 有限冲激响应(FIR)滤波器

3.2.1 FIR横向型滤波器的一般结构

如图3-4所示。这种结构仅包含有由延迟级数所决定的有限个存储单元,可归结为有限冲激响应(FIR)或横向滤波器(Kallman)。输入信号被若干延迟单元延时,其延迟时间可以是连续的。这些延迟单元的输出与存储的一组权系数依次相乘,将其乘积相加得到输出信号。这意味着输出是输入信号与所存储的权系数或冲激响应的卷积。这种滤波结构仅包含有零点(因为没有递归反馈单元),因此,若要获得锐截止的频率特性,则需要有大量的延迟单元。不过,这种滤波器始终是稳定的,并能提供线性相位特性。图3-4是横向型滤波器的结构示意图。、
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第5章 总结

从任务的下达,选择课题,查阅文献和资料,到课题的正式设计,整个过程历时两周。为了实现基于DSP的自适应滤波器的设计,我首先了解了自适应滤波器的原理及国内外研究状况,确定此次课程设计的意义和思路。我和谭小芳组成小组,共同协作完成此次课程设计任务,在总体上,谭小芳负责硬件的设计,我负责软件的设计及编程,并完成了仿真与调试,得出正确的仿真结果。

在这次课程设计过程中,学习上和思想上我都受益匪浅,不仅加强了我独立思考问题和解决问题的能力,同时理解到团队合作的重要性。另外,我还认识到理论知识与实践相结合的重要性,只有将理论知识应用于实践中,才能更好的掌握和理解所学知识。由于自身知识水平有限,本文所做的工作也只是一些初步研究,文中还有很多不足之处,有些问题还有待进一步完善。

参考文献

[1] 张雄伟,曹铁勇,陈亮. DSP
芯片的原理与开发应用(第四版).北京:电子工业出版社,2009.

[2] 李绍胜,赵振涛. TMS320C5000 系列DSP开发应用技巧[M].北京:中国电力出版社,2007.

[3]
郑宝玉.
自适应滤波器原理[M].
北京:电子工业出版社,2006.

[4]
朱铭锆,赵勇,甘泉.
DSP应用系统设计
[M].北京:电子工业出版社, 2002.

[5]
彭启琮张诗雅.
TI DSP集成化开发环境使用手册——TI
DSP系列中文手册

[M].北京:清华大学出版社,
2005.

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

[7] 安颖,侯国强. 自适应滤波算法研究与DSP 实现[J ]. 现代电子技术,2007.

[8] 彭启踪. DSP 与实时数字信号处理[M] . 成都:电子科技大学出版社,1995.

致 谢

在紧迫的两个星期内终于完成了此次课程设计,通过此次课程设计,我在学习上和思想上都受益匪浅,深刻理解到理论知识与实践相结合的重要性,只有不断地通过动手操作和独立思考才能真正的掌握所学知识。

本文是在刘老师的亲切关怀和悉心指导下完成的,首先,衷心感谢我的指导老师,在我整个课程设计制作过程中,从论文的选题、研制计划的安排到论文的具体的内容,刘老师都给予了悉心的指导,课题进行期间,刘老师宽人律己的高尚品德,务实的工作作风,高度的责任心深深打动着我,一直激励着我们开拓进取,使学生倍受教育。论文中每一成果的获得均凝聚了导师们的心血和智慧。在此我衷心感谢刘老师的帮助和悉心的指导,同时感谢所有关心、帮助过我的同学和朋友们。在课题进行到比较困难的时候,能给我提出宝贵的合理意见。没有你们的大力支持,我的课程设计也不可能这样顺利进行。在此深深的表达谢意!

附录 自适应滤波源代码

DATA_SIZE .set 256 ;

FILTER .set 10 ;

STACK_SIZE .set 256 ;

STACK .usect “stack”,STACK_SIZE

SYSTEM_STACK .set STACK_SIZE+STACK

DATA_DP .usect “filter_vars”,0

filter .usect “filter_vars”,FILTER*2

outputdata .usect “filter_vars”,DATA_SIZE

errrordata .usect “filter_vars”,DATA_SIZE

.def start

.data

.global inputdata

Inputdata

.word 10408,16451,10820,12227,18146,13106,11485

.word 15737,9840,3644,8171,4118,-4355,-624

.word -2443,-11575,-10290,-8288,-16156,-16663,-10543

.word -15433,-17113,-8010,-11188,-11286,-3102,-2176

.word -3726,4075,8836,3665,10937,16347,11278

.word 13449,19214,13116,11330,16515,10916,4581

.word 7920,4852,-3773,-1259,-2437,-12459,-10499

.word -8657,-16091,-15654,-11133,-15864,-17015,-8342

.word -10862,-11228,-2376,-1394,-3423,4160,7802

.word 5087,10683,16178,11318,12040,18459,13601

.word 10019,16146,10320,4708,9071,3873,-4214

.word -704,-3586,-11606,-9998,-8837,-17008,-16095

.word -10402,-15357,-16675,-8536,-11140,-11943,-2908

.word -1887,-4719,5099,7887,5169,10683,16744

.word -10076,-8626,-17231,-15279,-10646,-16684,-17179

.word -7936,-10141,-11216,-2285,-903,-3720,5052

.word 7833,3880,10946,16387,10515,12519,18743

.word 12257,10662,16038,10388,3906,9196,4417

.word -4219,-912,-2419,-11865,-11209,-9233,-16353

.word -15469,-10824,-15744,-17280,-9320,-10469,-11427

.word -2313,-875,-4650,4739,8016,4821,9834

.word 15507,10613,12142,18944,12333,11383,15673

.word 10308,4892,8156,4732,-4849,-955,-2853

.word -11303,-11279,-9263,-16185,-15864,-9999,-16150

.word -16554,-8656,-10620,-12215,-2220,-836,-3474

.word 4939,9086,4804,10259,15884,10219,12041

.word 18582,13394,10321,15635,10087,4313,8034

.word 5145,-4469,-908,-2155,-12436,-11063,-8792

.word -16193,-16849,-10633,-15990,-16297,-8395,-10178

.word -11597,-2151,-600,-3487,3862,9267,5004

.word 9600,15632,10160,13017,18309,13654,9879

.word 15890,9795,4551,8900,4029,-4107,-1672

.word -3324,-11575,-9976,-8166,-17320,-15900,-10976

.word -15948,-15898,-8530,-10618,-11542,-2163,-1343

.word -4333,5094,8127,4794

.global referdata

Referdata

.word 10408,16451,10820,12227,18146,13106

.word 15737,9840,3644,4118,-4355,-624

.word -2443,-11575,-10290,-8288,-16156,-16663,-10543

.word -15433,-17113,-8010,-11188,-11286,-3102,-2176

.word -3726,4075,8836,3665,10937,16347,11278

.word 13449,19214,13116,11330,16515,10916,4581

.word 7920,4852,-3773,-1259,-2437,-12459,-10499

.word -8657,-16091,-15654,-11133,-15864,-17015,-8342

.word -10862,-11228,-2376,-1394,-3423,4160,7802

.word 5087,10683,16178,11318,12040,18459,13601

.word 10019,16146,10320,4708,9071,3873,-4214

.word -704,-3586,-11606,-9998,-8837,-17008,-16095

.word -10402,-15357,-16675,-8536,-11140,-11943,-2908

.word -1887,-4719,5099,7887,5169,10683,16744

.word 11122,12021,18500,12911,10354,16272,10118

.word 5139,8244,3601,-3640,-574,-3111,-12231

.word -10076,-8626,-17231,-15279,-10646,-16684,-17179

.word -7936,-10141,-11216,-2285,-903,-3720,5052

.word 78333,3880,10946,16387,10515,12519,18743

.word 12257,10662,16038,10388,3906,9196,4417

.word -4219,-912,-2419,-11865,-11209,-9233,-16353

.word -15469,-10824,-15744,-17280,-9320,-10469,-11427

.word -2313,-875,-4650,4739,8016,4821,9834

.word 15507,10613,12142,18944,123333,11383,15673

.word 10308,4892,8156,4732,-4849,-955,-2853

.word -11303,-11279,-9263,-16185,-15864,-9999,-16150

.word -16554,-8656,-10620,-12215,-2220,-836,-3474

.word 4939,9086,4804,10259,15884,10219,12041

.word 18582,13394,10321,15635,10087,4313,8034

.word 5145,-4469,-908,-2155,-12436,-11063,-8792

.word -16193,-16849,-10633,-15990,-16297,-8395,-10178

.word -11597,-2151,-600,-3487,3862,9267,5004

.word 9600,15632,10160,13017,18309,13654,9879

.word 15890,9795,4551,8900,4029,-4107,-1672

.word -3324,-11575,-9976,-8166,-17320,-15900,-10976

.word -15948,-15898,-8530,-10618,-11542,-2163,-1343

.word -4333,5094,8127,4794

.text

.asg AR2,INPUTDATA

.asg AR3,FILTER

.asg AR4,OUTPUTDATA

.asg AR5,ERRORDATA

.asg AR6,REFERDATA

Start: SSBX FRCT

SSBX INTM

LD #DATA_DP,DP

STM #80,AR3

RPT #10

MVPD inputdata,*AR3+

STM #STACK,SP

CALL lmsfilter_start

NOP

NOP

LOOP: B LOOP

.def delta

.def lmsfilter_start

Delta .set -08F5H

One .set 0001h

.text

Lmsfilter_start:

STM #inputdata,INPUTDATA

STM #filter,FILTTER

STM #outputdata+9,OUTPUTDATA

STM #errordata+9,ERRORDATA

STM #referdata+9,REFERDATA

STM #filter+15,AR1

STM #DATA_SIZE-10-1,BRC

RPTB lmsfilter_end

SUB B,B

RPT #9

LMS *INPUTDATA+,*FILTER+

STH B,*AR1

SUB B,B

LD *AR1,B

STL B,*OUTPUTDATA+

SUB *BREFERDATA+,B

STL B,*ERRORDATA

MPY *ERRORDATA+,#delta,B

STH B,*AR1

SUB B,B

LD *AR1,B

STL B,*AR1

MPY *AR1,#one,B

PSHM RSA

PSHM REA

PSHM BRC

LD *INPUTDATA-,A

LD *FILTER-,A

STM #9,BRC

RPTB circle_end

SUB A,A

LD B,A

MPY *INPUTDATA-,B

STB B,*AR1

SUB B,B

LD *AR1,B

ADD *FILTER,B

STL B,*FILTER-

SUB B,B

LD A,B

NOP

Circle_end: NOP

NOP

STM #DATA_SIZE-10-1,BRC

RPTB lmsfilter_end

POPM BRC

POPM REA

POPM RSA

NOP

NOP

LD *INPUTDATA+,A

LD *INPUTDATA+,A

LD *FILTER+,A

LD *REFERDATA,A

NOP

Lmsfilter_end: RET

.end

  • 11
    点赞
  • 97
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答您的问题。以下是关于自适应滤波器设计及 Matlab 实现的一些基本知识和程序代码。 自适应滤波器是一种可以自动调整滤波器系数的数字滤波器。它可以根据输入信号的特性自动调节滤波器的参数,从而可以更好地适应不同的信号环境和噪声情况。 在 Matlab 中,可以使用 Adaptive Filter 工具箱来实现自适应滤波器设计和模拟。以下是一个简单的 Matlab 程序,可以用来实现自适应滤波器设计和模拟: ``` % 定义输入信号和噪声信号 x = sin(2*pi*0.1*[0:1000-1]) + 0.5*randn(1,1000); % 定义自适应滤波器参数 M = 20; % 滤波器阶数 mu = 0.01; % 步长因子 % 初始化自适应滤波器系数 w = zeros(M,1); % 实现自适应滤波器 for n = M+1:length(x) x_n = x(n:-1:n-M+1)'; y_n = w'*x_n; e(n) = x(n) - y_n; w = w + mu*e(n)*x_n; end % 绘制输入信号、输出信号和误差信号的图形 subplot(3,1,1); plot(x); title('Input Signal'); subplot(3,1,2); plot(y_n); title('Output Signal'); subplot(3,1,3); plot(e); title('Error Signal'); ``` 以上程序中,首先定义了一个输入信号和噪声信号,然后定义了自适应滤波器的阶数和步长因子,并初始化了自适应滤波器的系数。接着,使用 for 循环来实现自适应滤波器,最后绘制输入信号、输出信号和误差信号的图形。 希望这个程序能够帮助到您,如果您有任何问题或需要更多的帮助,请随时与我联系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值