自适应滤波器FPGA的实现概要.docx
- 文档编号:30114225
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:246.22KB
自适应滤波器FPGA的实现概要.docx
《自适应滤波器FPGA的实现概要.docx》由会员分享,可在线阅读,更多相关《自适应滤波器FPGA的实现概要.docx(19页珍藏版)》请在冰豆网上搜索。
自适应滤波器FPGA的实现概要
综合资讯在线阅读原文阅读在线商城下载专区DATASHEET技术论坛商务频道
嵌入式系统 单片机 DSP 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.1N阶FIR滤波器模块的设计
FIR滤波器是数字滤波器的一种,它的输出y(n可以用式
(1)表示:
差分方程:
(1)
其中:
N是FIR滤波器的抽头系数;x(i表示第i时刻的输入样本;h(i是FIR滤波器的第i级抽头系数。
FIR滤波器的单位脉冲响应h(n是一个有限长序列,因此系统函数为:
(2)
为了节约FPGA资源,提高利用率,这里主要介绍采用串行乘加的实现方法。
3.2主要的模块组成及其功能
主要采用VHDL硬件描述语言在QUARTUSII平台上编程实现,程序框图如图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触发器都直接使用QUARTUSII自带的库文件。
∙输入信号的延时输出模块
实现功能:
完成A/D转换后的数据通过不同的触发器完成N阶延时。
该延时部分主要采用D触发器实现了8阶信号延时及存储。
在控制信号newt作用下进行延时存储,A/D转换器每采样一次,延时器就顺延一位。
这里,Din是A/D输出信号。
Xn是输出信号。
在地址线sel的控制下输出一位作为乘法器的输入。
地址信号sel由控制模块产生。
∙控制模块
实现功能:
本模块主要是控制从数据输入模块(SRAM中)和权系数输入模块(ROM中)读入数据输入信号和系数作为乘法器的输入,同时控制累加器,并产生输出有效信号yvalid。
主要采用状态机来设计该模块。
本模块是自适应滤波器设计的核心部分。
该模块的主要功能有:
①初始化各模块;②产生控制信号,控制每个模块完成特定的功能;③协调各个模块的操作,使系统局部以流水线方式、整体串行方式工作。
∙误差计算模块
实现功能:
该模块主要是计算FIR滤波器输出和期望值之间的误差。
根据上面FIR滤波器输出结果可知,当输出信号yvalid有效时,Dout输出结果,这时可以通过使用一个在next信号控制下的减法器就可以实现误差计算了。
∙权值计算及存储模块
在权值计算模块中,为了计算方便,可以设u=1/1024即u=04H,这样只需要对误差计算模块输出的误差进行移位运算即可以实现,从而省掉了使用乘法器,节约了大量的FPGA资源,并且提高了计算速度。
计算2ue(kx(k时可以先将x(k右移11位,再使用乘法器与e(k相乘得出权值变量。
根据设计流程,该模块的功能框图如图4所示。
图4 权值计算及存储模块功能框图
权值系数存储在两个RAM中,两个RAM交替读写。
当RAM1处于读状态,输出当前的权值系数,作为FIR滤波器的输入,同时用来更新新的权值。
更新的权值系数则存储在RAM2中。
如此交替轮换,完成系数的更新和存储功能,这样就可以解决RAM同时需要读取和更新权值系数的问题。
(注:
图4中的RAM1和RAM2的位置是交替变换使用的)
4.自适应滤波器的仿真验证
4.1仿真实现
自适应滤波器模块的测试要求全面性和有效性。
在测试仿真验证时不仅要验证控制接口的有效性,还要验证算法的有效性。
模块测试的软件环境是QuartusII。
图5自适应滤波器模块测试框图
由于QuartusII软件自带的仿真工具对复杂设计的性能做评估时,会碰到许多困难。
由于在仿真时需要手工设置输入节点值,对于我们设计的自适应滤波器,输入的数据量大,而且必须经过严格计算得到,很难由手工输入。
在这里我们结合使用matlab和QuartusII来进行仿真测试,系统测试框图如图5所示。
利用Matlab来产生复杂的仿真输入信号,再在QuartusII中进行仿真,输出仿真信号,再利用matlab进行信号波形分析。
4.2仿真结果
整个程序是在QuartusII平台上实现的。
设计中信号输入和参考输入都是12位,输出是16位。
程序设计中u固定为1/1024。
整个程序综合于APEX20K系列的EPF20K300EQC240-1芯片上,使用的资源为:
3347个LEs,占29.1%,3768个Memory,占2.5%。
其时钟频率可达到23.6MHz。
由于在系统设计中,FPGA实现的功能比较多,因此在系统设计选型时,留有的余量比较大。
但是,在该设计中,采用了串行的设计方法,并不是直接使用乘法器,兼顾了速度与资源,所以性能上不是最优的。
对设计的自适应滤波器进行综合仿真,结果如图6所示。
图6 自适应滤波器在FPGA中实现的仿真结果
由于在QuartusII中进行仿真时,仿真结果都是以二进制或十六进制表示的,不利于观察自适应滤波器的滤波效果。
将仿真结果转换成Table文件输出,从Table文件中提出数据,将数据导入到matlab中,画出图形如图7所示。
图7自适应滤波器仿真结果
5.小结
由图7中可以看出,在功能上基本实现了自适应滤波器的功能,但是滤波的效果不太好,仍然存在着毛刺。
这主要是因为在该设计中,FIR滤波器的阶数太小,而且在计算中使用的是定值的u,出现了较大的舍入误差。
不过这种方法的优点就是简单容易实现,而且节约了很多FPGA的资源。
参考文献
[1] 胡广书,《数字信号处理》,清华大学出版社,2003
[2] 褚振勇,翁木云,《FPGA设计及应用》,西安电子科技大学出版社,2002
[3] 赵雅兴,《FPGA原理、设计与应用》,天津大学出版社,1994.4
[4] 褚振勇,屈丹,门向生,利用FPGA实现数字信号处理,电讯技术,2000.1
子带分解的自适应滤波器的FPGA实现
2010-06-0223:
00:
25来源:
维库开发网
关键字:
子带分解自适应滤波器FPGA
0引言
自适应滤波器已经广泛应用于信道均衡、回声取消、系统识别、频谱估计等各个方面。
基于子带分解的自适应滤波在提高收敛性能的同时又节省了一定的计算量。
基于子带分解的自适应滤波是先将输入信号与参考信号经过分解滤波器组进行子带分解、抽取、子带自适应滤波、内插、通过合成滤波器组得到输出信号。
基于子带分解的自适应滤波器的优点:
(1由于对信号的抽取,使完成自适应滤波所需的计算量得以减少;
(2在子带进行自适应滤波使收敛性能有所提高。
l基于子带分解的自适应滤波结构
基于子带分解的自适应滤波,其时域结构如图1所示。
将输入信号x(n和参考信号d(n分别进行子带分解,抽取,在子带上进行自适应滤波,再将子带上的估计信号y0(n和y1(n经内插和合成滤波器组得到最后的合成信号。
其中滤波器W00(n和W11(n是两个子带上的自适应滤波器,而W01(n和W10(n表示子带间自适应滤波器。
这是由于滤波器组均是FIR滤波器,不可能有锐截止的理想特性,只能以长度为代价来换取近似的特性;这时在严格采样下得到的子带信号必然有混叠,需加入子带间滤波以消除其影响。
这里的子带自适应滤波器采用基于NLMS算法自适应滤波器。
NLMS算法和LMS算法相比。
虽然计算量稍有增加,但可使得自适应滤波器收敛速度大大提高。
2双通道滤波器组的设计
本文采用的分析和综合滤波器之间的关系如下:
H1(z=H0(-z,G1(z=-2H0(-z,G0(z=2H1(-z。
由上述表达式可知设计的关键是设计H0(z,只要H0(z确定,H1(z,G0(z,G1(z也可确定。
本文采用等波纹逼近设计法进行滤波器设计。
该方法设计的滤波器呈现等波纹频响特性。
等波纹逼近设计法设计的滤波器具有如下优点:
(1由于误差均匀分布于整个频带,对固定的阶数N,可以得到最优良的滤波特性;
(2通带最平坦,阻带最小衰减达到最大。
Matlab集成了一套强大的滤波器设计工具FDATOOL,可以完成多种滤波器的设计、分析和性能*估。
本文中FPGA硬件实现部分用到的4个FIR滤波器的频率特性曲线见图2。
3系统建模与仿真
DSPBuilder是Altera公司推出的一个面向DSP开发的系统级工具,它是作为Matlab的一个Simulink工具箱(ToolBox出现的。
DSPBui-lder作为Simulink中的一个工具箱,使得在使用FPGA设计DSP系统时完全可以通过Simulink的图形化界面进行,只需简单地进行DSPBuilder工具箱中的模块调用即可。
图3中的基于子带分解的自适应滤波器模块框图系统由分析滤波器子系统h00,h01,h10,h11,综合滤波器子系统g00,g01、抽取,插值,加法,减法器,自适应滤波器等模块组成。
h00和h10是完全一模一样的低通滤波器,h01和h11是完全一模一样的高通滤波器。
h00,h01,g00,g01的幅频特性曲线见图2。
h00对应图2中的h0,h01对应图中的h1,g00对应图中的g0,g01对应图中的g1。
Subysteml,Subyst-em2,Subystem3,Subystem4是自适应滤波器。
Subystem2,Subystem3自适应滤波器的阶数是Subysteml,Subystem4阶数的1/20。
期望信号由sinewavel模块提供,输入信号由Sinewave2和RandomBitstream叠加在一起的信号组成。
系统所需的模块都是直接调用DSPbuilder中的模块。
Subystem2是7阶NLMS算法自适应滤波器,其框图见图4。
如果调高提高收敛速度,则可增加延迟模块、自适应子系统模块,加法器模块即可,但需消耗更多的硬件资源。
自适应滤波器模块主要由延迟单元,权值更新子系统、加法器模块,乘法器模块组成。
它是将抽取过后的信号进行自适应滤波。
FIR滤波器的单位冲激响应是有限长的,其z变换为。
分析和综合滤波器系统主要由延迟单元、加法器、加法器模块组成。
分析和综合滤波器不可能有锐截止的理想特性,必须通过增加阶数来逼近。
分析滤波器子系统h00,h01,h10,h11,综合滤波器子系统g00,g01均采用横截型结构。
权值更新子系统模块主要由乘法器、除法器、加法器、延迟单元、总线类型转换等模块组成。
该子系统主要完成滤波器的权值更新。
w(k+1=w(k+μ/γ+xT(kx(ke(kx(k运算和wi(kxi(k运算。
4仿真
Matlab的Simulink环境具有强大的图形化仿真验证功能,用DSPBuilder模块设计好一个新的模型后,可以直接在Simulink中进行算法级、系统级仿真验证。
该设计的Simulink仿真如图6所示,输出信号含有毛刺,这说明输出信号与期望信号还有一定的稳态误差。
可以通过增加滤波器的阶数,或修改步长控制参数μ,以达到更好的效果。
运行Signalcomplier可将通过Simulink的模块文件(.mdl转换成通过的硬件描述语言VHDL文件;运行Testbench(测试平台可将Sinewavel、Sinewavel+noise、Clock转换成针对HDL仿真器ModelSim的测试文件。
由图7可知输出信号Sineout逐渐趋于稳定,逼近与期望信号sinewavel,因此设计结果满足要求,能够实现自适应过程。
5结语
本文只是从硬件的角度出发设计两个子带自适应滤波器的FPGA实现。
由于分解滤波器组的非理想特性,有必要采取子带间滤波,子带间的滤波可大大提高收敛速度。
子带自适应滤波器的设计和研究过程是比较复杂的,这里就主要的设计研究思想做了一个阐述,鉴于设计中的自适应滤波器的阶数选取相对较小,因而对自适应滤波器的稳态误差有一定的影响,通过增加自适应滤波器的阶数,分析和综合滤波器的阶数、数据的位数来提高精度。
验证码:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自适应 滤波器 FPGA 实现 概要
![提示](https://static.bdocx.com/images/bang_tan.gif)