NLMS算法推导
前情提要归一化最小均方(Normalized Least Mean Square, NLMS)算法是在LMS算法的基础上进行改进,主要改进在于引入了自适应步长的调整机制。详细原理可参考此篇博客传统回声消除算法框架及LMS推导。LMS算法的步长值是$μe(n)x(n)$,步长值会受输入信号$x(n)$大小的影响。NLMS算法根据输入信号$x(n)$的小自适应调整步长值,使得滤波器系数更新的时候能够更好地适应输入信号的动态范围。
NLMS算法推导NLMS算法是最小扰动原理的一种表现形式,从一次迭代到下一次迭代中,自适应滤波器系数$\hat{W}(n)$应当以最小方式改变,用公式(1)描述。而且受到更新的滤波器输出所施加的约束,用公式(2)描述:
\delta \hat{W}(n+1)=\hat{W}(n+1)-\hat{W}(n) \tag{1}
\hat{W}^{\rm{T} }(n+1) \vec X(n)=\hat{d}(n) \tag{2}使用拉格朗日乘子法$^{ [3] }$解决改约束问题,代价函数为:
J(n)=||\delta \hat{W}(n+1)||^2 + \la ...
传统回声消除算法框架及LMS推导
整体框架传统回声消除算法流程如图所示,首先滤波器估计回声路径$\hat{w}(n)$,通过自适应算法使$\hat{w}(n)$不断逼近真实的回声路径$w(n)$。$\hat{w}(n)$与远端信号$x(n)$卷积得到估计的回声$\hat{y}(n)$,从传声器信号$d(n)$中减去估计的回声信号 得到误差信号$e(n)$,误差信号会继续驱动自适应滤波器系数更新。双讲检测模块负责检测双讲,控制滤波器更新。经过自适应滤波处理后只能消除线性回声,残余回声需要通过后滤波模块抑制。
自适应滤波器最小均方(Least Mean Square, LMS)算法维纳解推导设输入信号$X(n)$表示第n时刻自适应滤波器的输入信号,其中$x(n)$为第n个采样时刻的采样值,$N$是滤波器的阶数,式子中$[·]^{\rm{T} }$为转置:
\vec X(n)=[x(n), x(n-1),...,x(n-N+1)]^{\rm{T} } \tag {1}滤波器的权值向量为:
\hat W(n) = {[{\hat w_0}(n),{\hat w_0}(n), \cdots ,{\hat w_{N - 1} ...
自适应滤波器原理
自适应滤波器1.维纳推导
输入信号X(n) 输出信号Y(n) 误差信号e(n)
误差信号均方值最小的准则
缺点:Rxx和Rxd需要计算且计算量大,如果信号非平稳还需重复计算
2.梯度下降法
以MSE为指标,因为滤波器系数滤波器系数的二次函数,因此该函数具有唯一的最小值。一般是采用梯度下降的方法来进行迭代搜索出最小值,一般都只能逼近维纳解,并不等同于维纳解。
梯度求解:
迭代公式:
步长因子μ推导:
3.NLMS推导
LMS的缺点:
w(n)的增量:
受制于以下的约束条件:
拉格朗日乘子法,代价函数为:
对代价函数求导,得到最优解:
代入约束条件,求解λ:
4.MDF滤波器推导
现有的缺点
分块自适应滤波器
按块更新参数不用按点更新提升运算速度
最优步长等于残余回声方差与误差信号方差之比
误差信号e(n)和滤波器系数w的更新方程:
滤波器的系数误差
Speex回声消除原理深度解析 - 爱酷媒 - 博客园 (cnblogs.com)
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment