2014-04-18 61 views
0

在頻譜的名單基本頻率,我有一個給定的時間幀一組諧波頻率(峯值在頻譜)的:Matlab的:如何找到能量峯值

5215 
3008.1 
2428.1 
2214.9 
1630.2 
1315 
997.01 
881.39 
779.04 
667.47 
554.21 
445.77 
336.39 
237.69 
124.6 

如果我做-diff(ans),我得到的共振峯,這暗示我這樣的事實之間的差異,這種框架的基本頻率f_0大約是110赫茲:

2206.9 
580.06 
213.11 
584.72 
315.24 
317.97 
115.62 
102.35 
111.57 
113.26 
108.44 
109.38 
98.705 
113.08 

很顯然,第一個列表的最後9個值的諧波相同f_0,因爲第二個列表的最後8個值大約是相同的值。他們的意思是109.05(但我不確定這是否是正確的f_0)。我怎樣才能計算一個整潔的函數f_0

+0

用'std'計算標準變化與計算平均值一樣重要。這會給你衡量你的結果的準確性。除此之外,您認爲還需要進一步計算嗎? – buzjwa

+0

http://www.mathworks.com/help/signal/ug/estimating-fundamental-frequency-with-the-complex-cepstrum.html – Cici

回答

0

我自己找到了答案:我計算兩個峯值之間的差值,頻率值最低,能量值高於某個閾值。然後,我檢查頻率列表中的差異是否在一定範圍內。