濾波技術(shù)是信號分析、處理技術(shù)的重要分支,無論是信號的獲取、傳輸,還是信號的處理和交換都離不開濾波技術(shù),它對信號安全可靠和有效靈活地傳遞是至關(guān)重要的。信號分析檢測與處理的一個十分重要的內(nèi)容就是從噪聲中提取信號,實現(xiàn)這種功能的有效手段之一是設(shè)計一種具有最佳線性過濾特性的濾波器,當(dāng)伴有噪聲的信號通過這種濾波器的時候,它可以將信號盡可能精確地重現(xiàn)或?qū)π盘栕龀霰M可能精確的估計,而對所伴隨噪聲進行最大限度地抑制。維納濾波器就是這種濾波器的典型代表之一。
1.維納濾波概述
因此維納濾波器又常常被稱為最佳線性過濾與預(yù)測或線性最優(yōu)估計。這里所謂的最佳與最優(yōu)是以最小均方誤差為準則的。
2.維納-霍夫方程的求解
3.FIR維納濾波器的matlab實現(xiàn)
3.1問題描述
假設(shè)一個點目標在x,y平面上繞單位圓做圓周運動,由于外界干擾,其運動軌跡發(fā)生了偏移。其中,x方向的干擾為均值為0,方差為0.05的高斯噪聲;y方向干擾為均值為0,方差為0.06的高斯噪聲。
1) 產(chǎn)生滿足要求的x方向和y方向隨機噪聲500個樣本;
2) 明確期望信號和觀測信號;
3) 試設(shè)計一FIR維納濾波器,確定最佳傳遞函數(shù):
,并用該濾波器處理觀測信號,得到其最佳估計。(注:自行設(shè)定誤差判定閾值,根據(jù)閾值確定濾波器的階數(shù)或傳遞函數(shù)的長度)。
4) 分別繪制出x方向和y方向的期望信號、噪聲信號、觀測信號、濾波后信號、最小均方誤差信號的曲線圖;
5) 在同一幅圖中繪制出期望信號、觀測信號和濾波后點目標的運動軌跡。
3.2 Matlab仿真及運行結(jié)果
用Matlab實現(xiàn)FIR濾波器,并將先前隨機產(chǎn)生的500個樣本輸入,得到最佳估計。具體程序如下:
clear;
clf;
sita=0:pi/249.5:2*pi;
xnoise=sqrt(0.05)*randn(1,500);%產(chǎn)生x軸方向噪聲
ynoise=sqrt(0.06)*randn(1,500);%產(chǎn)生y軸方向噪聲
x=cos(sita) xnoise;%產(chǎn)生x軸方向觀測信號
y=sin(sita) ynoise;%產(chǎn)生y軸方向觀測信號
%產(chǎn)生維納濾波中x方向上觀測信號的自相關(guān)矩陣
rxx=xcorr(x);
for i=1:100
for j=1:100
mrxx(i,j)=rxx(500-i j);
end
end
xd=cos(sita);
%產(chǎn)生維納濾波中x方向上觀測信號與期望信號的互相關(guān)矩陣
rxd=xcorr(x,xd);
for i=1:100
mrxd(i)=rxd(499 i);
end
hoptx=inv(mrxx)*mrxd';%由維納-霍夫方程得到的x方向上的濾波器最優(yōu)解
fx=conv(x,hoptx);%濾波后x方向上的輸出
nx=sum(abs(xd).^2);
eminx=nx-mrxd*hoptx;%x方向上最小均方誤差
%產(chǎn)生維納濾波中y方向上觀測信號的自相關(guān)矩陣
ryy=xcorr(y);
for i=1:100
for j=1:100
mryy(i,j)=ryy(500-i j);
end
end
yd=sin(sita);
%產(chǎn)生維納濾波中y方向上觀測信號與期望信號的互相關(guān)矩陣
ryd=xcorr(y,yd);
for i=1:100
mryd(i)=ryd(499 i);
end
hopty=inv(mryy)*mryd';%由維納-霍夫方程得到的y方向上的濾波器最優(yōu)解
fy=conv(y,hopty);%濾波后y方向上的輸出
ny=sum(abs(yd).^2);
eminy=ny-mryd*hopty;%y方向上最小均方誤差
subplot(2,4,1)
plot(xd);
title('x方向期望信號');
subplot(2,4,2)
plot(xnoise);
title('x方向噪聲信號');
subplot(2,4,3)
plot(x);
title('x方向觀測信號');
subplot(2,4,4)
n=0:500;
plot(n,eminx);
title('x方向最小均方誤差');
subplot(2,4,5)
plot(yd);
title('y方向期望信號');
subplot(2,4,6)
plot(ynoise);
title('y方向噪聲信號');
subplot(2,4,7)
plot(y);
title('y方向觀測信號');
subplot(2,4,8)
plot(n,eminy);
title('y方向最小均方誤差');
figure;
plot(xd,yd,'k');
hold on;
plot(x,y,'b:');
hold on;
plot(fx,fy,'g-');
title('最終結(jié)果');
運行結(jié)果如下:
圖2
x方向及y方向的期望信號、噪聲信號、觀測信號以及濾波后的最小均方誤差如上圖2所示。
圖3
濾波后的到的信號與原始信號和噪聲信號的對比如上圖3所示,濾波后的結(jié)果與期望信號還是很接近的,整體上達到了最優(yōu)濾波的效果。