(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;
(3)根据算法编写相应的MATLAB程序; (4)算法仿真收敛以后,得到增强的语音信号; (5)用matlab指令回放增强后的语音信号; (6)分别对增强前后的语音信号作频谱分析。
2 信号处理基本原理
2.1自适应滤波器组成
自适应滤波器通常由两部分组成,其一是滤波子系统,根据它所要处理的功能而往往有不同的结构形式。另一是自适应算法部分,用来调整滤波子系统结构的参数,或滤波系数。在自适应调整滤波系数的过程中,有不同的准则和算法。算法是指调节自适应滤波系数的步骤,以达到在所描述准则下的误差最小化。自适应滤波器含有两个过程,即自适应过程与滤波过程。前一过程的基本目标是调节滤波系数θ(k),使有意义的目标函数或代价函数F(·)最小化,滤波器输出信号y(n)逐步逼近所期望的参考信号d(n),由两者之间的估计误差e(n)驱动某种算法对滤波(权)系数进行调整,使滤波器处于最佳工作状态以实现滤波过程。但是,由于目标函数F(·)是输入信号x(k)、参考信号d(k)及输出信号y(k)的函数,即F(·)=F[x(k),d(k),y(k)],因此目标函数必须具有以下两个性质:
(1)非负性
F?x?k?,d?k?,y?k???0,(2)最佳性
?y?k?,x?k?,d?k?
F?x?k?,d?k?,y?k???0,当y?k??d?k?时
2.2自适应干扰抵消原理
图2-1自适应干扰抵消原理图
自适应滤波器在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。
自适应噪声抵消技术是自适应信号处理的一个应用分支,其主要理论和框架在1975年提出,经过三十多年的丰富和扩充,现在已经应用到了很多领域,比如车载免提通话设备,房间或无线通讯中的回声抵消在母体上检测胎儿心音,机载电子干扰机收发隔离等,都是用自适应干扰抵消的办法消除混入接收信号中的其他声音信号。如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应用。期望响应是信号和噪声之和,即,自适应处理器的输入是与相关的另一个噪声。当与不相关时,自适应处理器将调整自己的参数,以力图使成为的最佳估计。这样,将逼近信号,且其均方值为最小。噪声就得到了一定程度的抵消。
2.3自适应滤波原理
图2-2 自适应滤波原理图
自适应滤波器由递归计算最小二乘估计(RLS)应用自适应权值控制机制来进行(图3-2)。自适应滤波机制在估计滤波器的权重或者系数时,需要将输入信号转换成所需的信号,通过滤波器的信号输入端口进行连接。该输入信号可以是基于采样的标量或一个单位信道的基于帧的信号。将所需端口的信号必须具有相同的数据类型、帧状态、复杂性,才能作为所需的信号作为输入信号,输出端口输出滤波后的输入信号,它可以是基于样品或帧输入信号。使用递归最小二乘(RLS)算法,从输入信号中减去噪声得到输出信号。RLS自适应线性自适应滤波器使用的输入端口上的参考信号与输出的期望信号端口自动匹配,滤波过程在噪声滤波器内进行去噪。由于通过滤滤器的输入信号进行收敛,过滤的噪声应完全从“信号加噪声”的信号中减去,继而使得输出信号应该只包含原始信号。这样完成一次去噪滤波,可以减少噪声对信道的影响,更有利于进行信道估计。通过上面的分析讨论,将带有噪声的原始信号输入到系统中,通过将线性自适应滤波器与RLS算法相结合进行信道估计,来改进RLS估计算法,减小噪声对信道的影响,这样就能有效的较少信道干扰和载波间干扰,从而优化信道的估计算法。
2.4 RLS算法基本原理
所谓自适应实现是指利用前一时刻获得的滤波器参数,根据估计误差自动调节现时刻的参数,使得某个代价函数达到最小,从而实现最优滤波。
J(n)?E{|?(n)|2}?E{|d(n)?wHu(n)|2} (公式1) 下降算法:最广泛使用的自适应算法包括自适应梯度算法(LMS)、自适应高斯-牛顿算法(RLS)。
RLS算法:(Recursive Least-Squares),递归最小二乘算法。它是利用在已知n-1时滤波器抽头权系数的情况下,通过简单的更新,求出n时刻的滤波器抽头权系数。代价函数:使用指数加权的误差平方和
(0<λ<1,称为遗忘因子)引入遗忘因子作用是离n时刻近的误差附较大权重, 离n时刻远的误差赋较小权重,确保在过去某一段时间的观测数据被“遗忘”,从而使滤波器可以工作在非平稳状态下。
估计误差定义:
((公式4)
可取滤波器的实际输入d*(i)作为期望响应d(i)。将误差代入代价函数得到加权误差平方和的完整表达式:
J(n)???n?i|d(i)?wH(n)*u(i)|2 (公式5)
i?0n (公式2)
公式3)
抽头权向量取的是n时刻的w(n)而不是i时刻的w(i)。i<=n时刻, J(n)???i?0nn?i e(i)???n?i|d(i)?wH(i)u(i)|2 (公式6)
i?02ni?02nJ(n)???i?0nn?i(公式7) ?(i)???n?i|d(i)?wH(n)u(i)|2
故代价函数比更合理。
为了使代价函数取得最小值,可通过对权向量求导:
(公式8)
解得 R(n)w(n?)r(n?)w(?n)?1R(n )r(n)其中 (公式9) 由此可见指数加权最小二乘法的解转化为Wiener滤波器的形式: 下面研究它的自适应更新过程: 由公式9可得
????n?i-1u(i)uH(i)?uH(n)u(n)
i?0n-1 (公式10)
令、、、
原式可化为
由矩阵求逆引理得 A?1?B?BC(D?CHBC)?1CHB
??2R?1(n?1)u(n)uH(n)R?1(n?1) R(n)??R(n?1)??1H?11??u(n)R(n?1)u(n)?1?1?1
令,则P(n)???1[P(?nH?1)kn(u)(Pn?)n,(其中1)]k(n)为增益向量。
(公式11)
P(n)u(n)???1[P(n-1)u(n)?k(n)uH(n)P(n-1)u(n)]
w(n)?R?1(n)r(n)?P(n)r(n)?P(n?1)r(n?1)???1d*(n)[P(n?1)u(n)又由?k(n)uH(n)P(n?1)u(n)]?k(n)uH(n)P(n?1)r(n?1)
?w(n?1)?d*(n)k(n)?k(n)uH(n)w(n?1)化简得:w(n)?w(n-1)?k(n)e*(n) 式中
3 方案设计
3.1最小二乘算法RLS算法实现
图3-1自适应横向滤波器结构框图
自适应横向滤波器有两路输入,一为输入信号{x(n)},含有样本{x(1),x(2),……x(N)};另一为期望信号序列为{d(n)},含有样本{d(1),d(2),……d(N)}如图2所示。滤波器滤波系数是对延迟线抽头信号加权的系数{w1(n),w2(n),w3(n),…Wm (n)},实质上,这也是滤波器的冲激响应序列。这里滤波器长度M必须低于或等于信号数据长度n。滤波器输出信号y(n)等于输入信号x(n)与冲激响应序列Wi (n)的卷积和,如式①。
y(n)??wi(n)x(n?i?1)?wT(n)x(n) ①
i?1M