Expander

Динамическая область значений расширитель

  • Библиотека:
  • Audio Toolbox/Динамическое управление областью значений

  • Expander block

Описание

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

Порты

Вход

расширить все

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

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

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Зависимости

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

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

Выход

расширить все

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

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

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

Этот порт не называется, пока вы не выберете параметр Output gain (dB).

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

Зависимости

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

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

Параметры

расширить все

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

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

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

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

  • R - коэффициент расширения.

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

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

  • T - порог в дБ.

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

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

Operation threshold - уровень, ниже которого коэффициент усиления прикладывается к входному сигналу.

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

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

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

y=x+(1R)×(xTW2)2(2×W)

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

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

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

  • R - коэффициент расширения.

  • T - порог в дБ.

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

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

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

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

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

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 для параметра.

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

Hold time - период, в течение которого (отрицательный) коэффициент усиления удерживается перед началом уменьшения к своему установившемуся значению, когда входной уровень падает ниже порога.

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

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

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

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

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

Зависимости

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

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

Когда вы выбираете этот параметр, к блоку добавляется дополнительный выходной порт, 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® генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска, но скорость последующих симуляций сопоставима с Interpreted execution.

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

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

Типы данных

double | single

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

no

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

no

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

yes

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

no

Алгоритмы

Блок Expander обрабатывает систему координат сигнала за кадром и элемент за элементом.

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

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

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

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

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

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

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

    xsc(xdB)={T+(xdBT)×RxdB<TxdBxdBT

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

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

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

    gs[n]={αAgs[n1]+(1αA)gc[n](CA>TH)&(gc[n]gs[n1])gs[n1]CATHαRgs[n1]+(1αR)gc[n]gc[n]>gs[n1]

    C A является счетчиком удержания для атаки. Предел, T H, определяется параметром Hold time (s).

    Коэффициент времени атаки, α 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. Сглаженный коэффициент усиления в дБ, g с [n], переводится в линейную область:

    glin[n]=10(gs[n]20).

  6. Выход расширителя динамической области значений дается как

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

Ссылки

[1] Джаннулис, Димитриос, Майкл Массберг и Джошуа Д. Рейсс. Digital Dynamic Range Compressor Design -- A Tutorial And Analysis (неопр.) (недоступное руководство). Журнал Общества Аудиотехники. Том 60, Выпуск 6, 2012, стр. 399-408.

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

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

.
Введенный в R2016a