實驗報告-卡爾曼濾波_第1頁
實驗報告-卡爾曼濾波_第2頁
實驗報告-卡爾曼濾波_第3頁
實驗報告-卡爾曼濾波_第4頁
實驗報告-卡爾曼濾波_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

-----WORD格式--可編輯--專業(yè)資料-------完整版學(xué)習(xí)資料分享----數(shù)字信號處理實驗報告姓名:專業(yè):通信與信息系統(tǒng)學(xué)號:日期:2015.11實驗內(nèi)容任務(wù)一:一連續(xù)平穩(wěn)的隨機信號,自相關(guān)函數(shù),信號為加性噪聲所干擾,噪聲是白噪聲,測量值的離散值為已知,,-3.2,-0.8,-14,-16,-17,-18,-3.3,-2.4,-18,-0.3,-0.4,-0.8,-19,-2.0,-1.2,-11,-14,-0.9,-0.8,10,0.2,0.5,-0.5,2.4,-0.5,0.5,-13,0.5,10,-12,0.5,-0.6,-15,-0.7,15,0.5,-0.7,-2.0,-19,-17,-11,-14,自編卡爾曼濾波遞推程序,估計信號的波形。任務(wù)二:設(shè)計一維納濾波器。產(chǎn)生三組觀測數(shù)據(jù):首先根據(jù)產(chǎn)生信號,將其加噪(信噪比分別為20dB,10dB,6dB),得到觀測數(shù)據(jù),,。估計,,,的AR模型參數(shù)。假設(shè)信號長度為,AR模型階數(shù)為,分析實驗結(jié)果,并討論改變,對實驗結(jié)果的影響。實驗任務(wù)一卡爾曼濾波原理1.1卡爾曼濾波簡介早在20世紀40年代,開始有人用狀態(tài)變量模型來研究隨機過程,到60年代初,由于空間技術(shù)的發(fā)展,為了解決對非平穩(wěn)、多輸入輸出隨機序列的估計問題,卡爾曼提出了遞推最優(yōu)估計理論。它用狀態(tài)空間法描述系統(tǒng),由狀態(tài)方程和量測方程所組成,即知道前一個狀態(tài)的估計值和最近一個觀測數(shù)據(jù),采用遞推的算法估計當前的狀態(tài)值。由于卡爾曼濾波采用遞推法,適合于計算機處理,并且可以用來處理多維和非平穩(wěn)隨機信號,現(xiàn)已廣泛應(yīng)用于很多領(lǐng)域,并取得了很好的結(jié)果。卡爾曼濾波一經(jīng)出現(xiàn),就受到人們的很大重視,并在實踐中不斷豐富和完善,其中一個成功的應(yīng)用是設(shè)計運載體的高精度組合導(dǎo)航系統(tǒng)??柭鼮V波具有以下的特點:算法是遞推的,且狀態(tài)空間法采用在時域內(nèi)設(shè)計濾波器的方法,因而適用于多維隨機過程的估計;離散型卡爾曼算法適用于計算機處理。用遞推法計算,不需要知道全部過去的值,用狀態(tài)方程描述狀態(tài)變量的動態(tài)變化規(guī)律,因此信號可以是平穩(wěn)的,也可以是非平穩(wěn)的,即卡爾曼濾波適用于非平穩(wěn)過程??柭鼮V波采取的誤差準則仍為估計誤差的均方值最小。1.2卡爾曼濾波的狀態(tài)方程和測量方程假設(shè)某系統(tǒng)時刻的狀態(tài)變量為,狀態(tài)方程和量測方程(輸出方程)表示為其中,是狀態(tài)變量;表示輸入信號是白噪聲;是觀測噪聲;是觀測數(shù)據(jù)。為了推導(dǎo)簡單,假設(shè)狀態(tài)變量的增益矩陣不隨時間發(fā)生變化,,都是均值為零的正態(tài)白噪聲,方差分別是和,并且初始狀態(tài)與,都不相關(guān),表示相關(guān)系數(shù)。即:其中1.3卡爾曼濾波的遞推算法卡爾曼濾波采用遞推算法來實現(xiàn),其基本思想是先不考慮輸入信號和觀測噪聲的影響,得到狀態(tài)變量和輸出信號(即觀測數(shù)據(jù))的估計值,再用輸出信號的估計誤差加權(quán)后校正狀態(tài)變量的估計值,使狀態(tài)變量估計誤差的均方值最小。因此,卡爾曼濾波器的關(guān)鍵是計算出加權(quán)矩陣的最佳值。當不考慮觀測噪聲和輸入信號時,狀態(tài)方程和量測方程為顯然,由于不考慮觀測噪聲的影響,輸出信號的估計值與實際值是有誤差的,用表示為了提高狀態(tài)估計的質(zhì)量,用輸出信號的估計誤差來校正狀態(tài)變量其中,為增益矩陣,即加權(quán)矩陣。經(jīng)過校正后的狀態(tài)變量的估計誤差及其均方值分別用和表示,把未經(jīng)校正的狀態(tài)變量的估計誤差的均方值用表示卡爾曼濾波要求狀態(tài)變量的估計誤差的均方值為最小,因此卡爾曼濾波的關(guān)鍵即為通過選擇合適的,使得取得最小值。首先推導(dǎo)狀態(tài)變量的估計值和狀態(tài)變量的的估計誤差,然后計算的均方值,通過化簡,得到一組卡爾曼濾波的遞推公式:假設(shè)初始條件,,,,,,已知,其中,,那么遞推流程如下:,,卡爾曼濾波遞推程序編程思想題目分析由于信號為加性噪聲所干擾,可知,所以又因為噪聲為白噪聲,所以因為,所以由此可知,,即,可得到:,因為抽樣間隔,所以:。(4)因此,所以因此編程分析由上面的分析可知初始條件,,,,已知,在仿真中假設(shè),則,,由以上參數(shù)可得卡爾曼實際遞推公式將得到的公式代入前面分析的遞推公式,即可進行迭代得到結(jié)果。MATLAB源代碼根據(jù)以上分析,編寫matlab程序如下:%%%---------------卡爾曼濾波-----------------%-----說明%X(k+1)=Ak*X(k)+W(k);%Y(k)=Ck*X(k)+V(k)%%clear;clc;%基本參數(shù)值A(chǔ)k=exp(-0.02);Ck=1;Qk=1-exp(-0.04);Rk=1;%初始值設(shè)置X0=0;P0=1;%觀測值y(k)Y=[-3.2-0.8-14-16-17-18-3.3-2.4-18-0.3-0.4-0.8-19-2.0-1.2...-11-14-0.90.8100.20.52.4-0.50.5-130.510-120.5-0.6-15-0.715...0.5-0.7-2.0-19-17-11-14];%數(shù)據(jù)長度N=length(Y);fork=1:Nifk==1%k=1時由初值開始計算P_(k)=Ak*P0*Ak'+Qk;H(k)=P_(k)*Ck'*inv(Ck*P_(k)*Ck'+Rk);X(k)=Ak*X0+H(k)*(Y(k)-Ck*Ak*X0);I=eye(size(H(k)));P(k)=(I-H(k)*Ck)*P_(k);else%k>1時,開始遞推%遞推公式P_(k)=Ak*P(k-1)*Ak'+Qk;H(k)=P_(k)*Ck'*inv(Ck*P_(k)*Ck'+Rk);X(k)=Ak*X(k-1)+H(k)*(Y(k)-Ck*Ak*X(k-1));I=eye(size(H(k)));P(k)=(I-H(k)*Ck)*P_(k);endendM=1:N;T=0.02*M;%作圖,畫出x(t)的波形figure(1)plot(T,Y,'r','LineWidth',1);xlabel('t');ylabel('y(t)');title('卡爾曼濾波-測量信號y(t)波形');grid;figure(2)plot(T,X,'b','LineWidth',1);xlabel('t');ylabel('x(t)');title('卡爾曼濾波-估計信號x(t)波形');grid;實驗結(jié)果實驗任務(wù)二維納濾波器原理維納-霍夫方程當是一個長度為的因果序列(即一個長度為的濾波器)時,維納-霍夫方程表述為定義則可寫成矩陣的形式,即對上式求逆,得到由以上式子可知:若已知期望信號與觀測數(shù)據(jù)的互相關(guān)函數(shù)及觀測數(shù)據(jù)的自相關(guān)函數(shù),則可以通過矩陣求逆運算,得到維納濾波器的最佳解。同時可以看到,直接從時域求解因果的維納濾波器,當選擇的濾波器的長度較大時,計算工作量很大,并且需要計算的逆矩陣,從而要求的存儲量也很大預(yù)測是根據(jù)觀測到對的過去數(shù)據(jù)來估計當前或?qū)淼男盘栔?。維納預(yù)測是已知以前時刻的個數(shù)據(jù),估計當前時刻,或者未來時刻的信號值,即估計,估計得到的結(jié)果仍然要求滿足均方誤差最小的準則。信號可以預(yù)測是由于信號內(nèi)部存在著關(guān)聯(lián)性。預(yù)測是利用數(shù)據(jù)前后的關(guān)聯(lián)性,根據(jù)其中一部分推知其余部分。一步線性預(yù)測的時域解已知,,…,,預(yù)測,假設(shè)噪聲,這樣的預(yù)測成為一步線性預(yù)測。設(shè)定系統(tǒng)的單位脈沖響應(yīng)為。根據(jù)現(xiàn)行系統(tǒng)的基本理論,輸出信號令,則預(yù)測誤差其中要使均方誤差為最小值,要求,,...,又因為,我們可以得到,,...,所以,,...,(1)由于預(yù)測器的輸出是輸入信號的線性組合,所以可得:以上說明誤差信號與輸入信號滿足正交性原理,預(yù)測誤差與預(yù)測信號值同樣滿足正交性原理。預(yù)測誤差的最小均方值(2)由(1)(2)聯(lián)立方程組,寫成矩陣形式可得這就是有名的Yule-Walker(維納-霍夫)方程。實驗編程思想在本實驗中,首先根據(jù)要求產(chǎn)生加噪不同的觀測數(shù)據(jù),,,然后可利用已知條件代入Yule-Walker方程,即可求解AR模型參數(shù)。在本實驗中,假設(shè),信號的初值。MATLAB代碼functionWiener_predict(L,N)%clc;clear;%信噪比SN1=6;SN2=10;SN3=20;%產(chǎn)生信號s(n)a=0.2;W=random('norm',0,1,L,1);S(1)=0;forn=2:LS(n)=a*S(n-1)+W(n);end%產(chǎn)生觀測信號Am=sum(abs(S).^2)/L;P1=Am/(10^(SN1/20));P2=Am/(10^(SN2/20));P3=Am/(10^(SN3/20));V1=random('norm',0,P1,L,1);V2=random('norm',0,P2,L,1);V3=random('norm',0,P3,L,1);forn=1:LX1(n)=S(n)+V1(n);X2(n)=S(n)+V2(n);X3(n)=S(n)+V3(n);endsubplot(2,2,1);plot(S,'b');title('信號S(n)');ylabel('幅度');gridon;subplot(2,2,2);plot(X1,'b');title('觀測信號X1(n)');ylabel('幅度');gridon;subplot(2,2,3);plot(X2,'b');title('觀測信號X2(n)');ylabel('幅度');gridon;subplot(2,2,4);plot(X3,'b');title('觀測信號X3(n)');ylabel('幅度');gridon;fprintf('\n對X1信號來說N階模型參數(shù)和誤差分別為:\n')AR(X1,N);fprintf('\n對X2信號來說N階模型參數(shù)和誤差分別為:\n')AR(X2,N);fprintf('\n對X3信號來說N階模型參數(shù)和誤差分別為:\n')AR(X3,N);functionAR(X,N)L=length(X);rx=zeros(1,N+1);R=zeros(N+1,N+1);fori=1:(N+1)sum=0;forj=1:(L-i+1);sum=sum+X(j)*X(j+i-1);endrx(i)=sum/(L-i+1);endfori=1:N+1R(i,1:(i-1))=rx((i-1):-1:1);R(i,i:(N+1))=rx(1:(N-i+2));endzx=rx(2:(N+1));ap=inv(R(1:N,1:N))*(-zx)';a=[1,ap'];e=rx(1)+zx*ap;disp(['AR系數(shù):',num2str(a)]);disp(['均方誤差:',num2str(e)]);functionWiener_new1(L,N)%%產(chǎn)生三組觀測數(shù)據(jù)%信噪比(dB)SNR1=20;SNR2=10;SNR3=6;%產(chǎn)生信號s(n)a=0.2;W=random('norm',0,1,L,1);S(1)=0;forn=2:LS(n)=a*S(n-1)+W(n);end%加噪聲產(chǎn)生觀測限號X1=awgn(S,SNR1,'measured','linear');X2=awgn(S,SNR2,'measured','linear');X3=awgn(S,SNR3,'measured','linear');%畫出信號圖像subplot(2,2,1);plot(S,'b');title('信號S(n)');ylabel('幅度');gridon;subplot(2,2,2);plot(X1,'b');title('觀測信號X1(n)');ylabel('幅度');gridon;subplot(2,2,3);plot(X2,'b');title('觀測信號X2(n)');ylabel('幅度');gridon;subplot(2,2,4);plot(X3,'b');title('觀測信號X3(n)');ylabel('幅度');gridon;%%估計AR模型參數(shù)fprintf('\n對X1信號來說N階模型參數(shù)和誤差分別為:\n');AR(X1,N);fprintf('\n對X2信號來說N階模型參數(shù)和誤差分別為:\n');AR(X2,N);fprintf('\n對X3信號來說N階模型參數(shù)和誤差分別為:\n');AR(X3,N);functionAR(X,N)L=length(X);rx=zeros(1,N+1);R=zeros(N+1,N+1);fori=1:(N+1)sum=0;forj=1:(L-i+1);sum=sum+X(j)*X(j+i-1);endrx(i)=sum/(L-i+1);endfori=1:N+1R(i,1:(i-1))=rx((i-1):-1:1);R(i,i:(N+1))=rx(1:(N-i+2));endzx=rx(2:(N+1));ap=inv(R(1:N,1:N))*(-zx)';a=[1,ap'];e=rx(1)+zx*ap;disp(['AR系數(shù):',num2str(a)]);disp(['均方誤差:',num2str(e)]);實驗結(jié)果與分析觀測數(shù)據(jù)產(chǎn)生圖1.原始信號與觀測信號(L=50)模型階數(shù)N對實驗結(jié)果的影響N=1對X1信號來說N階模型參數(shù)和誤差分別為:對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.27766均方誤差:1.1289對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.29326均方誤差:0.97283對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.26441均方誤差:1.0531N=2對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.344940.2854均方誤差:1.0958對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.16960.10742均方誤差:1.1639對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.195320.17033均方誤差:0.92331N=3對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.106730.050928-0.19364均方誤差:1.4197對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.354510.62013-0.75585均方誤差:0.95739對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.122210.14428-0.34185均方誤差:0.99317N=5對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.355150.56619-0.540050.65254-0.51327均方誤差:1.2405對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.273430.102270.0289440.21289-0.2508均方誤差:1.3557對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.365940.41414-0.416650.66894-0.60712均方誤差:1.1025分析:由以上實驗結(jié)果可知:在數(shù)據(jù)的長度一定的條件下,改變AR模型的階數(shù),均方誤差會改變,當階數(shù)在某個值時,均方誤差的值最小,因此濾波器的階數(shù)對實驗結(jié)果有很大影響。在本次實驗中,仿真情況有限,在以上仿真中我們可以看到當模型階數(shù)N為某一固定值時,均方誤差明顯較小。信號長度L對實驗結(jié)果的影響L=100對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):10.0229140.0078698均方誤差:1.2033對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):10.0174140.19629均方誤差:1.1607對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.0127890.13086均方誤差:1.1483L=200對X1信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.176790.073726均方誤差:1.3371對X2信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.26490.16751均方誤差:0.99844對X3信號來說N階模型參數(shù)和誤差分別為:AR系數(shù):1-0.271450.17666均方誤差:0.99289分析:由以上仿真結(jié)果可知,實驗中存在誤差,但仍然可以看出,隨著信號長度的增加,均方誤差減小,預(yù)測更準確。L=100,N=1X1信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.15954預(yù)測誤差的最小均方值:1.0612X2信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.1682預(yù)測誤差的最小均方值:1.1551X3信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.1161預(yù)測誤差的最小均方值:1.2883N=2X1信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.206580.25733預(yù)測誤差的最小均方值:0.98824X2信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.105740.15188預(yù)測誤差的最小均方值:1.0349X3信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.173760.23089預(yù)測誤差的最小均方值:1.2323N=5X1信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.215870.22397-0.243060.24469-0.13453預(yù)測誤差的最小均方值:0.88869X2信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.25370.31482-0.190140.122430.040983預(yù)測誤差的最小均方值:0.89859X3信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.278120.33384-0.278810.25752-0.11447預(yù)測誤差的最小均方值:1.0384N=10X1信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.0857460.17042-0.248870.3049-0.290130.34871-0.331290.48704-0.399420.37265預(yù)測誤差的最小均方值:0.96799X2信號:N階模型參數(shù)和預(yù)測誤差的最小均方值分別為:AR系數(shù):1-0.101830.20689-0.18967

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論