8

いくつかのコードを調べたところ、すべてが数学関数の波を作成しているように見えますが、単一のトーン、またはカスタムの単一トーンで作成されたカスタムの波が必要です。

これを読みました さまざまな周波数の連続音を生成するにはどうすればよいですか?

これは私の答えに近いです。上記のリンクのように waveOutWrite を使用すると仮定すると、HWAVEOUT の各サンプルのアンプ/周波数がどのように計算されるかわかりません。

リンクのコードでは、次のように行われます。 Samples[i] := round(vol*sin(omega*t));

アンプで 15kHz 周波数のシングル トーンが必要だとすると (どちらでも構いません)、Sample[1] はどのように計算されますか?

4

1 に答える 1

9

連続 (時間) 正弦波は次のように定義できますA*sin(2*PI*f*t)。ここで、Aは振幅、つまりPI3.14...、fはトーン周波数 (ヘルツ)、tは時間 (秒) です。

ここで、連続時間がなく、時間は離散的であるため、dt*i代わりにtと getを使用しますA*sin(2*PI*f*dt*i)。ここdtで、 はサンプル間の時間、1/sample rateiサンプル番号です。のように綴ることができますA*sin(2*PI*(f/Fs)*i)。特定のサンプル レートFs(サンプル/秒または単純に Hz) を選択すると、最高のトーンが Hz を超えることはありませんFs/2

于 2011-12-11T10:00:57.953 に答える