2011-09-10 24 views
1

sine関数を使用してサンプルデータを作成し、SDLを使用して再生することにより、さまざまな周波数のサウンドトーンを生成しようとしています。 44100 のサンプリングレートでsound_frequencyをし、すなわち44100個のサンプルを得た - 私は周波数の音のためのサンプルを生成するsinf関数を使用して生成された生の正弦波をSDLライブラリで再生する

buffer[sample] = 32767 * sinf(2 * PI * sample * sound_frequency/44100) 

を使用しています。サンプル音は1秒でSDLで再生しようとしました。 2000Hzのsound_frequencyのサンプルを生成しようとしたときにうまくいきました。しかし、60000Hzのsound_frequencyのためのサンプルを生成しようとしたときにもうまくいきました。しかし、私は20-20000Hzのためだけに聞こえるはずですか? 問題を見つけるのを手伝ってもらえますか?

答えて

5

サンプリングレートより高い周波数を表すことはできません。サンプリングレートに近い周波数でもサウンドが歪んでしまいます。 Thisが発生しています。

+1

さらに優れています。[**半分**サンプリングレート](http://en.wikipedia.org/wiki/Nyquist_frequency)より高い周波数を表すことはできません。 – ulidtko

関連する問題