文章目錄
什麼是功率譜估計?
譜估計在現代信號處理中是一個很重要的課題,功率譜反映了信號的功率在頻域隨頻率w的分佈,功率譜估計可以分爲經典譜估計方法與現代譜估計方法。
簡單說功率譜估計法是通過利用已經獲得的N個數據點,來得到一個"非精確"的功率譜對真實隨機信號的功率譜進行估計。
任意一個週期信號f(t),其傅里葉變換得到的頻譜中將會包含一個直流分量,一個基頻成分w0,以及相應的諧波成分。將這些信號分量相加就可以得到原始的時間信號f(t)。
信號分爲確定信號和隨機信號,而確定信號又分爲能量信號和功率信號。根據狄裏赫利條件,能量信號可以直接進行傅里葉變換,得到頻譜的幅度再平方即爲能量譜(或稱能量譜密度)。而功率信號不行。
功率譜密度的求法:
如果你測到的信號是一個確定性信號,你就可以直接做FFT,然後平方,再除以你用的點數就得到其功率譜密度;如果你測到的信號是一個隨機信號,就需要先求自相關函數,然後對自相關求FFT得到其功率譜密度曲線
- 確定信號是用FFT求頻譜,先FFT,再幅值平方/N
- 隨機信號是用PSD、pwelch求功率譜,先求自相關,再FFT
功率譜估計方法的分類
經典譜估計法
經典譜估計中分爲直接法與間接法。最簡單的就是週期圖法。
週期圖法-直接法
我們已知N個離散的數據點,對這些數據點進行傅里葉變換,得到式
再對式取模的平方,除以N,即得到一個"非精確"的譜,如式示,這就是週期圖法的原理。
週期圖法的特點:週期圖法得到的功率譜隨着數據點數N的增大,分辨率變大、方差變也大。
在matlab中,週期圖法可以川函數periodogram實現。
平均週期圖法-Bartlett法
- 數據分段,減小方差
- 數據窗口加窗-矩形窗
將N個觀測樣本數據點分爲L段,每段數據長度爲M,分別對每段數據求週期圖功率譜估計,然後求平均值,這種方法稱平均週期圖法。平均週期圖法將原來的方差變爲原來的1/L,L爲分段數。
L=1時,平均週期圖法退化爲週期圖法。
特點:平均週期圖法得到的功率譜隨着分段數L變大,方差變小,但分辨率變小。
當觀測樣本序列數據個數N固定時,要降低方差需要增加分段數L。當N不大時分段長度M取值較小,則功率譜分辨率降低到較低的水平。若分段數L固定時,增加分辨率需要分段長度M,則需要採集到更長的檢測數據序列。實際中恰恰是檢測樣本序列長度不足。
在matlab中,平均週期圖法可以用函數psd、pwelch實現。
修正的平均週期圖法-Welch法
- 數據分段並重疊
- 數據窗口加不同的窗函數
對現有數據長度N,如果能獲得更多的段數分割,將會得到更小的方差。允許數據段間有重疊部分,來得到更多的段數。對段間重疊長度的選取,最簡單是取爲段長度M的一半。可知更多的段數可以進一步降低方差。
數據截斷的過程中相當於數據加矩形窗,矩形窗幅度較大的旁瓣會造成"頻譜泄漏"。關於“頻譜泄漏”如果有不明白,請看這篇文章。我們分段時採取的窗函數更爲多樣(三角窗,海明窗等), 以減小截斷數據(加矩形窗)窗函數帶來的影響。
矩形窗的分辨率最高,但是方差也最大,這是由於矩形窗頻譜主瓣最窄,分辨率因此最高,旁瓣也高,導致頻譜泄漏最嚴重,方差最大。
總結:週期圖法獲得的功率譜隨着樣本點數越多,分辨率越大、方差越大;平均週期圖法以犧牲分辨率來進一步改善方差;修正的平均週期圖法允許段的重疊來進一步增大分段數、或者分段數相同,每段樣本點數變多。無論是哪種方法都沒有徹底結局方差與分辨率之間的矛盾。
間接法–BT法–自相關法
維納辛欽定理指出,隨機信號的相關函數與它的功率譜是一對傅里葉變換對。BT法就是基於這個原理。先由觀測數據估計出自相關函數,然後求自相關函數的傅立葉變換,以此變換作爲對功率譜的估計,也稱爲間接法。BT法要求信號長度N以外的信號爲零,這也造成BT法的侷限性。
通過逆變換求得自相關函數。
M隨着N的增大而增大時,分辨率提高,方差變大。BT法仍然沒有解決分辨率與方差之間的矛盾,但是BT法得到的功率譜當N爲無窮大時,方差會趨向於零,即爲一致估計
總結:可以看出,無論是週期圖法及其改進算法還是BT法都沒有從根本上解決分辨率與方差的矛盾。經典功率譜估計是利用傅里葉變換估計功率譜,而我們之前分析隨機信號不滿足傅里葉變換的條件,所以經典功率譜估計方法不得不從無限長數據點截取有限長數據點,加入限制條件(週期圖法實際上假定N點外數據週期重複、BT法假定N點外數據爲零)來"強制"作傅里葉變換,這也是造成它侷限性的原因
現代譜估計方法
現代譜的分辨率較高。這是由於在時域的開窗,使得在頻域發生“頻譜泄漏”,即功率譜的主瓣能量泄漏到旁瓣中,導致弱信號的主瓣被強信號的旁瓣所湮沒,造成譜的模糊。
現代譜估計主要針對經典譜估計分辨率低和方差性不好提出的,可以極大的提高估計的分辨率和平滑性。可以分爲參數模型譜估計和非參數模型譜估計。
參數模型譜估計有AR模型,MA模型,ARMA模型等;非參數模型譜估計有最小方差法和MUSIC法等。由於涉及的問題太多,這裏不再詳述,可以參考有關資料。
在MATLAB中.主要有基於AR模型的功率譜估計pyulear函數、pburg函數、pcov函數、pmov函數和pmem函數R,,。在下面的仿真實驗中,發現pyulear函數的運算速度在它們當中最快,分辨力最好,故以pyulear函數爲例進行分析。
基於參數建模的功率譜估計
無論對於一個確定性信號還是隨機信號,其輸入、輸出關係總是如下:
AR模型-自迴歸模型
易於反映功率譜中的峯值。
建立AR模型的參數ak和x(n)的自相關函數的關係,即正則方程。
一個p階的AR模型等效於一個p階的線性預測器。根據已知的自相關函數rx(m),求解Yule-Walker方程得到模型的p+1個參數a(1)、、、a§和方差,實現功率譜的估計。
- AR模型是在最小平方意義上對數據的擬合。
- Burg提出最大熵譜估計
- AR模型階次的選擇,根據模型的最小預測誤差功率進行選擇。
MA模型–移動平均模型
易於反映功率譜中的谷值。
ARMA模型–自迴歸-移動平均模型
易於反映功率譜中的峯值和谷值。
基於非參數建模的功率譜估計
該方法主要墓於矩陣特徵分解的功率譜估計,它將相關矩陣的特徵向量空間分解爲信號子空間和噪聲子空間.由此衍生出特徵向量與MUSIC
算法的信號功率i替估計。其中特徵向量譜估計與MUSIC算法譜估計都是基於噪聲子空間的功率譜估計。
在MATLAB中,有可以利用函數pmusic來實現MUSIC算法的功率譜估計;也有可以利用函數peig來實現特徵向量的功率諾估計
評價功率譜的標準
給出兩個影響最大的標準:分辨率和方差。
分辨率即功率譜上能夠區分的最小相鄰頻率成分,分辨率越高,我們觀察信號的頻率成分越清晰;方差大小則反映到功率譜波動性的大小,如果方差太大,功率譜波動性大,則很容易造成有用的頻率成分被噪聲淹沒。所以,我們希望得到的這個"非精確"的功率譜,分辨率越高越好,方差越小越好。
參考資料
- 經典功率譜估計及Matlab仿真 https://www.cnblogs.com/jacklu/p/5140913.html
- MATLAB中幾種功率譜估計函數的比較分析與選擇 https://wenku.baidu.com/view/08fb8cf627fff705cc1755270722192e44365851.html?rec_flag=default&sxts=1590983291605
- 隨機信號傅里葉變換和功率譜密度圖給出的信息有什麼不同 https://www.ilovematlab.cn/thread-291253-1-1.html