2009-11-26 35 views
2

如何計算頻率&使用FP9的As3振幅。我使用如何使用Flash Player 9計算Flash AS3中的頻率和振幅

SoundMixer.computeSpectrum(_testbytes, false, 0); 
var g:Graphics = this.graphics; 
g.clear();  
g.lineStyle(0, 0x6600CC); 
g.moveTo(0, PLOT_HEIGHT);    
var m:Number = 0; 
for (var i:int = 0; i < 256; i++) { 
    m = (_testbytes.readFloat() * 100); 
    g.lineTo(i*2 , 100 - m); 
} 
g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); 

現在我可以從它那裏得到的頻率&振幅數據中的所有原始字節?

回答

2

如果您仔細查看computeSpectrum()文檔,您將看到 第二個參數設置FFT模式。

FFT代表FastFourierTransform,基本上,如果您使用FFT進行頻率計算的頻率範圍,而不是原始值,那麼您的值將按頻率進行排序。

所有你需要在你的代碼改變是:

SoundMixer.computeSpectrum(_testbytes, true); 

現在_testbytes你將有512個值,256爲左聲道和256爲右聲道。對於每個頻道,數字按頻率排序,從低到高(我猜想是低,中低,中高,高)。

就是這樣,你現在已經有了頻率。 SoundTransform具有音量,這是我猜測振幅的另一種方式。如果你想在這些頻率上執行Math.max(),或者使用leftPeak和rightPeak,那就去做吧。

如果你想得到這樣的書呆子,只需在維基百科或DSP(數字信號處理)或聲音處理上查找FFT,否則,computeSpectrum的as3文檔應該足夠了。

至於採樣率,this cool as library似乎爲你做了艱苦的工作。

HTH, 喬治

+0

喬治嗨, 謝謝你給我一個方向。在幅度上,我試圖從Sound Channel計算峯值,這是錯誤的嗎?另一件事情如何能得到任何MP3音頻文件的採樣率? 再次感謝。 Tanmoy – 2009-11-30 13:26:27

+0

我看,更新的答案似乎現在適合^ _ ^ – 2009-11-30 23:46:54