语音降噪-维纳滤波

语音降噪-维纳滤波

维纳滤波原理

输入信号通过一个线性时不变系统之后产生一个输出信号,使得输出信号尽量逼近期望信号,使其估计误差最小化,能够最小化这个估计误差的最优滤波器称为维纳滤波器。

时频域维纳滤波器

假定输入信号 y ( n ) y(n) y(n)和期望信号 d ( n ) d(n) d(n),定义估计的误差信号为 e ( n ) e(n) e(n)
e ( n ) = d ( n ) − d ^ ( n ) = d ( n ) − h T y e(n) = d(n) - \widehat{d}(n) \\=d(n) - \textbf{h}^T\textbf{y} e(n)=d(n)−d (n)=d(n)−hTy
其中 h T = [ h 0 , h 1 , . . . , h M − 1 ] \textbf{h}^T=[h_0,h_1,...,h_{M-1}] hT=[h0​,h1​,...,hM−1​] 是滤波器系数向量, y T = [ h n , h n − 1 , . . . , h n − M + 1 ] \textbf{y}^T=[h_{n},h_{n-1},...,h_{n-M+1}] yT=[hn​,hn−1​,...,hn−M+1​]是输入向量。最小化 e ( n ) e(n) e(n)的均方值,
J = E [ e 2 ( n ) ] = E ( d ( n ) − h T y ) 2 = E [ d 2 ( n ) ] + h T E [ y y T ] h − 2 h T E [ d ( n ) y ] = E [ d 2 ( n ) ] + h T R y y h − 2 h T r y d J = E{[e^2(n)]}=E(d(n) - \mathbf{h}^T\mathbf{y})^2 \\=E{[d^2(n)]} + \mathbf{h}^TE[\mathbf{y}\mathbf{y}^T]\mathbf{h} - 2\mathbf{h}^TE{[d(n)\mathbf{y}]} \\=E{[d^2(n)]} + \mathbf{h}^TR_{yy}\mathbf{h} - 2\mathbf{h}^Tr_{\mathbf{y}d} J=E[e2(n)]=E(d(n)−hTy)2=E[d2(n)]+hTE[yyT]h−2hTE[d(n)y]=E[d2(n)]+hTRyy​h−2hTryd​
其中 r y d r_{\textbf{y}d} ryd​是输入和期望信号的互协方差矩阵, R y y R_{yy} Ryy​ 是输入信号的自协方差矩阵。
利用矩阵求导原理,求 J J J对向量 h h h的导数,得:
∂ J ∂ h = − 2 r y d + 2 h T R \frac{\partial J}{\partial \mathbf{h}} = -2 r_{\mathbf{y}d} + 2\mathbf{h}^TR ∂h∂J​=−2ryd​+2hTR
另导数为0,求得 h ∗ = R − 1 r y d h^{*} = R^{-1}r_{\mathbf{y}d} h∗=R−1ryd​

频域维纳滤波器

利用时域卷积等价于频域相乘的性质,可以得到误差的频域表达式为
E ( w k ) = D ( w k ) − D ^ ( w k ) = D ( w k ) − H ( w k ) Y ( w k ) E(w_k) = D(w_k) - \widehat{D}(w_k) \\= D(w_k) - H(w_k) Y(w_k) E(wk​)=D(wk​)−D (wk​)=D(wk​)−H(wk​)Y(wk​)
按照时域维纳滤波器一样的推导方式,可以得到最优维纳滤波器的频域表达式为
H ( w k ) = P d y ( w k ) P y y ( w k ) H(w_k) = \frac{P_{dy}(w_k)}{P_{yy}(w_k)} H(wk​)=Pyy​(wk​)Pdy​(wk​)​
其中 P d y P_{dy} Pdy​ 是 y ( n ) y(n) y(n)和 d ( n ) d(n) d(n)的互功率谱, P y y P_{yy} Pyy​ 是 y ( n ) y(n) y(n)的功率谱。

语音降噪

在语音降噪中,一般假设输入信号 y ( n ) y(n) y(n)由干净语音 x ( n ) x(n) x(n)和噪声信号 n ( n ) n(n) n(n)组成,
y ( n ) = x ( n ) + n ( n ) y(n) = x(n) + n(n) y(n)=x(n)+n(n)
且假设噪声和语音不相关。
利用维纳滤波方法降噪时需要计算 R y y R_{yy} Ryy​或者 P y y P_{yy} Pyy​,由于假设噪声和语音不相关,则
R y y = R x x + R n n P y y = P x x + P n n R y x = R x x P y x = P x x R_{yy} = R_{xx} + R_{nn} \\P_{yy} = P_{xx} + P_{nn}\\R_{yx} = R_{xx} \\ P_{yx} = P_{xx} Ryy​=Rxx​+Rnn​Pyy​=Pxx​+Pnn​Ryx​=Rxx​Pyx​=Pxx​
最优的时频域滤波器估计可以分别表示为:
H ( w k ) = P x x ( w k ) P x x ( w k ) + P n n ( w k ) H(w_{k}) = \frac{P_{xx}(w_k)}{P_{xx}(w_k) + P_{nn}(w_k)} H(wk​)=Pxx​(wk​)+Pnn​(wk​)Pxx​(wk​)​
h = R x x R x x + R n n \mathbf{h} = \frac{R_{xx}}{R_{xx} + R_{nn}} h=Rxx​+Rnn​Rxx​​

上一篇:PostgreSQL WAL 文件数量长期持续增加问题排查


下一篇:剑指offer13.机器人的运动范围(中等)