1. 程式人生 > >自適應濾波:LMS/NLMS

自適應濾波:LMS/NLMS

前言

西蒙.赫金的《自適應濾波器原理》第四版第五、六章:最小均方自適應濾波器(LMS,Least Mean Square)以及歸一化最小均方自適應濾波器(NLMS,Normalized Least Mean Square)。全文包括:

  1)LMS與維納濾波器(Wiener Filter)的區別;

  2)LMS原理及推導;

  3)NLMS推導;

  4)應用例項;

內容為自己的讀書記錄,其中錯誤之處,還請各位幫忙指出!

一、LMS與維納濾波器(Wiener Filter)的區別

  • 這裡介紹的LMS/NLMS,通常逐點處理,對應思路是:隨機梯度下降;
  • 對於Wiener Filter,給定準則函式J,隨機/批量梯度都可以得出最優解;
  • LMS雖然基於梯度下降,但準則僅僅是統計意義且通常引入誤差,可以定義為J0,簡而言之J通常不等於J0,得出的最優解wo自然也通常不等於維納最優解;
  • 分析LMS通常會分析穩定性,穩定性是基於Wiener解,之前已給出分析。但LMS是Wiener解的近似,所以:迭代步長的穩定性,嚴格適用於Wiener解,對於LMS只是一種近似參考,並沒有充分的理論依據

下文的分析仍然隨機梯度下降的思路進行。

二、LMS原理及推導

LMS是時間換空間的應用,如果迭代步長過大,仍然有不收斂的問題;如果迭代步長過小,對於不平穩訊號,還沒有實現尋優就又引入了新的誤差,屋漏偏逢連夜雨!所以LMS系統是脆弱的,訊號儘量平穩、哪怕短時平穩也湊合呢。

給出框圖:

關於隨機梯度下降,可以參考之前的文章。這裡直接給出定義式:

利用梯度下降:

−∇J=x(wTx−d)T

給出LMS演算法步驟:

1)給定w(0),且1<μ<1/λmax

2)計算輸出值:y(k)=w(k)Tx(k);

3)計算估計誤差:e(k)=d(k)−y(k);

4)權重更新:

相關推薦

適應濾波LMS/NLMS

前言 西蒙.赫金的《自適應濾波器原理》第四版第五、六章:最小均方自適應濾波器(LMS,Least Mean Square)以及歸一化最小均方自適應濾波器(NLMS,Normalized Least Mean Square)。全文包括:   1)LMS與維納濾波器(Wiener Filter

適應濾波最小均方誤差濾波器(LMSNLMS

作者:桂。 時間:2017-04-02  08:08:31 宣告:歡迎被轉載,不過記得註明出處哦~  【讀書筆記08】 前言 西蒙.赫金的《自適應濾波器原理》第四版第五、六章:最小均方自適應濾波器(LMS,Least Mean Square)以及歸一化最小均方自適應濾波器(NLMS,

適應濾波梯度下降演算法

作者:桂。 時間:2017-04-01  06:39:15 宣告:歡迎被轉載,不過記得註明出處哦~ 【學習筆記07】 前言 西蒙.赫金的《自適應濾波器原理》第四版第四章:最速下降演算法。優化求解按照有/無約束分類:如投影梯度下降演算法((Gradient projection)便是有

適應濾波維納濾波器——FIR及IIR設計

作者:桂。 時間:2017-03-23  06:28:45  【讀書筆記02】 前言 仍然是西蒙.赫金的《自適應濾波器原理》第四版,距離上次看這本書已經過去半個月,要抓點緊了。本文主要包括:   1)何為維納濾波器(Wiener Filter);   2)Wiener濾波器的推導;

適應濾波-----LMS(Least Mean Square)演算法

自適應濾波的意義所在 自適應濾波器解決非平穩的過程,因為實際訊號的統計特性可能是非平穩的或者是未知的。 自適應濾波器的特點:                                          1.沒有關於待提取資訊的先驗統計知識    

適應學習最好的定位是輔助工具

自適應學習拼的不是簡單的程式碼或者幾個演算法,而是收集、分析、運用和維護海量的學習資料,涉及到大資料的沉澱、檢測和推薦演算法的精準性。這需要有一個頂尖的研發團隊來做,而在這其中,資料科學團隊是最重要的。資料科學團隊需要懂得貝葉斯理論、資訊理論等高階的演算法和資料分析技術,而且還要不斷地對

三列適應佈局左右定寬,中間適應

一個不定寬度的容器被分為左中右三列,左右兩列定寬100px,中間列自適應剩餘寬度,且三列之間間距為10px。 1.float+margin+fix HTML結構如下 <div class="parent"> <div class="left"&

影象處理適應濾波

本文主要介紹了自適應的中值濾波器,並基於OpenCV實現了該濾波器,並且將自適應的中值濾波器和常規的中值濾波器對不同概率的椒鹽噪聲的過濾效果進行了對比。最後,對中值濾波器的優缺點了進行了總結。 空間濾波器 一個空間濾波器包括兩個部分: 一個鄰域,濾波器進行操作的畫素集合,通常是一個矩

實現div的背景圖片在各個瀏覽器上適應顯示即backgroun-size屬性不支援低版本ie的解決方案

筆者在進行div下的背景圖片顯示時,發現一個問題:圖片在div中自適應 background-size:cover顯示時,使用backgroun-size屬性可以很好的在其它瀏覽器上顯示,但低於IE8的瀏覽器不支援!!比較鬱悶的搞了大半天,先把解決方案陳列如下:      

0512日重點淘寶的H5手機端適應解決方案Flexible

自動獲取 手機端 issue 解決方案 target 解決 flex get bsp 參考文檔: https://github.com/amfe/lib-flexible https://github.com/amfe/article/issues/17 自我總結:F

基於Opencv的適應中值濾波函數selfAdaptiveMedianBlur()

blog com begin clas logs opencv2 cal return mat 終於搞出來了:) #include <iostream> #include <opencv2/opencv.hpp> #include &l

百度地圖API一根據標註點坐標範圍計算顯示縮放級別zoom適應顯示地圖

var spa get bsp pan nts viewport 百度 getview 百度地圖中根據頁面中的point,自動設置縮放級別和視圖中心,將所有的point在視圖範圍內展示。 var points = [point1, point2,point3];

布局左寬度固定,右邊適應

con sidebar section 屏幕 type char red oat oct 需求: 左側固定寬,右側自適應屏幕寬; 左右兩列,等高布局; 左右兩列要求有最小高度,例如:200px;(當內容超出200時,會自動以等高的方式增高) 方法1:浮動布局 這種方法我

CARTAGartner的持續適應風險與信任評估戰略方法簡介

gartner carta 自適應 在2017年6月份舉辦的第23屆Gartner安全與風險管理峰會開幕式上,來自Gartner的三位VP級別的分析師(Ahlm, Krikken and Neil McDonald)分享一個題為《Manage Risk ,Build Trust, and Embr

Java遠程過程調用基礎構建可適應的動態代理對象的通用方法

Java RPC 動態代理 [toc] Java遠程過程調用基礎:構建可自適應的動態代理對象的通用方法 前言 關於動態代理的知識,這裏不再過多說明。這裏要介紹的是,如何創建一個可自適應任意接口的動態代理對象的通用方法,也就是說,引用對象可為任意接口,舉個例子,假如返回動態代理對象的方法是getP

Android項目實戰(五)TextView適應大小

click set view ddd isp lap src 無法顯示 aaa 原文:Android項目實戰(五):TextView自適應大小對於設置TextView的字體默認大小對於UI界面的好看程度是很重要的,小屏幕設置的文字過大或者大屏幕設置的文字過小都造成UI的不美

記一次產品需求圖片等比縮放和CSS適應布局16:9

是我 width 圖片展示 網上 IT tom 就會 很好 尺寸 前言   前陣子,產品跑過來問我現有的模板中沒有圖片模板,需要添加一個圖片模板;然而,他要求圖片在展示區最好能夠實現隨著窗口的變化而自動按圖片比例等比縮放,並且居中展示圖片。我當時想著,拋開技術實現層面,圖

iOS解決UITextView適應高度粘貼大量文字導致顯示不全的問題

tex 顯示 輸入框 textview size self. uitext sel lec 一、描述 在UITextView輸入框中粘貼大量的文字時,UITextView內容自適應高度計算出現誤差,導致整塊文字上移消失。 二、方案 在UITextView文字改變的監聽中

百度地圖API二根據標註點坐標範圍計算顯示縮放級別zoom適應顯示地圖

max zoom 天地圖 功能 center 經緯 通過 極值 template 原文:百度地圖API二:根據標註點坐標範圍計算顯示縮放級別zoom自適應顯示地圖 版權聲明:本文為博主原創文章,轉載請註明出處。 https://blo

x265原始碼分析sao.cpp 適應樣點補償

/* 對|num / den|四捨五入,然後前面新增符號 */ inline int32_t roundIBDI(int32_t num, int32_t den) { return num >= 0 ? ((num * 2 + den)/(den * 2)) : -((-