2016-02-20 82 views
-1

我有幾個音調的信號,並想知道給定的音調開始和結束的地方。如何在scipy中獲得一個基調的長度?

首先,我正在使用一個帶通濾波器並轉換信號(fft)以便知道錄音是否有音調。

現在,我得到了時域中的濾波信號(圖)。它被認爲是從0ms到276ms(紅線)。請記住,這個音調可能會在時間上移動(從150到426毫秒)。

plt.plot(time_, np.abs(signal))

如何檢測的基調開始的位置和結束使用SciPy的?

+1

我不認爲這是一個編程問題。事實上,我認爲這個問題沒有客觀的答案,因爲音調是頻率分量的疊加,每個頻率分量都在所有時間內延伸。因此,它沒有準確的開始或結束。 –

+0

從繪製譜圖開始。 (我已經投票決定關閉這個問題,但是因爲如所提出的那樣,它更多的是關於信號處理而不是編程)。 – tom10

+0

這個問題很可能會在dsp.stackexchange上得到更好的答案:http://dsp.stackexchange.com/ – hotpaw2

回答

0

確定'音調'的形式(運行fft,定義頻率響應,執行信號合成)並運行互相關函數。您可以檢測到'語氣'的出現,因爲在'語氣'開始之後互相關函數將具有更高的值(由於信號是週期性的,因此會上升和下降)。