基于LMS算法滤波的语音降噪研究

2018-07-27 01:30郭一豪
电子制作 2018年13期
关键词:滤波器频谱滤波

郭一豪

(浙江省富阳中学,浙江杭州,311401)

0 引言

随着以语音业务为主的现代通信网络的大力推广和普及,语音通信广泛应用于各个场所,为人们提供便利生活。但是系统受到通信环境的影响,语音信号常常被各种噪声干扰,甚至被其完全淹没,降低了语音通信质量,大大影响用户的使用体验。因此出于抑制噪声干扰和提高语音质量的目的,通信系统往往加入自适应滤波器来增强语音。在本文中本设计采用LMS算法作为语音降噪的基本原理,通过设计自适应滤波的仿真方法实现抑制噪声和增强语音的目标。

1 LMS自适应滤波设计

自适应滤波器的工作原理依据外部信号特性动态地改变其滤波器相关参数,来实现动态变化滤波器的中心频率来实现最佳的滤波状态。因此自适应滤波器的关键就是系通过自适应算法来实现最佳滤波效果,它可以根据的外界输入信号变化情况来实时地改变滤波器的相关参数来达到最佳滤波。其中本文提到的LMS算法是匹配自适应滤波器的自适应算法中最为常用的的算法,它是通过依据外界输入信号不断调整滤波器的权值参数,最终使得滤波器的输出信号与期望信号之间的均方误差最小。基于LMS的语音增强算法具备了运算计算量少,系统易于实现等优点,因此基于LMS的语音增强算法广泛应用到语音通信中。其结构如图1所示。

图1 自适应滤波器原理图

在本文中自适应滤波一般分为滤波过程部分及滤波器参数调整部分。其中x(n)为输入信号,y(n)为输出信号,d(n)为参考信号, e(n)为y(n)与d(n)的误差信号。自适应滤波器的滤波系数受误差信号e(n)控制。本文采用自适应横向FIR滤波器的结构,如图2所示。

在这里假设系统的输入脉冲响应为

输入采样信号为:

误差信号为:

整个系统的优化主要是对最小化性能指标J(k)进行优化:

求J(k)的极值,可以对J(k)求导

把J(k)的表达式代入,得:

由此得出滤波器系数的最优向量:

在这里构建输入信号自相关矩阵 Cxx(x)和输入信号与参考信号的相关矩阵 Cyx(k),如下所示,维数都为(n,n):

系数最优向量也可以写成如下形式:

那么输入信号自相关矩阵 Cxx(x)和输入信号与参考信号的相关矩阵 Cyx(k)的递归表达式如下:

把 Cxx(x)递归表达式代入系数向量表达式,得:

考虑到

可以记

用前面得到的表达式求出cxx(k-1),并代入上式:

则滤波器系数的递归关系式可以记作:

其中

在这里e(k)表示的是先验误差。考虑到先验误差e(k)是通过前一时刻的采样系数推算出来的,因此必须考虑到在实际应用的h(k)计算的复杂程度。用δ,I代换 cxx(k),其中:δ为自适应梯度,I为辨识矩阵(n,n)。

这时

这就是一组最小均方准则问题。

2 LMS算法设计

LMS算法的工作原理是依据最小均方误差准则对滤波器系数依据外界输入信号而不断进行修正,从而实现自动达到最佳的滤波状态。由于考虑到LMS算法是从滤波器的初始化值随着输入信号的状态动态调整来获得系统最佳的滤波系数,因此必须考虑到系统进入最佳状态前的调整时间。调整时间可以通过LMS算法步长因子μ进行有效控制,μ的最大取值在这里选择为R的迹。权系数更新公式为:

结合上述LMS算法的原理及公式,本文设计的基于LMS自适应滤波器步骤如下所示:

(1)设置LMS滤波器的初始化权系数 W(0) = 0,将收敛因子设置为u;

(2)计算输入序列经过滤波器后的实际输出值:

(3)计算估计误差 e(n ) =xd(n ) −out(n);

(4)计算n+1阶的滤波器系数

(5)重复(2)--(4)过程。

3 MATLAB仿真分析

语音增强的主要目标是通过对含噪语音信号进行降噪处理,在增强目标语音的质量的同时还要消除语音信号中噪声干扰。在语音处理应用过程中最常见方法是用LMS自适应滤波算法来对语音进行处理。本章节利用以上相关知识并对语音增强进行仿真,并对仿真结果进行相关研究和分析。

■3.1 实验程序设计

在本文中仿真设计中,选取的含噪语音信号是由目标语音信号和高斯噪声信号叠加组成的。在本文设计的程序按照上述LMS算法进行语音增强程序的编程工作,在编程设计过程中有以下几点需要注意:

(1)滤波器的初始化。因为LMS算法滤波器的权系数是依据输入语音信号序列来实现自动更新,因此必须考虑因滤波器存储器中的数值与系统更新数之间的关系,避免因输入序列长度过短而造成系统未达到稳定而造成较大误差。

(2)注意输入语音信号的长度。考虑到自适应滤波器达到稳定状态前是需要一定的时间,因此必须考虑到输入序列的长度要大于滤波器的激励时间,否则该滤波器无法达到目标要求。

(3)要求系统输出在lms算法中是在循环程序内实现的。

■3.2 实验结果

由LMS语音算法可知,收敛因子直接影响到滤波器阶数,收敛因子对于整个程序结果运行起到非常重要的作用。在本文设计的LMS语音算法程序中,设计的滤波器阶数在这里设置为20,并且将收敛因子设置为0.05。

在这里,本文将程序运行的结果展示如图3-图5所示。

■3.3 实验结果分析

将混入噪声的样本语音信号添加到本文程序中作为测试样本。在程序开始运行的时候,播放出的语音中能够明显听到混杂在语音信号的噪声杂音。但是随着播放的进行,语音中的噪声越来越小。当进行一段段时间后,此时播放的语音中的噪声几乎消失,可以清晰地听到声音,直至语音播放结束。本次语音增强实验实现了本文的设计目标。

图3 信号波形图

图4 频谱分析图

图5 期望信号与频谱

图3展示了含噪语音信号、噪声信号及滤波后输出信号的频谱图,分别展示了在不同时间阶段下三种信号的频谱变化情况。可以看出经过滤波后输出信号相较于原始的含噪信号,滤波后输出信号的噪声信号几乎被消除掉。在这里可以认为本文设计的程序基本实现了论文的设计要求。

从图4可以得知,输出信号与输入信号在频谱域上的范围几乎相同,只是输出信号要比输入信号的平均功率要低一些。在对滤波后输出信号中的噪声信号进行观察分析,可以得知输出信号中的噪声信号功率几乎为零,即噪声已经几乎被完全消除。因此可以得知基于LMS算法滤波的语音降噪已经达成了本文的设计目标。

在整个调试过程中。本文可以通过以下方法可以有效改善LMS滤波器的滤波性能。

(1)在保证收敛速度的前提下,可以通过恰当降低收敛因子的大小,其目的就是提高滤波器的阶数可以改善滤波器输出波的平滑型。

(2)考虑到过小的收敛因子会在滤波器达到平衡之前会经历很长的时间,这会造成收敛速度和滤波效果之间的矛盾。因此在选择收敛因子的大小是必须要考虑到达到稳态的时间。

4 总结

在本文课题的设计过程中,本文工作先从LMS语音降噪的工作原理及算法研究等内容入手,利用Matla仿真工具对LMS语音降噪算法进行仿真设计,同时并对仿真结果进行频谱及功率的相关分析。同时结合输入含噪信号、噪声信号及滤波后输出信号等信号的频谱及功率等方面分析语音增强算法原理,这将有助于了解含噪信号进行语音增强过程中在LSM自适应滤波过程的频谱变化情况。

在对本文仿真结果分析,可以得知输出信号中仍存在这少量的噪声。这是因为本文仿真采用的语音文件不具备代表性,而设计的程序设置的收敛因子过小,导致了程序迭代次数较多而没有达到最佳的迭代结果。总体来说本文的仿真结果基本符合设计目标,基本实现了LMS语音降噪算法对语音增强的目标。

猜你喜欢
滤波器频谱滤波
船岸通信技术下舰船导航信号非线性滤波
电机在60Hz运行过程中的故障频谱分析
基于多模谐振器的超宽带滤波器设计
一种考虑GPS信号中断的导航滤波算法
从滤波器理解卷积
高效LCL滤波电路的分析与设计
Comparison of decompression tubes with metallic stents for the management of right-sided malignant colonic obstruction
一种微带交指滤波器的仿真
FCC启动 首次高频段5G频谱拍卖
动态频谱共享简述