吕虹 蒋婷婷 肖曼
摘要:通过VHDL語言对最小均方算法(LMS)进行数学建模设计,然后嵌入到有限长脉冲响应(FIR)滤波器上,在Quartus II上实现了自适应滤波器的设计,然后采用LMS算法的自适应FIR滤波器进行Matlab的仿真验证,并在Altera公司的EP3C55F484C6上进行功能验证,对比验证结果表明该自适应滤波满足滤波功能,能够很好地消除噪声。
关键词:自适应:数字滤波器:最小均方:MATLAB:VHDL
中图分类号:TN911.72文献标识码:A
自适应滤波器在现代数字信号处理中应用极为广泛。滤波器是人们进行设计系统的一种术语,是为了能够从已经失真的信息中过滤出实施者所需要的接近原本的有用内容。由于这个措施在很多方面都会被需要,所以在众多领域都有关于这个系统的研究。
本文通过Matlah程序仿真,来探索LMS算法与FIR的联系,并通过更改步长与滤波器阶数来观察自适应滤波器收敛性能的变化。并利用了Quartus II自下向上的设计方法,选择合适的IP核,完成各项模块的设置后,通过顶层原理图将各模块连接从而实现滤波器的设计。通过Matlab的设计提供加噪声的输人数据以及原始的期望信号,最终在Quallus II上运用波形仿真文件实现滤波器的设计。
1 自适应滤波器的原理
自适应滤波器是数字滤波器的一种。本文研究的是线性滤波器。对于线性自适应滤波器,一般通过输人信号(已经是目标信号加噪声之后)的自相关矩阵、误差函数等的统计特性以某一种准则为标准,使其尽可能靠向目标值的过程。图1为自适应滤波器的结构图,图中x(n)、y(n)和d(n)分别表示n时刻的输人信号、输出信号和期望信号。其中e(n)是期望信号与输出信号的误差,它能够自动地调节自适应滤波器的各项参数,使下一时刻的输出y(n+1)更接近期望信号。
由图1可知自适应滤波器总共由三个部分组成,每个部分具体含义如下:
(1)滤波结构:输人信号经过滤波结构形成滤波输出。IIR滤波器具有不稳定的特点,因此本文采用了FIR滤波器进行滤波结构的设计。
(2)自适应算法:通过规定的规则或函数来更改滤波器的参数,从而可以达到对应的滤波功能。
(3)性能评估:是指期望信号和输出信号的差来定义输出是否满足需求。
针对线性自适应滤波器分为两部分,一部分是滤波,另一部分是自适应。自适应主要体现在:如果信号环境不发生改变时,自适应滤波器能够以逐步迭代的方式来调整滤波器系数直达到最优滤波才会停止迭代。当外部信号环境发生变化时,自适应滤波器会调整滤波系数以跟踪变化。与维纳滤波器相比,自适应滤波器无需事先知道输入信号即可实现最优滤波。
2LMS算法
LMS算法作为线性自适应滤波中的梯度算法,结合最速下降算法,用瞬时平方误差代替均方误差。
2.1维纳滤波器
本文以FIR滤波器结构(也称横向结构)来介绍维纳滤波器。
3.2 VHDL实现主要模块设计
实验在Quartus II上通过VHDL语言编程的主模块功能主要包括了存储、计数、乘法、卷积滤波、权值更新。由于Quartus II对数值的限制,对于Matlah上的数据选择了进行17bit的量化。在实验过程中u值以及信噪比的选择会影响e的值可能还会导致它的高位为零,导致滤波输出为零,所以通过在Matlab)中进行不断尝试,最终选择了信噪比10db,滤波器阶数位128阶,u的值为1/1024。
可以看到其输出是通过输人给地址读出信号,选择了计数器并设置updown端口,用于实现当up为1时地址不断加1.为0时地址减1的效果。如图9:
3.3Quartus II综合实现
Quartus II综合实现部分主要包括2个计数模块,2个rom模块和一个主模块。计数模块是用来进行计数,rom模块中romx用来存储输入信号x,romd用来存储期望信号d,主模块包括了存储、计数、乘法、卷积滤波、权值更新。
然后建立波形文件,其中,clrd保持了20us的“1”,后全为“0”:clrx保持了10us的“1”,后全为“0”;为保证计数器输出一直为加1将updown一直设置为“1”。然后进行功能仿真得出波形如图10.其中x为输入信号,d为期望信号,y为滤波输出。可以看出滤波输出与期望信号相同,这与3.1节Matlab仿真结果是一致的,因此表明本文设计的滤波器功能正确,性能良好。
4 结语
本文提出的是主要基于FIR的自适应滤波器,运用了LMS算法。先在Matlab上进行操作,在达到滤波目的的同时完成对各参数的选择。在实验中,为了方便计算,步长u的值选择2的n次方的倒数,然后再改变信噪比和适合的滤波器阶数,来观察滤波效果。通过观察比较可知当信噪比为10db,滤波器阶数为128阶,u的值为1/1024时滤波效果最好。然后在Quartus II上实现设计,对主模块数选择后,建立顶层原理图后在波形文件中观察输出,完成滤波器的设计。实验结果表明适当改变滤波器的步长和阶数可以去除噪声影响,得到最佳滤波效果。