作者:桂。
時間:2017-06-03 15:06:37
鏈接:http://www.cnblogs.com/xingshansi/p/6937635.html
原文鏈接:http://pan.baidu.com/s/1pKOYuiJ
前言
本文的算法就是在陣列信號增強中非常經典的Frost's Algorithm。上個世紀70年代的技術了,梳理一下該算法的思路。
一、理論框架
首先交代理論模型。噪聲為加性噪聲:
X為帶噪信號,L為理想信號,N為噪聲信號,目的是希望利用一組濾波器,實現特定信號的增強(Enhancement).
假設有M個麥克風,對應濾波器的抽頭系數為J:
寫成向量的形式就是:
MVDR通常是按頻點處理,以對第k個頻點的處理為例:濾波信號可以表示為
其實框架就是Delay and sum,不同的是權重W不再是均分分布,而是通過最小方差找出最優組合,這就定義了准則函數:
這是一個約束問題,可以借助拉格朗日乘子法求解:
從而得出理想的輸出:
例如希望減少noise的時候,原信號保持不變:
這樣完成了理論框架的搭建:模型建立→准則函數定義→目標參數求解。
接下來就是落地的問題,即如何將理論模型與實際的工程應用結合起來?
二、實現思路
A-初步實現
首先是Rxx,它應該是一個先驗知識priori:
它是隨機信號的均值,實際應用中通常是不知道的,我們只有觀測信號。因此通常時間換空間,在平穩遍歷的基礎上用R = 1/T (XXT)來近似表達,這樣一來實際的W就可以求解,從而完成了理論的落地。
B-改進思路
這樣的R通常是較大的,W的求解涉及到矩陣求逆的問題,運算速度較慢。最優解的求解,一般有最小二乘和梯度下降兩個思路。矩陣求逆通常對應最小二乘思路,直接得出最優解,考慮到運算速度,一個直觀的思路就是:利用梯度下降的思想。而對於均方意義下的准則函數,梯度是無法求解的,但基於遍歷性的假設,可以利用不同時刻的樣本進行近似梯度求解,這也就是自適應濾波的思路。梯度下降從樣本量的角度來講,有兩個基本思路:隨機梯度下降、批量梯度下降,這里以隨機梯度下降為例(SGD).梯度下降從下降方式來講,又有很多分支:一階梯度下降、二階梯度下降(Newton-Rapson)等。對於含有約束條件的梯度下降,常用的思路是:投影梯度下降法。文中利用拉格朗日乘子法將含約束的問題轉化為無約束問題:
對應的梯度下降:
其中λ為:
從而梯度下降改寫為
這樣一來只有關於C的求逆,這是可以事先求解並固定不變的。定義:
迭代形式簡化為
給出完成的梯度下降法思路(初始化+迭代):
至此,速度問題也得以優化,完成了整個MVDR的落地工作。注意到一點:μ作為迭代步長,需要人為給定。給的合適,收斂較好;給的不理想,收斂太慢甚至發散。
C-迭代步長μ的選取
細節不羅列了,需要說明的是分析是基於隨機過程的均值。實際LMS應用中的μ並不完全與它吻合。
首先考慮平穩噪聲的場景,需要滿足:
其次考慮非平穩噪聲的場景,需要滿足:
具體推導看原文吧,實際應用中由於場景不同,μ的設定更多的依靠工程經驗,這個單靠理論是行不通的。
參考
- Frost, Otis Lamont. "An algorithm for linearly constrained adaptive array processing." Proceedings of the IEEE 60.8 (1972): 926-935.