«32-битный монофонический звук» в формате Jack - PullRequest
3 голосов
/ 31 мая 2011

Я играл с Джеком и заметил, что тип аудио по умолчанию JACK_DEFAULT_AUDIO_TYPE установлен на "32-битный монофонический звук с плавающей запятой".

Я немного запутался:IEEE определяет 32-битный диапазон с плавающей запятой C приблизительно от 3.4E – 38 до 3.4E + 38, и мне было интересно, какова максимальная и минимальная «неискаженная» амплитуда, которую jack_default_audio_sample_t может удерживать с этим типом звука.Например, если какой-то алгоритм DSP дает мне сэмплы в диапазоне [0,1], как я могу правильно конвертировать их в формат Джека?

1 Ответ

5 голосов
/ 31 мая 2011

Довольно часто выполняются операции обработки сигналов с плавающей запятой, затем масштабируются и приводятся результаты к 16-разрядным или 24-разрядным целым числам перед отправкой их в АЦП. Например, применение фильтра БИХ в плавающей точке означает, что вы можете уменьшить свою чувствительность к квантованию коэффициентов. Или, если вы делаете БПФ, вы получаете больший динамический диапазон с вычислениями с плавающей запятой.

Обычным способом преобразования является x_float = x_int * (1.0/SHRT_MAX), когда данные поступают с АЦП, и y_int = y_float * SHRT_MAX при отправке в ЦАП для 16-битных кодеков. Для 24-битных кодеков вам нужно определить ADC_MAX = (1 << 24) - 1.

В случае использования JACK, я предполагаю, что фреймворк позаботится об этом преобразовании для вас, поэтому вы должны увидеть значения с плавающей запятой в диапазоне +/- 1 и передать их значения в том же диапазоне.

...