Использование библиотеки SDL для воспроизведения необработанной синусоиды, созданной с помощью функции sinf - PullRequest
1 голос
/ 10 сентября 2011

Я пытаюсь генерировать звуковые тона различных частот, создавая данные сэмплов с использованием функции синуса и проигрывая с использованием SDL. Я использую

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

для генерации семплов для звука с частотой - sound_frequency с частотой дискретизации 44100. и получил 44100 образцов т.е. Примерный звук 1 секунды и попытался воспроизвести с помощью SDL. Звучит нормально, когда я пытался сэмплировать звук для частоты 2000 Гц. Но это также звучит нормально, когда вы пытаетесь сэмплировать звук для частоты 60000 Гц. Но я ожидал, что должен звучать только для 20-20000 Гц? Не могли бы вы помочь в поиске проблемы?

1 Ответ

5 голосов
/ 11 сентября 2011

Вы не можете представлять частоту выше, чем ваша частота дискретизации. Ваш звук будет искажен даже при частотах, близких к частоте дискретизации. Это происходит.

...