Как проверить/изменить частоту дискретизации моей звуковой карты?

Я играю с XAudio2, чтобы отправить волны формата PCM на свою звуковую карту, и столкнулся с проблемой, которая заставила меня задуматься над этим вопросом. Я создал файл .csv с помощью MATLAB для синусоидальной волны с частотой 440 Гц, и сначала я замерил ее с частотой 1 кГц (в течение 1 секунды).

Затем моя программа на C++ загружала этот файл и отправляла буфер на звуковую карту. Проблема в том, что выходной сигнал был искажен (обрезан) и вообще не звучал как синусоида. Потом подумал, может звуковая карта не любит частоту дискретизации 1кГц, поэтому удвоил, и вдруг все стало нормально.

Есть ли способ подтвердить, что это действительно была проблема?


person Gabriel G. Roy    schedule 20.07.2011    source источник


Ответы (1)


Частота Найквиста при частоте дискретизации 1 кГц составляет всего 500 Гц. Я совсем не удивлен, что это звучало ужасно. Предположим, у вас была частота дискретизации 1 кГц, и вы воспроизводили звук частотой 500 Гц. Ваш выход будет прямоугольной волной. - + - + - + без промежуточных значений, так как у вас недостаточно образцов. По мере приближения к частоте Найквиста способность воспроизводить эту волну падает. Это слышно на таких низких частотах.

В любом случае, заставить вашу звуковую карту работать с такими низкими частотами дискретизации маловероятно. Гораздо более вероятно, что программный драйвер выполняет повторную выборку для вас, и кто знает, какие артефакты возникают.

Попробуйте сделать что-то более разумное, например, хотя бы 11,025 Гц. Это 44,1 кГц (частота дискретизации CD), деленное на 4, что напрямую поддерживается многими звуковыми картами. Почти все карты должны работать на частоте 22,05 кГц.

person Brad    schedule 20.07.2011
comment
Теоретически, нескольких герц выше 2X440 Гц должно быть достаточно, чтобы реконструировать мою волну 440 Гц, верно? - person Gabriel G. Roy; 20.07.2011
comment
@Deli, Конечно, очень ломано звучит. Вы получите правильную частоту из динамиков, но она будет звучать как прямоугольная волна. Поставьте на прицел и посмотрите. Затем посмотрите на график спектра и увидите все гармоники, которые вы генерируете. - person Brad; 20.07.2011