文档详情

自适应滤波器FPGA的实现.doc

发布:2017-06-15约6.1千字共10页下载文档
文本预览下载声明
综合资讯在线阅读原文阅读在线商城下载专区DATASHEET 技术论坛商务频道 嵌入式系统??单片机??D S P??EDA/PLD??接口电路??存储技术??显示光电??电源技术 传感/控制??模拟技术??通信网络??无线通信??电测仪表??消费电子??汽车电子   自适应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。运算中,所有权值系数均按此方法处理。 ? 图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滤波器输出和期望值之间的误
显示全部
相似文档