Compressor

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

  • Библиотека:
  • Audio Toolbox / Управление Динамическим диапазоном

  • Compressor block

Описание

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

Порты

Входной параметр

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

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

  • 1D векторный вход – вход обработан как один канал.

Этот порт без имени, если вы не задаете дополнительные входные порты.

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Вывод

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

Блок Compressor выводит сигнал с совпадающим типом данных как входной сигнал. Размер выхода зависит от размера входа:

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

  • 1D векторный вход – блок выводит N-by-1 матрица (вектор-столбец), где N является числом элементов в 1D векторе.

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

Зависимости

Чтобы включить этот порт, выберите параметр Output gain (dB).

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

Параметры

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

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

Основная вкладка

Operation threshold является уровнем, выше которого усиление применяется к входному сигналу.

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

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

Compression ratio является отношением ввода/вывода для сигналов, которые промахиваются по порогу операции.

Принятие твердой характеристики колена и установившегося входа, таким образом, что x [n] дБ> Threshold (dB), коэффициент сжатия задан как R=(x[n]T)(y[n]T), где

  • R является коэффициентом сжатия.

  • x [n] является входным сигналом в дБ.

  • y [n] является выходным сигналом в дБ.

  • T является порогом в дБ.

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

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

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

y=x+(1R1)×(xT+W2)2(2×W)

для области значений (2×|xT|)W, где

  • y является уровнем на выходе в дБ.

  • x является уровнем на входе в дБ.

  • R является коэффициентом сжатия.

  • T является порогом в дБ.

  • W является шириной колена в дБ.

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

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

График обновляется автоматически, когда параметры блока Compressor изменяются.

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

Attack time является временем, которое усиление компрессора занимает, чтобы повыситься с 10% до 90% его окончательного значения, когда вход выходит за предел порога. Параметр Attack time (s) сглаживает прикладную кривую усиления.

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

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

Release time является временем, которое усиление компрессора занимает, чтобы понизиться с 90% до 10% его окончательного значения, когда вход понижается порог. Параметр Release time (s) сглаживает прикладную кривую усиления.

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

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

  • Property – Усиление состава установлено в значение, заданное параметром Make-up gain (dB).

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

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

Make-up gain компенсирует усиление, потерянное во время сжатия. Это применяется при выходе блока Compressor.

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

Зависимости

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

Когда вы выбираете этот параметр, блок наследовал свою частоту дискретизации от входного сигнала. Когда вы очищаете этот параметр, задаете частоту дискретизации в параметре Input sample rate (Hz).

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

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

Зависимости

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

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

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

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

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

  • Code generation – Симулируйте модель с помощью сгенерированного кода C. В первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С снова используется для последующих симуляций, пока модель не изменяется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций сопоставима с Interpreted execution.

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

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

Типы данных

double | single

Прямое сквозное соединение

no

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

no

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

yes

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

no

Алгоритмы

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

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

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

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

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

    xsc(xdB)={xdBxdB<(TW2)xdB+(1R1)(xdBT+W2)22W(TW2)xdB(T+W2)T+(xdBT)RxdB>(T+W2),

    где T является порогом, R является коэффициентом сжатия, и W является шириной колена.

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

    xsc(xdB)={xdBxdB<TT+(xdBT)RxdBT

  3. Вычисленное усиление, g c [n], вычисляется как

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

  4. g c [n] сглаживается с помощью заданных параметров времени нападения и релиза:

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

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

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

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

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

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

  5. Если Make-up gain (dB) установлен в 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] Giannoulis, Димитриос, Михаэль Массберг и Джошуа Д. Рейсс. "Цифровой Проект Компрессора Динамического диапазона – Пример И Анализ". Журнал Общества звукоинженеров. Издание 60, Выпуск 6, 2012, стр 399–408.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2016a
Для просмотра документации необходимо авторизоваться на сайте