引言
在信号处理的·过程中,维纳滤波是一种常用的降噪方法,它能够把实际信号从带有噪声的观测量中提取出来,无论是在语音信号还是图像信号中,维纳滤波都有着十分重要的意义。
维纳滤波器
一段信号的组成,正常情况下来讲,是由纯噪声和纯信号组合而成。如此我们可设时域下的噪声信号为:,其中为滤波器、为采集到的信号。
如此我们便可对式子左边和右边同时进行傅里叶变换转化到频域下进行滤波:
那么,在这个过程中,误差
根据最小均误差准则,要使得滤波器效果达到最佳,即使均方误差最小,可得下式:
展开式子并令 、
对原式进行求导得:
可得滤波器在频域下的表达形式为:
至此,滤波器的推导过程已经完成一半
又由于
,其中为噪声,且
可得
最终得出维纳滤波器为:
下面附上一段实例代码:
function [S_enhec, H] = wiener_filter(noisy, clean, noise)
alpha = 1;
beta = 1;
S_noisey = fft(noisy);
S_noise = fft(noise);
S_clean = fft(clean);
Pxx = mean(abs(S_clean))^2;
Pnn = mean(abs(S_noise))^2;
H = (Pxx/(Pxx+alpha*Pnn))^beta;
S_enhec = S_noisey*H;
S_enhec = ifft(S_enhec);