我的波形发生器出现问题。我试图用给定频率的声音创建一个.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