自适应lms滤波器在fpga中的实现

自适应lms滤波器在fpga中的实现

ID:30361215

大小:322.54 KB

页数:10页

时间:2018-12-29

自适应lms滤波器在fpga中的实现_第1页
自适应lms滤波器在fpga中的实现_第2页
自适应lms滤波器在fpga中的实现_第3页
自适应lms滤波器在fpga中的实现_第4页
自适应lms滤波器在fpga中的实现_第5页
资源描述:

《自适应lms滤波器在fpga中的实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、自适应LMS滤波器在FPGA中的实现发布日期:2006-07-29 作者:杨跃忠阙沛文李亮来源:微计算机信息摘要:本文介绍了自适应滤波器的实现方法,给出了基于LMS算法自适应滤波器在FPGA中的实现,简单介绍了这种实现方法的各个功能模块,主要包括输入信号的延时输出模块、控制模块、误差计算模块、权值计算和存储模块。并通过在ALTERA公司提供的QUARTUS II平台上采用VHDL语言编程,利用MATLAB和QUARTUS II相结合进行了硬件仿真,结果表明了采用FPGA实现自适应滤波器是有效的。关键词:自适应滤波,FPGA,LMS

2、,VHDL语言引言对于自适应滤波器,IIR和FIR两种形式都可以考虑,而FIR滤波器是实际应用较广泛的。FIR滤波器只有可调的零点,因此它没有IIR因兼有可调的零点和极点而带来的不稳定问题,另外,LMS计算量小,比较容易进行硬件实现,所以本文所设计的自适应滤波器是在FIR的基础上构建的LMS自适应滤波器。2.LMS自适应滤波器的算法构想可以将基于LMS算法的自适应滤波器的算法过程表示成如图1所示。图1 LMS算法实现的原理框图根据LMS算法的计算过程完成的功能,在FPGA设计实现时,可以主要分为FIR滤波器模块、误差计算模块、权值

3、更新模块、权值存储模块和控制模块。其模块框图如图2所示。LMS自适应滤波器的算法中,主要是小数的加法和乘法运算,要把所有小数化为16进制数。例如,N阶FIR滤波器的系数中,我们规定最高位是符号位,其次是3为整数位,最后12位小数。比如,1.125-1400H,0.75-C00H。运算中,所有权值系数均按此方法处理。 自适应LMS滤波器在FPGA中的实现 图2 自适应滤波器FPGA实现模块框图                                                                       

4、3.自适应滤波器在FPGA中的具体实现3.1N阶FIR滤波器模块的设计FIR滤波器是数字滤波器的一种,它的输出y(n)可以用式(1)表示:差分方程:                         (1)其中:N是FIR滤波器的抽头系数;x(i)表示第i时刻的输入样本;h(i)是FIR滤波器的第i级抽头系数。FIR滤波器的单位脉冲响应h(n)是一个有限长序列,因此系统函数为:       (2)为了节约FPGA资源,提高利用率,这里主要介绍采用串行乘加的实现方法。3.2主要的模块组成及其功能主要采用VHDL硬件描述语言在QUART

5、USII平台上编程实现,程序框图如图3所示。FIR滤波器的输入主要分为权值系数输入和数据输入。Din是A/D转换后的输出信号,字宽为12位,其中1位符号位,10位精度位,将这个信号存储在深度为N的SRAM中作为N阶FIR滤波器的输入;FIR的权系数Coeffs.存储在ROM中,字宽为16位,其中最高1位为符号位。通过使用状态机输出地址信号控制读SRAM中的Xn和ROM中的系数Wn,复用12×16的乘法器和加法器来实现乘加运算。当N阶乘加运算做完后,输出一个数据输出有效信号yvalid。Newt信号来自于A/D,表示新一个数据转换好

6、,可以进行下一次运算。在该设计中,FIR滤波器的文件可以采用原理框图形式设计,结构简单明了。而输入信号的延时输出和控制模块采用VHDL设计。乘法器和D触发器都直接使用QUARTUSII自带的库文件。·输入信号的延时输出模块实现功能:完成A/D转换后的数据通过不同的触发器完成N阶延时。该延时部分主要采用D触发器实现了8阶信号延时及存储。在控制信号newt作用下进行延时存储,A/D转换器每采样一次,延时器就顺延一位。这里,Din是A/D输出信号。Xn是输出信号。在地址线sel的控制下输出一位作为乘法器的输入。地址信号sel由控制模块产

7、生。·控制模块实现功能:本模块主要是控制从数据输入模块(SRAM中)和权系数输入模块(ROM中)读入数据输入信号和系数作为乘法器的输入,同时控制累加器,并产生输出有效信号yvalid。主要采用状态机来设计该模块。本模块是自适应滤波器设计的核心部分。该模块的主要功能有:①初始化各模块;②产生控制信号,控制每个模块完成特定的功能;③协调各个模块的操作,使系统局部以流水线方式、整体串行方式工作。·误差计算模块实现功能:该模块主要是计算FIR滤波器输出和期望值之间的误差。根据上面FIR滤波器输出结果可知,当输出信号yvalid有效时,Do

8、ut输出结果,这时可以通过使用一个在next信号控制下的减法器就可以实现误差计算了。·权值计算及存储模块在权值计算模块中,为了计算方便,可以设u=1/1024即u=04H,这样只需要对误差计算模块输出的误差进行移位运算即可以实现,从而省掉了使用乘法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。