1. 程式人生 > >kalmna與wei濾波

kalmna與wei濾波

--總覺得網上其他部落格上寫的都不太適合自己理解,百般翻閱書籍理解了一下,供自己日後複習之用。
本文的程式整理可到此處下載:http://download.csdn.net/download/sillykog/10123483

    
  • 1
  • 2
  • 3
  • 用過去的觀測值來估計當前或者將來的訊號稱為預測
  • 用當前和過去的觀測值來估計當前訊號稱為濾波
  • 用過去的觀測值估計過去的訊號成為平滑或內插

維納濾波

1.要求

  • 輸入過程廣義平穩
  • 輸入過程的統計特性已知

2.效果

  • 當訊號和干擾以及隨機噪聲同時輸入該濾波器時,在輸出端將訊號儘可能精確表現出來
  • 維納濾波根據全部過去觀測值和當前觀測值來估計訊號的當前值,解形式是傳遞函式或單位脈衝響應,說白了就是一個IIR無限單位脈衝濾波器

3.原理

  • 定義誤差為觀測值減去估計值
    e(n)=s(n)−s^(n)” role=”presentation” style=”position: relative;”>e(n)=s(n)s^(n)e(n)=s(n)−s^(n)

  • 目標函式為最小均方誤差


    min E[e2(n)]=min E[(s(n)−s^(n))2]” role=”presentation” style=”position: relative;”>min E[e2(n)]=min E[(s(n)s^(n))2]min E[e2(n)]=min E[(s(n)−s^(n))2]

  • 估計值計算如下
    s^(n)=x(n)∗h(n)=∑m=−∞+∞h(m)x(n−m)” role=”presentation” style=”position: relative;”>s

    ^(n)=x(n)h(n)=m=+h(m)x(nm)s^(n)=x(n)∗h(n)=∑m=−∞+∞h(m)x(n−m)

  • 最小均方誤差可表示為
    E[e2(n)]=E[(s(n)−s^(n))2]=E[(s(n)−∑m=0+∞h(m)x(n−m))2]” role=”presentation” style=”position: relative;”>E[e2(n)]=E[(s(n)s^(n))2]=E[(s(n)m=0+h(m)x(nm))2]E[e2(n)]=E[(s(n)−s^(n))2]=E[(s(n)−∑m=0+∞h(m)x(n−m))2]

  • 對最小均方誤差求對衝擊響應的偏導並使其為零得到維納霍夫方程
    ∂E[e2(n)∂h(m)=2E[(s(n)−∑m=0+∞h(m)x(n−m))x(n−j)],j=0,1,2,...” role=”presentation” style=”position: relative;”>E[e2(n)h(m)=2E[(s(n)m=0+h(m)x(nm))x(nj)],j=0,1,2,...∂E[e2(n)∂h(m)=2E[(s(n)−∑m=0+∞h(m)x(n−m))x(n−j)],j=0,1,2,...

  • 此時求得的h(m)” role=”presentation” style=”position: relative;”>h(m)h(m),並有
    Rxs(j)=E[x(n−j)s(n)]” role=”presentation” style=”position: relative;”>Rxs(j)=E[x(nj)s(n)]Rxs(j)=E[x(n−j)s(n)]
    Rxx(j−m)=E[x(n−m)x(n−j)]” role=”presentation” style=”position: relative;”>Rxx(jm)=E[x(nm)x(nj)]Rxx(j−m)=E[x(n−m)x(n−j)]

  • 維納霍夫方程方程可化簡為
    Rxs(j)=∑m=0+∞hopt(m)Rxx(j−m),j=0,1,2,...” role=”presentation” style=”position: relative;”>Rxs(j)=m=0+hopt(m)Rxx(jm),j=0,1,2,...Rxs(j)=∑m=0+∞hopt(m)Rxx(j−m),j=0,1,2,...

  • 將方程展開我們可以得到更直觀的方程組如下
    j=0Rxs(0)=h(0)Rxx(0)+h(1)Rxx(−1)+...+h(N−1)Rxx(1−N)” role=”presentation” style=”position: relative;”>j=0Rxs(0)=h(0)Rxx(0)+h(1)Rxx(1)+...+h(N1)Rxx(1N)j=0Rxs(0)=h(0)Rxx(0)+h(1)Rxx(−1)+...+h(N−1)Rxx(1−N)
    j=1Rxs(1)=h(0)Rxx(1)+h(1)Rxx(0)+...+h(N−1)Rxx(2−N)” role=”presentation” style=”position: relative;”>j=1Rxs(1)=h(0)Rxx(1)+h(1)Rxx(0)+...+h(N1)Rxx(2N)j=1Rxs(1)=h(0)Rxx(1)+h(1)Rxx(0)+...+h(N−1)Rxx(2−N)
    ........................................................................” role=”presentation” style=”position: relative;”>................................................................................................................................................
    j=N−1Rxs(N−1)=h(0)Rxx(N−1)+h(1)Rxx(N−2)+...+h(N−1)Rxx(0)” role=”presentation” style=”position: relative;”>j=N1Rxs(N1)=h(0)Rxx(N1)+h(1)Rxx(N2)+...+h(N1)Rxx(0)j=N−1Rxs(N−1)=h(0)Rxx(N−1)+h(1)Rxx(N−2)+...+h(N−1)Rxx(0)

  • 此處假設訊號與噪聲不相關
    Rxs(m)=E[x(n)s(n+m)]=E[s(n)s(n+m)+w(n)s(n+m)]=E[s(n)s(n+m)]=Rss(m)” role=”presentation” style=”position: relative;”>Rxs(m)=E[x(n)s(n+m)]=E[s(n)s(n+m)+w(n)s(n+m)]=E[s(n)s(n+m)]=Rss(m)Rxs(m)=E[x(n)s(n+m)]=E[s(n)s(n+m)+w(n)s(n+m)]=E[s(n)s(n+m)]=Rss(m)
    Rxx(m)=E[x(n)x(n+m)]=E[(s(n)+w(n))(s(n+m)w(n+m))]=Rss(m)+Rww(m)” role=”presentation” style=”position: relative;”>Rxx(m)=E[x(n)x(n+m)]=E[(s(n)+w(n))(s(n+m)w(n+m))]=Rss(m)+Rww(m)Rxx(m)=E[x(n)x(n+m)]=E[(s(n)+w(n))(s(n+m)w(n+m))]=Rss(m)+Rww(m)
  • 則維納霍夫方程可化簡為
    Rss(j)=∑m=0+∞hopt(m)Rss(j−m)Rww(j−m),j=0,1,2,...” role=”presentation” style=”position: relative;”>Rss(j)=m=0+hopt(m)Rss(jm)Rww(jm),j=0,1,2,...Rss(j)=∑m=0+∞hopt(m)Rss(j−m)Rww(j−m),j=0,1,2,...

4.應用



Figure 1. 原始音訊序列 ” role=”presentation” style=”position: relative;”> Figure 2. 新增噪聲序列



Figure 3. 含噪音頻序列 ” role=”presentation” style=”position: relative;”> Figure 4. 維納濾波序列

  • 濾波之後得到的結果是基於最小均方誤差的,所以也沒有辦法完全恢復原始序列,但總比含噪的序列效果好一些。該例程程式見文章開頭下載連線,本例是直接在時域上進行求解,但時域求解畢竟還是針對較短的序列,資料量一大就無法計算了。

  • 這裡要強調的一點是許多網上流傳的維納濾波的程式均是轉換到頻域上求解,但由於維納濾波方程t>0的因果性約束,是無法直接頻譜相除求解的,必須要用頻譜分解法或者伯德-夏農的白化法。但以上兩種頻域解法都是針對特定功率譜函式的,所以需要對系統進行建模,應用起來其實也不方便的,具體內容還是請大家查閱相關資料會清楚一些。



  • 由左邊序列訓練得到維納濾波的最佳衝擊脈衝序列,並對右邊序列進行濾波我們可以看到維納濾波的效果,維納濾波其實就是一個去相關的過程,對與期望訊號不相關的噪聲進行最大抑制其實就是維納濾波器的實際作用,但麻煩就麻煩在維納濾波器需要一組預訓練的期望訊號,這在實際當中基本上是做不到的,所以維納濾波始終不能被廣泛應用。



  • 另一個方面的話,為什麼維納濾波要求考慮之前所有的觀測值呢,這是由於維納濾波器的一個時效性的問題,由1~N時刻的觀測資料計算得到的濾波器直接應用在N+1~2N時刻上,我們發現效果是極差的,因此還是要根據之前所有的觀測數值來考慮維納濾波器的衝擊序列h(n)



  • 特別的再提到一點,即便只由部分觀測值計算得到的維納濾波器在時域上表現極差,但在頻域上還是差強人意的

  • 關於二維影象的維納濾波也是非常有意思的,可以參考該篇博文
    http://blog.csdn.net/liyuefeilong/article/details/43307197


卡爾曼濾波

1.要求

  • 能用卡爾曼濾波的前提是這個系統是可觀測的。
  • 相比於維納濾波,卡爾曼濾波可以適用於非平穩隨機過程,而且可以遞推實現

2.效果

  • 卡爾曼濾波是在已知系統和量測的數學模型、量測噪聲統計特性及系統狀態初值的情況下,利用輸出訊號的量測資料和系統模型方程,實時獲得系統狀態變數和輸入訊號的最優估計值。它是一種線性、無偏、且誤差方差最小的隨機系統最優估計演算法。

3.原理

  • 假設線性離散系統模型如下
    狀態方程xk=Φk,k−1xk−1+Γk,k−1ωk−1” role=”presentation” style=”position: relative;”>xk=Φk,k1xk1+Γk,k1ωk1xk=Φk,k−1xk−1+Γk,k−1ωk−1
    測量方程zk=Hkxk+νk” role=”presentation” style=”position: relative;”>zk=Hkxk+νkzk=Hkxk+νk

  • 一般情況下我們假定
    E[ωk−1]=0,Rωω(k,j)=Qkδkj” role=”presentation” style=”position: relative;”>E[ωk1]=0,Rωω(k,j)=QkδkjE[ωk−1]=0,Rωω(k,j)=Qkδkj
    E[νk]=0,R(k,j)=Qννδkj” role=”presentation” style=”position: relative;”>E[νk]=0,R(k,j)=

    相關推薦

    kalmnawei濾波

    --總覺得網上其他部落格上寫的都不太適合自己理解,百般翻閱書籍理解了一下,供自己日後複習之用。 本文的程式整理可到此處下載:http://download.csdn.net/download/sillykog/10123483 1 2

    數字圖像處理的Matlab實現(3)—灰度變換空間濾波

    彩色圖像 equals 相同 tca 彩色 處理工具 off argc ber 第3章 灰度變換與空間濾波(1) 3.1 簡介 空間域指的是圖像平面本身,這類方法是以對圖像像素直接處理為基礎的。本章主要討論兩種空間域處理方法:亮度(灰度)變換與空間濾波。後一種方法有時涉及到

    岡薩雷斯:數字影象處理(三):第三章灰度變換空間濾波(1)——基本灰度變換函式

    一、前言 空間域指影象平面本身。這類影象處理方法直接以影象中的畫素操作為基礎。這是相對於變換域中的影象處理而言的。變換域的影象處理首先把一幅影象變換到變換域,在變換域中進行處理,然後通過反變換把處理結果返回到空間域 空間域處理主要分為灰度變換和空間濾波兩類。 灰度變換在影象的單個畫素上操

    matlab影象預處理中值濾波y雙邊濾波

    中值濾波 前面所說的高斯平滑和均值濾波也是預處理的一種,不過他們用犧牲影象細節為代價來換取平滑影象,他們對處理小的噪聲點比較好,但是處理較大的噪聲點比較無力。 平滑線性濾波器的工作原理可以比喻為用水沖洗桌面上的汙點,沖洗的結果是汙點並沒有消失,只是被淡化,如果汙

    ADC採集噪聲問題及均方根值濾波Kalman濾波比較

        有一陣子筆者在做一個PT100熱電阻的調理電路的時候採用了,使用恆流源的方式測熱電阻的阻值。為了採集方便,將0.3mA的電流接入PT100直接把ADC輸入端接在了PT100的兩端。之後再輸出溫度的時候資料非常亂。查閱資料受到啟發,採用求該訊號的有效值(均方根值)方法進

    雙邊濾波引導濾波

    雙邊濾波 雙邊濾波很有名,使用廣泛,簡單的說就是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。 先看看我們熟悉的高斯濾波器 其中W是權重,i和j是畫素索引,K是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。 再來看看雙邊

    OpenCV4Android開發實錄(5):影象邊緣處理非線性濾波(中值、雙邊)

    在OpenCV4Android開發實錄(4):影象去噪與線性濾波(均值、方框、高斯)文章中,我們較為詳細地介紹了OpenCV中幾種常用的線性濾波方法原理和相關API的使用,本文將在此基礎上繼續講解OpenCV中中值和雙邊兩種非線性濾波,以及在影象濾波過

    灰度變換空間濾波之二(讀數字影象處理學習halcon)

    直方圖處理 灰度級範圍(0,L-1)的數字影象的直方圖是離散函式h(rk)=nk,  rk表示第k級灰度值,nk是影象中灰度為rk的畫素個數。在實踐中常用MN表示的影象畫素總數除它的每個分量來表示歸一

    用俗話講講卡爾曼濾波粒子濾波

    一,卡爾曼濾波 卡爾曼濾波可以根據一些已知的量來預測未知的量,這些量受到的干擾必須得近似高斯噪聲。這個東西可以用來幹什麼呢?例如我們可以用來預測明天,後天,未來好幾天的溫度。我們可以在前幾天用溫度計記

    Vulkan移植GpuImage(二)Harris角點檢測導向濾波

    ## Harris角點檢測 ![avatar](https://pic1.zhimg.com/80/v2-92ed0434e8da0d433c9c1c31d8542714_720w.jpg "Harris角點檢測") UI還是用的上次扣像的,只有前後置可以用,別的沒有效果,只看實現就好. [相應原始碼]

    圖像卷積濾波

    像素點 aaa uda uri 水平 攝像機 fsp 快速 2.3 一、線性濾波與卷積的基本概念 線性濾波可以說是圖像處理最基本的方法,它可以允許我們對圖像進行處理,產生很多不同的效果。做法很簡單。首先,我們有一個二維的濾波器矩陣(有個高大上的名字叫卷積核)和一個要處理的二

    形態學濾波:(1)腐蝕膨脹 (2)開運算,閉運算,形態學梯度,頂帽,黑帽

    來講 極小值 -h 明顯 基本 極限 元素 腐蝕 黑帽 一、形態學概述   圖像處理中的形態學一般指的是數學形態學。   數學形態學是一門建立在格論和拓撲學基礎之上的圖像分析學科,是數學形態學圖像處理的基本理論。其基本運算包括:二值腐蝕和膨脹,二值開閉運算,骨架抽取,極限腐

    噪聲濾波

    tails 濾波 bsp .html article class com atl https 知乎:濾波算法 https://www.zhihu.com/topic/19592200/hot、 百度百科: 瑞利分布 https://baike.so.com/doc/

    【OpenCV入門教程之八】線性鄰域濾波專場:方框濾波、均值濾波高斯濾波

    分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

    卡爾曼濾波(Kalman Filter)原理公式推導

    公式推導 領域 公式 不一定 技術 精度 原理 應用 定性 一、背景---卡爾曼濾波的意義 隨著傳感技術、機器人、自動駕駛以及航空航天等技術的不斷發展,對控制系統的精度及穩定性的要求也越來越高。卡爾曼濾波作為一種狀態最優估計的方法,其應用也越來越普遍,如在無人機、機器人等領

    025卡爾曼濾波濾波增益協方差陣的等價形式

      首先擺放一下前面的求解結果: (1)Kk=Pk/k−1HkT(HkPk/k−1HkT+Rk)−1 \tag{1} K_k = P_{k/k-1} H_k^T(H_k P_{k/k-1} H_k^T + R_k)^{-1} Kk​=Pk/k−1​HkT​(Hk

    濾波、訊號、數字模擬、金字塔不懂才怪教程

    寫這篇文章的本意是對一直困擾著自己的訊號處理問題的一個茅塞頓開的領悟,不過最終還是希望寫一個大家都能看懂,並且可以解決看很多次都沒有看懂的頑疾的博文,歡迎轉載,那麼開始吧。 1.數字濾波器和模擬濾波器 先明確這個觀點,你在看數字濾波還是模擬濾波,你打算處理數字訊

    【Shader特效8】著色器濾鏡、影象卷積濾波、數字影象處理

    ##說在開頭: PhotoShop和特效相機中有許多特效的濾鏡。片元著色器時基於片元為單位執行的,完全可以實現特殊的濾鏡效果。要想實現這些濾鏡效果還需要簡單的瞭解《數字影象處理》中的影象卷積與濾波的一些

    導向濾波(Guided Filter)的解析實現

    現在從一個最簡單的情形來開始我們的討論。假設有一個原始影象 pp較遠的畫素則具有更小的權重。 無論是簡單平滑,還是高斯平滑,它們都有一個共同的弱點,即它們都屬於各向同性濾波。我們都知道,

    [轉載]影象濾波-阮一峰

    一、為什麼影象是波? 我們知道,影象由畫素組成。下圖是一張 400 x 400 的圖片,一共包含了 16 萬個畫素點。 每個畫素的顏色,可以用紅、綠、藍、透明度四個值描述,大小範圍都是0 ~ 255,比如黑色是[0, 0, 0, 255],白色是[255, 255, 255, 255]。通過