現代法譜估計(4)Music算法MATLAB及Python實現

原理

原博客是用word編輯成的,插入了很多Mathtype公式,而CSDN不支持此格式,轉換格式後出現了很多麻煩和錯誤,故此博客直接放了截圖,請見諒。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

程序和結果

MATLAB
程序:
在這裏插入圖片描述
在這裏插入圖片描述
結果:
在這裏插入圖片描述
Python
程序:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
結果:
在這裏插入圖片描述

分析

由上圖可見,我給程序輸入的N爲256,信號中f1=0.1,f2=0.13,爲了看得明顯,我把f1幅值調大了,在圖中我們可以看到對應的位置出現了峯值,尋峯得到頻率估計均爲0.1和0.3左右。程序中我取的 的範圍是0到π弧度,所以也只是畫出了0.1到0.5的頻率範圍。利用尋峯函數findpeaks來得出峯值對應的橫座標(Python中是自己寫了一個尋峯估計頻率的方法),程序中將所有的峯值及其索引分別放入到兩個數組中,且根據峯值大小降序排列,確定最大的兩個峯值和其索引位置,然後由索引位置除以2N (我寫出的程序中取的 的範圍是0到π弧度,也即單位圓上半部分,頻率範圍對應爲0-0.5,而對應的序列長度爲N,因此根據比例關係可知,索引值/N=頻率值/0.5也即,頻率值=索引值/2N,和上面的使用freqz函數的結果相同)。

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