使用SDL库播放使用sinf函数生成的原始正弦波

时间:2011-09-10 05:48:33

标签: audio sdl wave sine

我正在尝试通过使用正弦函数创建样本数据并使用SDL进行播放来生成各种频率的声音。 我正在使用

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

以44100的采样率生成频率声音的样本 - sound_frequency。 得到44100个样本即。 1秒的样本声音并尝试使用SDL播放。 当我试图为2000Hz的sou​​nd_frequency生成样本时听起来很棒。但是当试图为60000Hz的sou​​nd_frequency生成样本时,它听起来也很好。但我预计我应该只听20-20000Hz? 你能帮忙找到问题吗?

1 个答案:

答案 0 :(得分:5)

您无法表示高于采样率的频率。即使频率接近采样率,您的声音也会失真。 This正在发生。