自适应LMS滤波器在FPGA中的实现..docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自适应LMS滤波器在FPGA中的实现.

自适应LMS滤波器在FPGA中的实现发布日期:2006-07-29 作者:杨跃忠 阙沛文 李亮 来源:微计算机信息摘要:本文介绍了自适应滤波器的实现方法,给出了基于LMS算法自适应滤波器在FPGA中的实现,简单介绍了这种实现方法的各个功能模块,主要包括输入信号的延时输出模块、控制模块、误差计算模块、权值计算和存储模块。并通过在ALTERA公司提供的QUARTUS?II平台上采用VHDL语言编程,利用MATLAB和QUARTUS?II相结合进行了硬件仿真,结果表明了采用FPGA实现自适应滤波器是有效的。 关键词:自适应滤波,FPGA,LMS,VHDL语言 引言对于自适应滤波器,IIR和FIR两种形式都可以考虑,而FIR滤波器是实际应用较广泛的。FIR滤波器只有可调的零点,因此它没有IIR因兼有可调的零点和极点而带来的不稳定问题,另外,LMS计算量小,比较容易进行硬件实现,所以本文所设计的自适应滤波器是在FIR的基础上构建的LMS自适应滤波器。 2.LMS自适应滤波器的算法构想 可以将基于LMS算法的自适应滤波器的算法过程表示成如图1所示。 图1? LMS算法实现的原理框图 根据LMS算法的计算过程完成的功能,在FPGA设计实现时,可以主要分为FIR滤波器模块、误差计算模块、权值更新模块、权值存储模块和控制模块。其模块框图如图2所示。 LMS自适应滤波器的算法中,主要是小数的加法和乘法运算,要把所有小数化为16进制数。例如,N阶FIR滤波器的系数中,我们规定最高位是符号位,其次是3为整数位,最后12位小数。比如,1.125-1400H,0.75-C00H。运算中,所有权值系数均按此方法处理。   自适应LMS滤波器在FPGA中的实现 ? 图2? 自适应滤波器FPGA实现模块框图?? ????????????????????????????????????????????????????????????????????? 3.自适应滤波器在FPGA中的具体实现 3.1 N阶FIR滤波器模块的设计 FIR滤波器是数字滤波器的一种,它的输出y(n)可以用式(1)表示: 差分方程:????????????????????????? (1) 其中:N是FIR滤波器的抽头系数;x(i)表示第i时刻的输入样本;h(i)是FIR滤波器的第i级抽头系数。 FIR滤波器的单位脉冲响应h(n)是一个有限长序列,因此系统函数为:??????? (2) 为了节约FPGA资源,提高利用率,这里主要介绍采用串行乘加的实现方法。 3.2 主要的模块组成及其功能 主要采用VHDL硬件描述语言在QUARTUS II平台上编程实现,程序框图如图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,表示新一个数据转换好,可以进行下一次运算。 在该设计中,FIR滤波器的文件可以采用原理框图形式设计,结构简单明了。而输入信号的延时输出和控制模块采用VHDL设计。乘法器和D触发器都直接使用QUARTUS II自带的库文件。 输入信号的延时输出模块 实现功能:完成A/D转换后的数据通过不同的触发器完成N阶延时。 该延时部分主要采用D触发器实现了8阶信号延时及存储。在控制信号newt作用下进行延时存储,A/D转换器每采样一次,延时器就顺延一位。这里,Din是A/D输出信号。Xn是输出信号。在地址线sel的控制下输出一位作为乘法器的输入。地址信号sel由控制模块产生。 控制模块 实现功能:本模块主要是控制从数据输入模块(SRAM中)和权系数输入模块(ROM中)读入数据输入信号和系数作为乘法器的输入,同时控制累加器,并产生输出有效信号yvalid。主要采用状态机来设计该模块。本模块是自适应滤波器设计的核心部分。该模块的主要功能有:初始化各模块;产生控制信号,控制每个模块完成特定的功能;协调各个模块的操作,使系统局部以流水线方式、整体串行方式工作。 误差计算模块 实现功能:该模块主要是计算FIR滤波器输出和期望值之间的误差。 根据上面FIR滤波器输出结果可知,当输出信号yvalid有效时,Dout输出结果,这时可以通过使用一个在next信号控制下的减法器就可以实现误差计算了。

文档评论(0)

v4v5v4I + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档