濾波演算法的研究
㈠ 自適應濾波的幾種典型的自適應濾波演算法
對自適應濾波演算法 的研究是當今自適應信號處理中最為活躍的研究課題之一。自適應濾波演算法廣泛應用於系統辨識、回波消除、自適應譜線增強、自適應信道均衡、語音線性預測、自適應天線陣等諸多領域中。總之,尋求收斂速度快,計算復雜性低,數值穩定性好的自適應濾波演算法是研究人員不斷努力追求的目標。雖然線性自適應濾波器和相應的演算法具有結構簡單、計算復雜性低的優點而廣泛應用於實際,但由於對信號的處理能力有限而在應用中受到限制。由於非線性自適應濾波器,如Voletrra濾波器和基於神經網路的自適應濾波器,具有更強的信號處理能力,已成為自適應信號處理中的一個研究熱點。其中較典型的幾種演算法包括: LMS自適應濾波演算法 RLS自適應濾波演算法 變換域自適應濾波演算法 仿射投影演算法 共扼梯度演算法 基於子帶分解的自適應濾波演算法 基於QR分解的自適應濾波演算法 演算法性能評價
變步長的自適應濾波演算法 雖然解決了收斂速度、時變系統跟蹤速度與收斂精度方面對演算法調整步長因子u的矛盾,但變步長中的其它參數的選取還需實驗來確定,應用起來不太方便。對RLS演算法的各種改進,其目的均是保留RLS演算法收斂速度快的特點而降低其計算復雜性。變換域類演算法亦是想通過作某些正交變換使輸入信號自相關矩陣的特徵值發散程度變小,提高收斂速度。而仿射投影演算法的性能介於LMS演算法和RLS演算法之間。共扼梯度自適應濾波演算法的提出是為了降低RLS類演算法的復雜性和克服某些快速RLS演算法存在的數值穩定性問題。信號的子帶分解能降低輸入信號的自相關矩陣的特徵值發散程度,從而加快自適應濾波演算法的收斂速度,同時便於並行處理,帶來了一定的靈活性。矩陣的QR分解具有良好的數值穩定性。
㈡ 最近寫關於粒子濾波方面的論文,想知道他的幾種演算法與原演算法之間進行了哪些修改。
粒子濾波(PF: Particle Filter)的思想基於蒙特卡洛方法(Monte Carlo methods),它是利用粒子集來表示概率,可以用在任何形式的狀態空間模型上。其核心思想是通過從後驗概率中抽取的隨機狀態粒子來表達其分布,是一種順序重要性采樣法(Sequential Importance Sampling)。簡單來說,粒子濾波法是指通過尋找一組在狀態空間傳播的隨機樣本對概率密度函數 進行近似,以樣本均值代替積分運算,從而獲得狀態最小方差分布的過程。這里的樣本即指粒子,當樣本數量N→∝時可以逼近任何形式的概率密度分布。
盡管演算法中的概率分布只是真實分布的一種近似,但由於非參數化的特點,它擺脫了解決非線性濾波問題時隨機量必須滿足高斯分布的制約,能表達比高斯模型更廣泛的分布,也對變數參數的非線性特性有更強的建模能力。因此,粒子濾波能夠比較精確地表達基於觀測量和控制量的後驗概率分布,可以用於解決SLAM問題。
粒子濾波的應用
粒子濾波技術在非線性、非高斯系統表現出來的優越性,決定了它的應用范圍非常廣泛。另外,粒子濾波器的多模態處理能力,也是它應用廣泛有原因之一。國際上,粒子濾波已被應用於各個領域。在經濟學領域,它被應用在經濟數據預測;在軍事領域已經被應用於雷達跟蹤空中飛行物,空對空、空對地的被動式跟蹤;在交通管制領域它被應用在對車或人視頻監控;它還用於機器人的全局定位。
粒子濾波的缺點
雖然粒子濾波演算法可以作為解決SLAM問題的有效手段,但是該演算法仍然存在著一些問題。其中最主要的問題是需要用大量的樣本數量才能很好地近似系統的後驗概率密度。機器人面臨的環境越復雜,描述後驗概率分布所需要的樣本數量就越多,演算法的復雜度就越高。因此,能夠有效地減少樣本數量的自適應采樣策略是該演算法的重點。另外,重采樣階段會造成樣本有效性和多樣性的損失,導致樣本貧化現象。如何保持粒子的有效性和多樣性,克服樣本貧化,也是該演算法研究重點。
粒子濾波的發展
1.MCMC改進策略
馬爾可夫鏈蒙特卡洛(MCMC)方法通過構造Markov鏈,產生來自目標分布的樣本,並且具有很好的收斂性。在SIS的每次迭代中,結合MCMC使粒子能夠移動到不同地方,從而可以避免退化現象,而且Markov鏈能將粒子推向更接近狀態概率密度函數(probability density function,(PDF))的地方,使樣本分布更合理。基於MCMC改進策略的方法有許多,常用的有Gibbs采樣器和MetropolisHasting方法。
2.Unscented粒子濾波器(UPF)
Unscented Kalman濾波器(UKF)是Julier等人提出的。EKF(Extended Kalman Filter)使用一階Taylor展開式逼近非線性項,用高斯分布近似狀態分布。UKF類似於EKF,用高斯分布逼近狀態分布,但不需要線性化只使用少數幾個稱為Sigma點的樣本。這些點通過非線性模型後,所得均值和方差能夠精確到非線性項Taylor展開式的二階項,從而對非線性濾波精度更高。Merwe等人提出使用UKF產生PF的重要性分布,稱為Unscented粒子濾波器(UPF),由UKF產生的重要性分布與真實狀態PDF的支集重疊部分更大,估計精度更高。
3.Rao-Blackwellised粒子濾波器(RBPF)
在高維狀態空間中采樣時,PF的效率很低。對某些狀態空間模型,狀態向量的一部分在其餘部分的條件下的後驗分布可以用解析方法求得,例如某些狀態是條件線性高斯模型,可用Kalman濾波器得到條件後驗分布,對另外部分狀態用PF,從而得到一種混合濾波器,降低了PF采樣空間的維數,RBPF樣本的重要性權的方差遠遠低於SIR方法的權的方差,為使用粒子濾波器解決 SLAM問題提供了理論基礎。而Montemerlo等人在2002年首次將Rao-Blackwellised粒子濾波器應用到機器人SLAM中,並取名為FastSLAM演算法。該演算法將SLAM問題分解成機器人定位問題和基於位姿估計的環境特徵位置估計問題,用粒子濾波演算法做整個路徑的位姿估計,用EKF估計環境特徵的位置,每一個EKF對應一個環境特徵。該方法融合EKF和概率方法的優點,既降低了計算的復雜度,又具有較好的魯棒性。
最近幾年,粒子方法又出現了一些新的發展,一些領域用傳統的分析方法解決不了的問題,現在可以藉助基於粒子模擬的方法來解決。在動態系統的模型選擇、故障檢測、診斷方面,出現了基於粒子的假設檢驗、粒子多模型、粒子似然度比檢測等方法。在參數估計方面,通常把靜止的參數作為擴展的狀態向量的一部分,但是由於參數是靜態的,粒子會很快退化成一個樣本,為避免退化,常用的方法有給靜態參數人為增加動態雜訊以及Kernel平滑方法,而Doucet等提出的點估計方法避免對參數直接采樣,在粒子框架下使用最大似然估計(ML)以及期望值最大(EM)演算法直接估計未知參數。
㈢ 減少雜訊的匹配濾波演算法
(1)傳統匹配濾波演算法
Rickett et al.(2001)給出了匹配濾波簡要的公式及運算元長度設計標准,本節給出了更為詳細的匹配 濾波公式,並給出推導公式基本條件和結果。
設同一地區不同時期Y1,Y2得到的地震數據分別為GY1(t),GY2(t),取Y1年份的地震記錄為參
考地震道,使Y2年份相應的地震記錄與之匹配。選取歸一化運算元p使得目標泛函:
海上時移地震油藏監測技術
極小。最終得到關於求解匹配濾波器{P(m),m=1,2,…,L}的L個方程的方程組:
海上時移地震油藏監測技術
為意義更明確,對上面的公式進一步簡化,令
海上時移地震油藏監測技術
上兩式中:RY2Y2(m-n)為時間延遲為m-n的時期Y2地震記錄在設計窗口中的自相關;RY1Y2(n)為時間延遲為n的時期Y1與時期Y2地震記錄在設計窗口中的互相關,於是方程(4.8)可以進一步寫成:
海上時移地震油藏監測技術
求解方程組(4.11)得到匹配濾波器運算元{P(m),m=1,2,…,L},用
海上時移地震油藏監測技術
校正相應的地震剖面。通過實際數據處理結果驗證了上述推導的正確性和方法的有效性。
方程(4.11)寫成矩陣形式:
海上時移地震油藏監測技術
式中:M為時期Y2地震記錄在設計窗口中的自相關序列組成的Toeplitz矩陣,R為時期Y1與時期Y2地 震記錄在設計窗口中的互相關序列向量。求解方程(4.13)可採用Levinson遞推演算法,計算效率高。
為了減少噪音的影響,通常引入阻尼項,方程(4.13)變為
海上時移地震油藏監測技術
式中:μ為很小的數,通常為可設為0.01或0.001。
實際應用中,可以發現式(4.13)受雜訊的影響很大,不穩定。雖然加入阻尼項後結果有所改善,但 如何選取合適阻尼因子又是一個難題。為此推導新的匹配濾波表達形式,尋求更穩健的求解方法。
(2)新匹配濾波公式
同樣設同一地區不同時期Y1,Y2得到的地震數據分別為GY1(t),GY2(t),取Y1年份的地震記錄 為參考地震道,使Y2年份相應的地震記錄與之匹配。則匹配過程可描述為
海上時移地震油藏監測技術
其中M為GY2組成的褶積矩陣。如果設地震道的采樣點數為n,設計濾波器f長度為m,M則為(2×n-1)×m矩陣,為保持矩陣維數相同,一種方法是將GY1後面補零為(2×n-1)×1向量,另一種方法是取 矩陣M的前n×m項。如果採用第一種方法,可以驗證得到的公式與(4.13)式相同。在此採用後一種方 法,得到新的匹配濾波方程。只要設計濾波器f足夠長,總能滿足能量差e(f)最小,根據范數定義:
海上時移地震油藏監測技術
求解能量差e(f)最小問題可轉化為
海上時移地震油藏監測技術
即對濾波因子向量求導,最終可歸結為求解線性方程:
海上時移地震油藏監測技術
如果記A=MTM,b=MTGY1,方程(4.18)轉化為
海上時移地震油藏監測技術
(4.19)式形式上與(4.13)式類似,內容不同,不再是Toeplitz矩陣,因此不能應用Levinson遞推演算法求解。因此,引入奇異值分解方法求解方程(4.19)。
(3)基於奇異值分解的匹配濾波演算法
矩陣的奇異值分解,是矩陣計算中一套很有用的技術。它可以有效地處理系數矩陣是奇異的或者接 近奇異的方程組。對於矩陣A,如果A∈Rm×n,並且A的秩為r,總有
海上時移地震油藏監測技術
其中, V為正交陣。 ,並且 為A 的奇異值。
公式(4.20)即為矩陣A的奇異值分解,根據正交矩陣的性質:
海上時移地震油藏監測技術
很容易表示出矩陣A的逆矩陣
海上時移地震油藏監測技術
將式(4.22)帶入式(4.19)中,得到濾波因子的表達式為
海上時移地震油藏監測技術
實際計算中,當A是奇異陣出現奇異值,或A接近奇異或病態矩陣時,(4.23)式的計算過程就無法進行。這時可將出現的奇異項 (σk是零,或者數值很小)簡單地替換成零或很小的常數,通過這種方法能得 到方程穩定的解。
對於實際含有雜訊的信號,信號能量主要分布在奇異值大的分量上,因此去除小奇異值同時能消除 雜訊影響。通常可選取某一能量百分比的奇異值作為去除的閾值,以這種方式既能克服A接近奇異或病 態矩陣的影響,又能減小雜訊的影響,使濾波因子穩健。
(4)模擬數據驗證
模擬得到一組存在時間、振幅、頻率、相位差異的信號,作為基測線與監測測線地震道,對監測測 線地震道加入不同比例的隨機雜訊,組成驗正演算法有效性的數據體,如圖4.10所示。分別用傳統的匹配 濾波方法和重新推導的基於奇異值分解的匹配濾波方法進行匹配處理,比較匹配後基測線與監測測線振 幅差異,結果見圖4.11和圖4.12。可以看出,傳統匹配濾波公式的計算結果受雜訊的影響很大,而基於 奇異值分解的匹配濾波方法具有很好的抗雜訊能力。
圖4.10 模擬地震記錄(從上至下依次為加入0%,10%,20%,30%雜訊的信號)
圖4.11 傳統方法匹配結果
圖4.12 基於奇異值分解方法匹配結果
(5)實際數據驗證
選擇一塊同一地區兩次不同時間測得的兩條二維測線;選取油藏上方時間長度為300ms的窗口作為 濾波因子設計窗口,並以抽取其中139道構成驗證互均衡演算法的數據體(圖4.13,圖4.14)。分別採用 傳統匹配濾波公式與基於奇異值分解的匹配濾波兩種方法進行校正。比較差異剖面的平均能量,結果見 圖4.15。從圖中可知基於奇異值分解的匹配濾波方法具有更好的抗雜訊能力,匹配誤差遠小於傳統匹配 濾波。
圖4.13 某地區時間1地震記錄
圖4.14 某地區時間2地震記錄
圖4.15 兩種匹配方法結果誤差能量對比圖
本節推導了新的匹配濾波方程,提出基於奇異值分解的匹配濾波演算法,理論和實際數據都驗證了該 方法有效性。這里從計算精度上比較兩種匹配濾波演算法,實際處理時移地震數據時還要考慮計算時間,此時尋求快速的奇異值分解演算法是一種提高處理效率的方式,另外針對不同信噪比,將傳統匹配濾波算 法與基於奇異值分解的匹配濾波演算法結合應用同樣是一種很好的方式。總之,基於奇異值分解的匹配濾 波提高了匹配精度,有利於為時移地震解釋提供一致性更好的地震資料。
㈣ 如何利用粒子濾波來得到自己想要的波形
粒子濾波(PF: Particle Filter)演算法起源於20世紀50年代Poor Man's Monte Carlo問題的研究,但第一個具有應用性的粒子濾波演算法於1993年由Gordon等提出(「A novel Approach to nonlinear/non-Gaussian Bayesian State estimation」)。它是利用粒子集來表示概率,可以用在任何形式的狀態空間模型上。其核心思想是通過從後驗概率中抽取的隨機狀態粒子來表示其分布情況,是一種順序重要性采樣法(Sequential Importance Sampling)。
粒子濾波的應用非常廣泛,尤其是在目標跟蹤(「A probabilistic framework for matching temporal trajectories」)等視覺任務方面。粒子濾波演算法有許多不同的改進方式。針對不同的問題,PF演算法被改造以適應更好的問題。本文主要側重於目標跟蹤方面的應用。以人臉跟蹤為例,下圖展示了粒子濾波的跟蹤結果。下面介紹下粒子濾波的基本過程:初始化、概率轉移、權重重計算和重采樣四個階段。
1.初始化階段
跟蹤區域初始化。在使用粒子濾波演算法進行目標跟蹤前需要選擇要跟蹤的目標物體。這個過程可以用人工劃定方法和自動識別方法。使用人工的方法可以通過滑鼠在圖像區域標記出一個感興趣矩形;使用自動的方法就是利用自動的目標檢測技術,初步檢測出圖像中要跟蹤物體的大致位置。以人臉跟蹤為例,人工方法就是滑鼠劃定視頻第一幀中人臉的區域;自動方法就是可以使用人臉檢測演算法檢測出人臉的初始位置。
粒子初始化。對於本文人臉檢測的示例,粒子就是圖像中的矩形區域,主要由矩形中心(x,y)和寬高(w,h)四個變數表示。粒子初始化的步驟,就是在圖像中選擇指定數量的粒子(矩形),比如N=100個粒子。粒子初始化過程就是在圖像中隨機或指定方式放粒子。比如說,我們可以指定100個粒子初始狀態和跟蹤區域一致,即粒子參數和跟蹤區域的(x,y,w,h)相等。
2.狀態轉移階段
使用粒子濾波演算法來對目標進行跟蹤,即是通過前一次的先驗概率來估算出當前環境下的後驗概率密度,這個過程也是由粒子來完成的。具體來說,即根據上一幀中粒子的狀態(x,y,w,h)t-1,來估計出本幀中各個粒子的狀態(x,y,w,h)t。從上一幀圖像的粒子狀態轉變為當前幀粒子的狀態,這個變異過程就叫作轉移(transmission)。粒子濾波的轉移方程跟Kalman濾波的差不多:
上面的是狀態轉移方程,下面的為觀測方程,wk和vk是高斯雜訊。在本文示例中,xk=(x,y,w,h)t。變數x,y,w,h可以依據公式(1)分別更新。在不同的演算法中,f採用的函數也不相同。如果xk=xk-1+wk,則狀態轉移方程其實是隨機遊走過程;如果xk=Axk-1+wk,狀態轉移方程則為一階自回歸方程;如果xk=A1xk-1+A2xk-2+wk,則狀態轉移方程為二階自回歸方程。
3.權重重計算階段
轉移階段將上一幀中粒子的位置進行了轉移,得到當前幀中新的位置。但並不是所有粒子的作用都有用。也就是有些粒子並不是跟蹤區域所要所移動的位置。因此,在此階段,粒子濾波演算法將對每個粒子進行打分,將得分較低的粒子刪除,將得分多的粒子生成更多的粒子(重采樣過程完成)。具體打分的方法根據不同的需求會不同,例如人臉跟蹤方法中使用距離作為衡量的標准。將每個粒子與跟蹤區域進行相似度計算(在這里,分別提取粒子和跟蹤區域的視覺特徵進行計算,比如顏色直方圖),使用相似度作為相應粒子的權重。每一個粒子都需要計算其權重,並且需要將其歸一化。該階段其實也是後驗概率進行更新的過程。
4.重采樣階段
粒子濾波演算法會淘汰權值低的粒子,讓權值高的粒子來產生出更多的粒子,這就使得演算法朝著權值高的地方收斂。假設有100個粒子,1號粒子的權重為0.02而2號粒子的權重為0.003。於是在重采樣階段,1號粒子生孩子的指標是0.02×100=2,2號粒子的指標是0.003×100=0.3,可以發現,1號粒子除了剛產生的粒子外還要再額外的產生一個粒子,而2號粒子就被鏟除了。如此,最後得到的100個粒子即為所求,然後取個加權平均就得到了目標的狀態值。
㈤ 擴展卡爾曼濾波(EKF)演算法詳細推導及模擬(Matlab)
姓名:王柯禕
學號:20021110373T
轉自 :https://blog.csdn.net/gangdanerya/article/details/105105611
【嵌牛導讀】介紹擴展卡爾曼濾波(EKF)演算法的詳細推導,局限性和MATLAB模擬。
【嵌牛鼻子】擴展卡爾曼濾波(EKF)
【嵌牛正文】
擴展卡爾曼濾波演算法 是解決非線性狀態估計問題最為直接的一種處理方法,盡管EKF不是最精確的」最優「濾波器,但在過去的幾十年成功地應用到許多非線性系統中。所以在學習非線性濾波問題時應該先從EKF開始。
EKF演算法是將非線性函數進行泰勒展開,然後省略高階項,保留展開項的一階項,以此來實現非線性函數線性化,最後通過卡爾曼濾波演算法近似計算系統的狀態估計值和方差估計值。
一、EKF演算法詳細推導
【注】EKF推導參考的是黃蔚的博士論文「CKF及魯棒濾波在飛行器姿態估計中的應用研究」,論文中EKF,UKF和CKF等演算法講解的都很詳細,值得一看。
我們把KF與EKF演算法拿出來對比可以發現:
二、EKF演算法局限性:
該演算法線性化會引入階段誤差從而導致濾波精度下降,同時當初始狀態誤差較大或系統模型非線性程度較高時,濾波精度會受到嚴重影響甚至發散。
需要計算雅克比矩陣,復雜,計算量大,影響系統的實時性,還會導致EKF演算法的數值穩定性差。
當系統存在模型失配,量測干擾,量測丟失,量測延遲或狀態突變等復雜情況時,EKF演算法魯棒性差。
三、Matlab模擬:
clear all;clc; close all;
tf = 50;
Q = 10;w=sqrt(Q)*randn(1,tf);
R = 1;v=sqrt(R)*randn(1,tf);
P =eye(1);
x=zeros(1,tf);
Xnew=zeros(1,tf);
x(1,1)=0.1;
Xnew(1,1)=x(1,1);
z=zeros(1,tf);
z(1)=x(1,1)^2/20+v(1);
zjian=zeros(1,tf);
zjian(1,1)=z(1);
for k = 2 : tf
%%%%%%%%%%%%%%%模擬系統%%%%%%%%%%%%%%%
x(:,k) = 0.5 * x(:,k-1) + (2.5 * x(:,k-1) / (1 + x(:,k-1).^2)) + 8 * cos(1.2*(k-1)) + w(k-1);
z(k) = x(:,k).^2 / 20 + v(k);
%%%%%%%%%%%%%%%EKF開始%%%%%%%%%%%%%%%
Xpre = 0.5*Xnew(:,k-1)+ 2.5*Xnew(:,k-1)/(1+Xnew(:,k-1).^2) + 8 * cos(1.2*(k-1));
zjian =Xpre.^2/20;
F = 0.5 + 2.5 * (1-Xnew.^2)/((1+Xnew.^2).^2);
H = Xpre/10;
PP=F*P*F'+Q;
Kk=PP*H'*inv(H*PP*H'+R);
Xnew(k)=Xpre+Kk*(z(k)-zjian);
P=PP-Kk*H*PP;
end
t = 2 : tf;
figure; plot(t,x(1,t),'b',t,Xnew(1,t),'r*'); legend('真實值','EKF估計值');
模擬結果:
㈥ 什麼是濾波演算法
卡爾曼濾波器(Kalman Filter)是一個最優化自回歸數據處理演算法(optimal recursive data processing algorithm)。對於解決很大部分的問題,他是最優,效率最高甚至是最有用的。他的廣泛應用已經超過30年,包括機器人導航,控制,感測器數據融合甚至在軍事方面的雷達系統以及導彈追蹤等等。近年來更被應用於計算機圖像處理,例如頭臉識別,圖像分割,圖像邊緣檢測等等。
最佳線性濾波理論起源於40年代美國科學家Wiener和前蘇聯科學家Kолмогоров等人的研究工作,後人統稱為維納濾波理論。從理論上說,維納濾波的最大缺點是必須用到無限過去的數據,不適用於實時處理。為了克服這一缺點,60年代Kalman把狀態空間模型引入濾波理論,並導出了一套遞推估計演算法,後人稱之為卡爾曼濾波理論。卡爾曼濾波是以最小均方誤差為估計的最佳准則,來尋求一套遞推估計的演算法,其基本思想是:採用信號與雜訊的狀態空間模型,利用前一時刻地估計值和現時刻的觀測值來更新對狀態變數的估計,求出現時刻的估計值。它適合於實時處理和計算機運算。
現設線性時變系統的離散狀態防城和觀測方程為:
X(k) = F(k,k-1)·X(k-1)+T(k,k-1)·U(k-1)
Y(k) = H(k)·X(k)+N(k)
其中
X(k)和Y(k)分別是k時刻的狀態矢量和觀測矢量
F(k,k-1)為狀態轉移矩陣
U(k)為k時刻動態雜訊
T(k,k-1)為系統控制矩陣
H(k)為k時刻觀測矩陣
N(k)為k時刻觀測雜訊
則卡爾曼濾波的演算法流程為:
預估計X(k)^= F(k,k-1)·X(k-1)
計算預估計協方差矩陣
C(k)^=F(k,k-1)×C(k)×F(k,k-1)'+T(k,k-1)×Q(k)×T(k,k-1)'
Q(k) = U(k)×U(k)'
計算卡爾曼增益矩陣
K(k) = C(k)^×H(k)'×[H(k)×C(k)^×H(k)'+R(k)]^(-1)
R(k) = N(k)×N(k)'
更新估計
X(k)~=X(k)^+K(k)×[Y(k)-H(k)×X(k)^]
計算更新後估計協防差矩陣
C(k)~ = [I-K(k)×H(k)]×C(k)^×[I-K(k)×H(k)]'+K(k)×R(k)×K(k)'
X(k+1) = X(k)~
C(k+1) = C(k)~