MVDR頻率估計方法及其Matlab代碼實現

本文同步發佈在我的個人博客宅到沒朋友,歡迎來玩!

1.前言

MVDRMVDR頻率估計方法的理論知識此處略過,直接介紹最後得到的MVDRMVDR譜估計公式。

2.MVDRMVDR譜估計公式

P^MVDR(w)=1aH(w)R^1a(w)\hat{P}_{MVDR} \left( w \right )= \frac{1}{a^{H} \left( w \right )\hat{R}^{-1} a\left( w \right )}

其中aw=aM(w)=[1ejwej(M1)w]a_{w} = a_{M} \left( w \right ) = \begin{bmatrix} 1 \\ e^{-jw} \\*** \\ e^{-j \left(M-1 \right)w}\end{bmatrix}R^=E{x(n)x^(n)}=[r(0)r(1)r(M1)r(1)r(0)r(M2)r(1M)r(2M)r(0)]\hat{R} = E \left \{ x(n) \hat{x}(n) \right \} = \begin{bmatrix} r(0) & r(1) & \cdots & r(M-1)\\ r(-1) & r(0) & \cdots & r(M-2)\\ \cdots & \cdots & \ddots & \vdots \\ r(1-M) & r(2-M) & \cdots & r(0) \end{bmatrix}

MM爲自相關矩陣的階數。

3.算法步驟

  1. NN個觀測樣本x(0),x(1),,x(N1)x\left( 0 \right), x\left( 1 \right),\cdots,x\left( N*1 \right)估計樣本相關矩陣R^\hat{R}
  2. [π,π]\left [ -\pi , \pi\right ]內改變ww,畫出P^MVDR(w)\hat{P}_{MVDR} \left( w \right),峯值位置就是信號角頻率的估計值。

4.算例及代碼實現

4.1 算例

設隨機過程u(n)u \left( n \right)u(n)=ej0.5πn+jϕ1+ej0.3πn+jϕ2+vnu \left( n \right) = e^{j0.5\pi n + j \phi _{1}} + e^{-j0.3\pi n + j \phi _{2}} + v_{n},其中,vnv_{n}是0均值,方差爲1的白噪聲,ϕ1\phi _{1}ϕ2\phi _{2}是相互獨立並在[0,2π]\left[ 0,2\pi \right]上服從均勻分佈的隨機相位,使用MVDRMVDR方法進行信號頻率估計,畫出頻率估計譜線。(要求:信號樣本數取1000,估計的自相關矩陣爲8階。)

4.2 MatlabMatlab實現

在這裏插入圖片描述
MVDRMVDR方法的輸出功率爲信號功率加上一個數,因此利用MVDRMVDR方法進行譜估計時,若在某個頻點有信號,則該點會出現一個比它真實功率值大一點的數值,若是沒有信號,信號和噪聲都被濾波器抑制,按公式估計的值會很小。

4.3 代碼及下載

點此下載源碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章