维纳滤波器matlab程序,维纳滤波原理及其matlab实现
濾波技術是信號分析、處理技術的重要分支,無論是信號的獲取、傳輸,還是信號的處理和交換都離不開濾波技術,它對信號安全可靠和有效靈活地傳遞是至關重要的。信號分析檢測與處理的一個十分重要的內容就是從噪聲中提取信號,實現這種功能的有效手段之一是設計一種具有最佳線性過濾特性的濾波器,當伴有噪聲的信號通過這種濾波器的時候,它可以將信號盡可能精確地重現或對信號做出盡可能精確的估計,而對所伴隨噪聲進行最大限度地抑制。維納濾波器就是這種濾波器的典型代表之一。
1.維納濾波概述
因此維納濾波器又常常被稱為最佳線性過濾與預測或線性最優估計。這里所謂的最佳與最優是以最小均方誤差為準則的。
2.維納-霍夫方程的求解
3.FIR維納濾波器的matlab實現
3.1問題描述
假設一個點目標在x,y平面上繞單位圓做圓周運動,由于外界干擾,其運動軌跡發生了偏移。其中,x方向的干擾為均值為0,方差為0.05的高斯噪聲;y方向干擾為均值為0,方差為0.06的高斯噪聲。
1)產生滿足要求的x方向和y方向隨機噪聲500個樣本;
2)明確期望信號和觀測信號;
3)試設計一FIR維納濾波器,確定最佳傳遞函數:
,并用該濾波器處理觀測信號,得到其最佳估計。(注:自行設定誤差判定閾值,根據閾值確定濾波器的階數或傳遞函數的長度)。
4)分別繪制出x方向和y方向的期望信號、噪聲信號、觀測信號、濾波后信號、最小均方誤差信號的曲線圖;
5)在同一幅圖中繪制出期望信號、觀測信號和濾波后點目標的運動軌跡。
3.2Matlab仿真及運行結果
用Matlab實現FIR濾波器,并將先前隨機產生的500個樣本輸入,得到最佳估計。具體程序如下:
clear;
clf;
sita=0:pi/249.5:2*pi;
xnoise=sqrt(0.05)*randn(1,500);%產生x軸方向噪聲
ynoise=sqrt(0.06)*randn(1,500);%產生y軸方向噪聲
x=cos(sita) xnoise;%產生x軸方向觀測信號
y=sin(sita) ynoise;%產生y軸方向觀測信號
%產生維納濾波中x方向上觀測信號的自相關矩陣
rxx=xcorr(x);
for i=1:100
for j=1:100
mrxx(i,j)=rxx(500-i j);
end
end
xd=cos(sita);
%產生維納濾波中x方向上觀測信號與期望信號的互相關矩陣
rxd=xcorr(x,xd);
for i=1:100
mrxd(i)=rxd(499 i);
end
hoptx=inv(mrxx)*mrxd';%由維納-霍夫方程得到的x方向上的濾波器最優解
fx=conv(x,hoptx);%濾波后x方向上的輸出
nx=sum(abs(xd).^2);
eminx=nx-mrxd*hoptx;%x方向上最小均方誤差
%產生維納濾波中y方向上觀測信號的自相關矩陣
ryy=xcorr(y);
for i=1:100
for j=1:100
mryy(i,j)=ryy(500-i j);
end
end
yd=sin(sita);
%產生維納濾波中y方向上觀測信號與期望信號的互相關矩陣
ryd=xcorr(y,yd);
for i=1:100
mryd(i)=ryd(499 i);
end
hopty=inv(mryy)*mryd';%由維納-霍夫方程得到的y方向上的濾波器最優解
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('最終結果');
運行結果如下:
圖2
x方向及y方向的期望信號、噪聲信號、觀測信號以及濾波后的最小均方誤差如上圖2所示。
圖3
濾波后的到的信號與原始信號和噪聲信號的對比如上圖3所示,濾波后的結果與期望信號還是很接近的,整體上達到了最優濾波的效果。
總結
以上是生活随笔為你收集整理的维纳滤波器matlab程序,维纳滤波原理及其matlab实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器 'XXXXXX' 上的 MSDT
- 下一篇: php针式打印机打多张,如何将多页内容打