基頻分析方法彙總【筆記】

來自《Pitch Extraction and Fundamental Frequency》 David Gerhard

* 找聲音基頻確實是難的,人類已經研究50多年了,還沒有真正準確和強壯的通用方法。
* 學術上通常稱聲音的pitch detection(音高檢測),但實際上說的是基頻檢測。
* 越接近正餘弦振動的信號,高點越不明顯
* 在某個測試環境下作的基頻檢測往往換到另一個環境就不能用了
* 諧振越強,譜峯越明顯
* 時域算法
  [基於事件發生率]
    - Zero-crossing rate,過零線率。缺陷:零線附近的毛刺。
    - Peak rate,峯值率。缺陷:需要指定高點的範圍
    - Slope event rate,利用坡度變向等事件,比上面兩個好點
    小結:時域算法簡單易懂。峯值率因其電路簡單,多年來一直在硬件實現中很普遍。
  [基於自相關]
    自相關計算的是信號延遲後於原信號的相似程度。自相關計算的結果自己就是週期性的。缺陷在於,當兩組峯很近時分組會出問題。
    - YIN Estimator
    - 相位空間
  [基於頻域]
    - Componnet Frequency Ratios,把頻域分塊了計算。
    - 基於濾波器的方法
      。梳式濾波器:當梳式濾波器的頻率和基頻吻合時,輸出的能量最大。缺陷:對計算資源耗費相當大。
      。可調IIR濾波器:
    - 倒譜分析,對幅度譜進行log後再反FFT出來的就是倒譜。適合在譜峯較多且相間較疏的信號,如講話。http://en.wikipedia.org/wiki/Cepstrum中對各項參數的意義和用法做了說明。
    - 多分辨率。在不同的分辨率下對信號進行分析,如果出來的基頻都是差不多的結果那就可以確認了。
  [頻域統計的方法]
    - 神經網絡,缺陷在於結果是黑盒出來的,不知道計算過程的具體信息。
    - Maximum Likelihood Estimators
* 改善處理結果的方法
  - 可以通過處理輸入信號來改善,比如增強輸入信號分辨率
  - 在處理聽覺系統信號的時候,可以用節省計算資源的constant-Q頻譜變換來替代傅里葉變換。
  - Frequency Estimator Tracking,傾向於認爲上個時間片計算出來的基頻爲這次的基頻,這樣可以節省計算資源。可以用到馬科夫鏈(HMM)。

* 常見的基頻評估器的問題:當基頻頻率低的時候,較高頻的諧振經常會被當成基頻。YIN算法在這方面比較成功。

* 文中後面對幾種現成的分析器進行了測試比較。

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