exponenta event banner

Компрессор

Компрессор динамического диапазона

  • Библиотека:
  • Панель звуковых инструментов/динамическое управление диапазоном

  • Compressor block

Описание

Блок сжатия выполняет динамическое сжатие диапазона независимо по каждому входному каналу. Динамическое сжатие диапазона ослабляет громкость громких звуков, которые пересекают заданный порог. Блок использует указанное время атаки и освобождения для достижения плавной кривой усиления.

Порты

Вход

развернуть все

  • Матричный вход - каждый столбец входа рассматривается как независимый канал.

  • 1-D vector input - Вход обрабатывается как один канал.

Этот порт не называется, если не указаны дополнительные входные порты.

Типы данных: single | double

Зависимости

Чтобы включить этот порт, выберите параметр Threshold (dB) в поле Specify from input port.

Типы данных: single | double

Зависимости

Чтобы включить этот порт, выберите для параметра Ratio значение Specify from input port.

Типы данных: single | double

Зависимости

Чтобы включить этот порт, для параметра Ширина колена (dB) выберите значение Указать из входного порта.

Типы данных: single | double

Зависимости

Чтобы включить этот порт, выберите параметр Specify from input port для параметра Attack time (s).

Типы данных: single | double

Зависимости

Чтобы включить этот порт, выберите параметр Specify from input port для параметра Release time (s).

Типы данных: single | double

Продукция

развернуть все

Блок сжатия выдает сигнал того же типа данных, что и входной сигнал. Размер выходного сигнала зависит от размера входного сигнала:

  • Матричный вход - блок выводит матрицу того же размера и типа данных, что и входной сигнал.

  • 1-D vector input - Блок выводит матрицу N-by-1 (вектор столбца), где N - количество элементов в векторе 1-D.

Типы данных: single | double

Зависимости

Для активизации этого порта выберите параметр Output gain (dB).

Типы данных: single | double

Параметры

развернуть все

Если параметр указан как настраиваемый, его значение можно изменить во время моделирования.

Главная вкладка

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

Чтобы задать порог (дБ) для входного порта, выберите параметр Указать из входного порта (Specify from input port).

Настраиваемый: Да

Степень сжатия - это отношение вход/выход для сигналов, которые превышают порог работы.

Предполагая жесткую коленную характеристику и установившийся входной сигнал, такой что x [n] дБ > Порог (дБ), степень сжатия определяется как R = (x [n] T) (y [n] − T), где

  • R - степень сжатия.

  • x [n] - входной сигнал в дБ.

  • y [n] - выходной сигнал в дБ.

  • T - пороговое значение в дБ.

Чтобы задать отношение из входного порта, выберите параметр Задать из входного порта (Specify from input port).

Настраиваемый: Да

Для характеристик мягкого колена область перехода определяется соотношением

y = x + (1R 1) × (x T + W2) 2 (2 × W)

для диапазона (2 × | x T |) ≤W, где

  • y - выходной уровень в дБ.

  • x - входной уровень в дБ.

  • R - степень сжатия.

  • T - пороговое значение в дБ.

  • W - ширина колена в дБ.

Чтобы задать ширину колена (дБ) для входного порта, выберите параметр Задать из входного порта (Specify from input port).

Настраиваемый: Да

График обновляется автоматически при изменении параметров блока компрессора.

Настраиваемый: Да

Время атаки - это время, в течение которого коэффициент усиления компрессора увеличивается с 10% до 90% от его конечного значения, когда входной сигнал выходит за пороговое значение. Параметр Время атаки сглаживает приложенную кривую усиления.

Чтобы указать время (и) атаки из входного порта, выберите параметр Указать из входного порта.

Настраиваемый: Да

Время отпускания - это время, в течение которого коэффициент усиления компрессора падает с 90% до 10% от его конечного значения, когда входной сигнал становится ниже порогового значения. Параметр Время освобождения сглаживает приложенную кривую усиления.

Чтобы указать время (и) выхода из порта ввода, выберите параметр «Указать из порта ввода».

Настраиваемый: Да

  • Property - Коэффициент подпитки устанавливается равным значению, заданному параметром Коэффициент подпитки (dB).

  • Auto - Усиление подпитки применяется на выходе блока компрессора таким образом, что установившийся вход 0 дБ имеет выход 0 дБ.

Настраиваемый: Нет

Усиление подпитки компенсирует усиление, потерянное во время сжатия. Применяется на выходе блока компрессора.

Настраиваемый: Да

Зависимости

Чтобы включить этот параметр, установите для параметра Make-up rain mode значение Property.

При выборе этого параметра блок наследует частоту дискретизации от входного сигнала. При сбросе этого параметра укажите частоту дискретизации в параметре Частота дискретизации на входе (Гц).

Настраиваемый: Нет

Настраиваемый: Да

Зависимости

Чтобы включить этот параметр, очистите параметр Inherit sample rate от входного параметра.

Вкладка «Дополнительно»

При выборе этого параметра к блоку добавляется дополнительный выходной порт G. Порт G выводит коэффициент усиления, применяемый к каждому входному каналу в дБ.

Настраиваемый: Нет

При выборе этого параметра к блоку добавляется дополнительный входной порт SC. Порт SC обеспечивает динамическое сжатие диапазона входного сигнала x с использованием отдельного сигнала боковой цепи.

Тип данных и (длина кадра), вводимые в порт SC, должны совпадать с вводом в порт x.

Количество каналов ввода боковой цепи должно быть равно количеству каналов x или быть равным единице.

  • Sidechain channel count is equal to one - Вычисленный коэффициент усиления, G, на основе этого канала применяется ко всем каналам x.

  • Sidechain channel count is equal to channel count of x - Вычисленный коэффициент усиления, G, для каждого бокового канала применяется к соответствующему каналу x.

  • Interpreted execution - Моделирование модели с помощью интерпретатора MATLAB ®. Эта опция сокращает время запуска и имеет скорость моделирования, сравнимую сCode generation. В этом режиме можно отладить исходный код блока.

  • Code generation - Моделирование модели с использованием сгенерированного кода C. При первом запуске моделирования Simulink ® генерирует код C для блока. Код C используется повторно для последующего моделирования, если модель не изменяется. Эта опция требует дополнительного времени запуска, но скорость последующего моделирования сравнима сInterpreted execution.

Настраиваемый: Нет

Примеры модели

Характеристики блока

Типы данных

double | single

Прямой проход

no

Многомерные сигналы

no

Сигналы переменного размера

yes

Обнаружение пересечения нулей

no

Алгоритмы

Блок компрессора обрабатывает сигнальный кадр по кадрам и элемент по элементам.

  1. N-точечный сигнал x [n] преобразуется в децибелы:

    xdB [n] = 20 × log10 | x [n] |

  2. xdB [n] проходит через компьютер усиления. Компьютер усиления использует характеристику статического сжатия блока сжатия для ослабления усиления, которое выше порогового значения.

    Если указано мягкое колено, компьютер усиления имеет следующую статическую характеристику:

    xsc (xdB) = {xdBxdB < (T W2) xdB + (1R 1) (xdB T + W2) 22W (T W2) ≤xdB≤ (T + W2) T + (xdB − T) RxdB > (T + W2),

    где T - порог, R - степень сжатия, а W - ширина колена.

    Если указано жесткое колено, компьютер усиления имеет следующую статическую характеристику:

    xsc (xdB) = {xdBxdB < TT + (xdB T) RxdB≥T

  3. Вычисленный коэффициент усиления, gc [n], вычисляется как

    gc [n] = xsc [n] xdB [n].

  4. gc [n] сглаживается с использованием заданных параметров времени атаки и сброса:

    gs [n] = {αAgs [n 1] + (1 αA) gc [n], gc[n]≤gs[n−1]αRgs[n−1]+ (1 αR) gc [n], gc [n] > gs [n − 1]

    Коэффициент времени атаки α A вычисляется как

    αA = exp (− log (9) Fs × TA).

    Коэффициент времени высвобождения α R вычисляется как

    αR = exp (− log (9) Fs × TR).

    T A - период времени атаки, определяемый параметром Время атаки. TR - период времени деблокирования, заданный параметром Release time (s). Fs - входная частота дискретизации, заданная параметром Inherit sample rate from input или Input sample rate (Hz).

  5. Если коэффициент усиления подпитки (дБ) установлен в Autoвычисляется как отрицательное значение вычисленного коэффициента усиления для входного сигнала 0 дБ:

    M = xsc 'xdB = 0.

    При установившемся входе 0 дБ эта конфигурация достигает установившегося выхода 0 дБ. Коэффициент усиления определяется параметрами Threshold (dB), Ratio и Knee width (dB). Это не зависит от входного сигнала.

  6. Коэффициент усиления, M, добавляется к сглаженному коэффициенту усиления, gs [n]:

    gm [n] = gs [n] + M

  7. Вычисленный коэффициент усиления в дБ, gdB [n], преобразуется в линейную область:

    glin [n] = 10 (gm [n] 20)

  8. Выходной сигнал компрессора динамического диапазона приведен в виде

    y [n] = x [n] × glin [n].

Ссылки

[1] Джаннулис, Димитриос, Майкл Массберг и Джошуа Д. Рейсс. «Проектирование цифрового компрессора динамического диапазона - учебное пособие и анализ». Журнал Общества аудиотехники. Том 60, выпуск 6, 2012, стр. 399-408.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2016a