2012-07-04 2 views
0

Я пишу свой декодер/кодировщик WAVE на C++. Мне удалось правильно преобразовать между различными размерами выборки (8, 16 и 32), но мне нужна помощь с каналами и частотой.Правильно декодирование/кодирование необработанных данных PCM

Каналы:

Если я хочу, чтобы преобразовать из стерео в моно: (?, Который один 1 или 2)

  1. я просто взять данные из одного канала?
  2. или я беру среднее значение из каналов 1 и 2 для моноканала.

Если я хочу конвертировать из моно в стерео: (я знаю, что это не очень научно)

  1. можно просто добавить образцы из отдельных каналов в обоих стереоканалов?
  2. есть ли более научный метод для этого (например, интерполяция)?

Частота дискретизации:

Как изменить частоту дискретизации (частоты дискретизации), например: от 44100 Гц до 22050 Гц:

  1. я просто взять среднее значение 2 последовательных образцы для нового значения (более низкая частота)?
  2. Для этого нужны более научные алгоритмы?
+1

Вопрос лучше подходит для http: // dsp. stackexchange.com –

+1

Предполагаю, вы имеете в виду 44100 Гц до 22050 Гц? –

+0

да, извините, это 22050 – goocreations

ответ

1
  • стерео в моно - взять среднее из левых и правых выборок, т.е. M = (L + R)/2 - это работает для подавляющего большинства стерео контента, но обратите внимание, что некоторые редкие случаи, когда вы можете получить левый/правый отмена.

  • моно в стерео - поставить моно образец в обеих левых и правых каналах, т.е. L = R = M - это дает звуковой образ, который центрирован при воспроизведении в стерео

  • ресэмплинга - для простого соотношения числа понижающей дискретизации, как в ваш пример выше:

    • фильтр нижних частот для размещения новой частоты Найквиста, например ФНЧ 10 кГц для частоты дискретизации 22,05 кЦа
    • Decimate от требуемого соотношения (т.е. падение альтернативных образцов для 2x субдискретизации примера)

Обратите внимание, что есть сторонние библиотеки, такие как libsamplerate, который может обрабатывать передискретизации для вы в общем случае, поэтому, если у вас есть более одного отношения, которое вам нужно поддерживать, или у вас есть какое-то сложное нецелое соотношение, тогда это может быть лучшим подходом.

Смежные вопросы