我的波形發生器出現問題。我試圖用給定頻率的聲音創建一個.wav文件。我的代碼使用方法:如何用自定義頻率音/波創建.wav文件?
$freqOfTone = 21000;
$sampleRate = 44100;
$samplesCount = 80000;
$amplitude = 0.25 * 32768;
$w = 2 * pi() * $freqOfTone/$sampleRate;
for ($n = 0; $n < $samplesCount; $n++)
{
$data->samples[1][] = 32768 + (int)($amplitude * sin($n * $w));
}
不幸的是,輸出波形是不正確的,我會獲得一些頻率,而不是一個:http://i49.tinypic.com/ab1nx0.png
它應該是這樣的: http://i50.tinypic.com/33zbslk.png
我在哪裏做的事情錯誤? :(
您的代碼看起來不錯。你是否認爲這個問題可能與寫入數據或數據格式有關?有符號與無符號,位深度等 – Brad
由於'samplesCount'不是波週期的倍數,它可能是一個別名問題 - 嘗試調整該參數。 – moonwave99
@ moonwave99我將$ samplesCount更改爲88200.它不能解決問題。輸出文件看起來是一樣的......我認爲樣本的數量不應該對頻率的波動有任何影響。 – Sirtarius