4

ウェーブジェネレーターに問題があります。特定の周波数の音で .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));
}

残念ながら、出力波形は正しくありません。1 つではなくいくつかの周波数が得られます: http://i49.tinypic.com/ab1nx0.png

次のようになります: http://i50.tinypic.com/33zbslk.png

私はどこで何か間違っていますか?:(

4

2 に答える 2

1

このサンプル レートでは、目的の周波数がナイキスト周波数に近すぎて適切にサンプリングできません。これには 96kHz のサンプルレートを使用することをお勧めします。

于 2012-10-06T16:15:41.293 に答える
0

私は最終的に何かを達成しましたが、私の解決策は私が意味したこれとは少し異なります...とにかく、私はサンプルを取り、それらをハイパス周波数フィルターに通しました。信号は少し歪んでいますが、私の目的には十分です:)

于 2012-10-21T19:21:46.480 に答える