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

Для выполнения динамического сжатия диапазона:
Создать compressor и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
dRC = compressor создает объект System, dRC, которая выполняет динамическое сжатие диапазона независимо по каждому входному каналу во времени.
dRC = compressor( устанавливает для свойства Threshold значение thresholdValue)thresholdValue.
dRC = compressor( устанавливает свойство Ratio в значение thresholdValue,ratioValue)ratioValue.
dRC = compressor(___, задает каждое свойство Name,Value)Name к указанному Value. Неопределенные свойства имеют значения по умолчанию.
dRC = compressor('AttackTime',0.01,'SampleRate',16000) создает объект System, dRCс временем атаки 10 мс, работающим с частотой дискретизации 16 кГц.Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
Threshold - Порог работы (дБ)–10 (по умолчанию) | вещественный скалярПорог операции в дБ, заданный как действительный скаляр.
Порог работы - это уровень, выше которого коэффициент усиления применяется к входному сигналу.
Настраиваемый: Да
Типы данных: single | double
Ratio - Степень сжатия5 (по умолчанию) | вещественный скалярСтепень сжатия, заданная как действительный скаляр, больший или равный 1.
Степень сжатия - это отношение вход/выход для сигналов, которые превышают порог работы.
Предполагая жесткую коленную характеристику и установившийся входной сигнал, такой что x [n] дБ >Thresholdстепень сжатия определяется как [n] − T).
R - степень сжатия.
x [n] - входной сигнал в дБ.
y [n] - выходной сигнал в дБ.
T - пороговое значение в дБ.
Настраиваемый: Да
Типы данных: single | double
KneeWidth - Ширина колена (дБ)0 (по умолчанию) | вещественный скалярШирина колена в дБ, заданная как действительный скаляр, больший или равный 0.
Ширина колена - это переходная область в характеристике сжатия.
Для характеристик мягкого колена область перехода определяется соотношением
+ W2) 2 (2 × W)
для диапазона T |) ≤W.
y - выходной уровень в дБ.
x - входной уровень в дБ.
R - степень сжатия.
T - пороговое значение в дБ.
W - ширина колена в дБ.
Настраиваемый: Да
Типы данных: single | double
AttackTime - Время (а) атаки0.05 (по умолчанию) | вещественный скалярВремя атаки в секундах, указанное как действительный скаляр, больший или равный 0.
Время атаки - это время, в течение которого коэффициент усиления компрессора увеличивается с 10% до 90% от его конечного значения, когда входной сигнал выходит за пороговое значение.
Настраиваемый: Да
Типы данных: single | double
ReleaseTime - Время (а) освобождения0.2 (по умолчанию) | вещественный скалярВремя освобождения в секундах, указанное как действительный скаляр, больший или равный 0.
Время выпуска - это время, в течение которого коэффициент усиления компрессора падает с 90% до 10% от его конечного значения, когда входной сигнал выходит за пороговое значение.
Настраиваемый: Да
Типы данных: single | double
MakeUpGainMode - Режим усиления подпитки'Property' (по умолчанию) | 'Auto'Режим усиления подпитки, указанный как 'Auto' или 'Property'.
'Auto' - Коэффициент подпитки применяется на выходе компрессора динамического диапазона таким образом, что установившийся вход 0 дБ имеет выход 0 дБ.
'Property' -- Коэффициент усиления макияжа устанавливается равным значению, указанному в свойстве MakeUpGain.
Настраиваемый: Нет
Типы данных: char | string
MakeUpGain - Коэффициент усиления подпитки (дБ)0 (по умолчанию) | вещественный скалярКоэффициент усиления в дБ, определяемый как действительный скаляр.
Усиление подпитки компенсирует усиление, потерянное во время сжатия. Применяется на выходе компрессора динамического диапазона.
Настраиваемый: Да
Чтобы включить это свойство, задайте для параметра MakeUpGainMode значение 'Property'.
Типы данных: single | double
SampleRate - Частота входных выборок (Гц)44100 (по умолчанию) | положительный скалярЧастота входных выборок в Гц, заданная как положительный скаляр.
Настраиваемый: Да
Типы данных: single | double
EnableSidechain - Включить ввод боковой цепиfalse (по умолчанию) | trueВключить ввод боковой цепочки, указанный как true или false. Это свойство определяет количество доступных входных данных в compressor объект.
Тип данных боковой цепочки и длина (кадра) должны совпадать с audioIn.
Количество каналов ввода боковой цепи должно быть равно количеству каналов audioIn или быть равным единице. Если количество боковых каналов равно единице, gain вычисленный на основе этого канала применяется ко всем каналам audioIn. Если количество боковых каналов равно количеству каналов в audioIn, gain вычисленный для каждого бокового канала применяется к соответствующему каналу audioIn.
Настраиваемый: Нет
audioIn - Вход звука в компрессорВход звука в компрессор, указанный как матрица. Столбцы матрицы обрабатываются как независимые аудиоканалы.
Типы данных: single | double
audioOut - Аудиовыход от компрессораАудиовыход от компрессора, возвращаемый в виде матрицы того же размера, что и audioIn.
Типы данных: single | double
gain - Коэффициент усиления, применяемый компрессором (дБ)Коэффициент усиления, применяемый компрессором, возвращаемый в виде матрицы того же размера, что и audioIn.
Типы данных: single | double
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
visualize | Визуализация статической характеристики контроллера динамического диапазона |
createAudioPluginClass | Создать класс аудиоплагинов, реализующий функциональность объекта System |
parameterTuner | Настройка параметров объекта во время потоковой передачи |
configureMIDI | Настройка соединений MIDI между аудиообъектом и контроллером MIDI |
disconnectMIDI | Отключить элементы управления MIDI от аудиообъекта |
getMIDIConnections | Получение MIDI-соединений аудиообъекта |
createAudioPluginClass и configureMIDI функции отображают настраиваемые свойства compressor Системный объект для пользовательских параметров:
| Собственность | Диапазон | Отображение | Единица |
|---|---|---|---|
Threshold | [–50, 0] | линейный | dB |
Ratio | [1, 50] | линейный | ничего |
KneeWidth | [0, 20] | линейный | dB |
AttackTime | [0, 4] | линейный | секунды |
ReleaseTime | [0, 4] | линейный | секунды |
MakeUpGain (доступно при установке MakeUpGainMode кому 'Property') | [–10, 24] | линейный | dB |
Динамическое сжатие диапазона используется для ослабления громкости громких звуков.
Настройка dsp.AudioFileReader и audioDeviceWriter objects™ системы.
frameLength = 1024; fileReader = dsp.AudioFileReader( ... 'Filename','RockDrums-44p1-stereo-11secs.mp3', ... 'SamplesPerFrame',frameLength); deviceWriter = audioDeviceWriter( ... 'SampleRate',fileReader.SampleRate);
Установите компрессор с порогом -15 дБ, отношением 7 и шириной колена 5 дБ. Используйте частоту дискретизации устройства чтения аудиофайлов.
dRC = compressor(-15,7, ... 'KneeWidth',5, ... 'SampleRate',fileReader.SampleRate);
Настройте область для визуализации исходного звукового сигнала, сжатого звукового сигнала и применяемого коэффициента усиления сжатия.
scope = timescope( ... 'SampleRate',fileReader.SampleRate, ... 'TimeSpanSource','Property','TimeSpan',1, ... 'BufferLength',44100*4, ... 'YLimits',[-1,1], ... 'TimeSpanOverrunAction','Scroll', ... 'ShowGrid',true, ... 'LayoutDimensions',[2,1], ... 'NumInputPorts',2, ... 'Title', ... ['Original vs. Compressed Audio (top)' ... ' and Compressor Gain in dB (bottom)']); scope.ActiveDisplay = 2; scope.YLimits = [-4,0]; scope.YLabel = 'Gain (dB)';
Воспроизвести обработанный звук и визуализировать его в области.
while ~isDone(fileReader) x = fileReader(); [y,g] = dRC(x); deviceWriter(y); scope([x(:,1),y(:,1)],g(:,1)) end release(dRC) release(deviceWriter) release(scope)

Ограничитель динамического диапазона - особый тип компрессора динамического диапазона. В ограничителях уровень выше операционного порога жестко ограничен. В простейшей реализации ограничителя эффект эквивалентен отсечению звука. В компрессорах уровень выше эксплуатационного порога понижается с использованием заданной степени сжатия. Использование коэффициента сжатия приводит к более плавному обработанному сигналу.
Сравнение ограничителя и компрессора, применяемых к синусоиде
Создать limiter object™ системы и compressor Системный объект. Установите AttackTime и ReleaseTime свойства обоих объектов обнуляются. Создание audioOscillator Системный объект для генерации синусоиды с Frequency установить в значение 5 и Amplitude установить в значение 0.1.
dRL = limiter('AttackTime',0,'ReleaseTime',0); dRC = compressor('AttackTime',0,'ReleaseTime',0); osc = audioOscillator('Frequency',5,'Amplitude',0.1);
Создайте область времени для визуализации сгенерированной синусоиды и обработанной синусоиды.
scope = timescope( ... 'SampleRate',osc.SampleRate, ... 'TimeSpanSource','Property','TimeSpan',2, ... 'BufferLength',osc.SampleRate*4, ... 'TimeSpanOverrunAction','Scroll', ... 'ShowGrid',true, ... 'LayoutDimensions',[2 1], ... 'NumInputPorts',2); scope.ActiveDisplay = 1; scope.Title = 'Original Signal vs. Limited Signal'; scope.YLimits = [-1,1]; scope.ActiveDisplay = 2; scope.Title = 'Original Signal vs. Compressed Signal'; scope.YLimits = [-1,1];
В контуре аудиопотока визуализируйте исходную синусоиду и синусоиду, обработанные ограничителем и компрессором. Увеличьте амплитуду исходной синусоиды, чтобы проиллюстрировать эффект.
while osc.Amplitude < 0.75 x = osc(); xLimited = dRL(x); xCompressed = dRC(x); scope([x xLimited],[x xCompressed]); osc.Amplitude = osc.Amplitude + 0.0002; end release(scope)

release(dRL) release(dRC) release(osc)
Сравнение ограничителя и компрессора, применяемых к звуковому сигналу
Сравните влияние ограничителей динамического диапазона и компрессоров на барабанную дорожку. Создать dsp.AudioFileReader Системный объект и audioDeviceWriter Системный объект для чтения звука из файла и записи на устройство вывода звука. Чтобы подчеркнуть эффект управления динамическим диапазоном, установите эксплуатационный порог ограничителя и компрессора на -20 дБ.
dRL.Threshold = -20; dRC.Threshold = -20; fileReader = dsp.AudioFileReader('FunkyDrums-44p1-stereo-25secs.mp3'); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);
Считывание последовательных кадров из аудиофайла в цикле. Прослушивание и сравнение влияния динамического ограничения диапазона и динамического сжатия диапазона на звуковой сигнал.
numFrames = 300;
fprintf('Now playing original signal...\n')Now playing original signal...
for i = 1:numFrames x = fileReader(); deviceWriter(x); end reset(fileReader); fprintf('Now playing limited signal...\n')
Now playing limited signal...
for i = 1:numFrames x = fileReader(); xLimited = dRL(x); deviceWriter(xLimited); end reset(fileReader); fprintf('Now playing compressed signal...\n')
Now playing compressed signal...
for i = 1:numFrames x = fileReader(); xCompressed = dRC(x); deviceWriter(xCompressed); end release(fileReader) release(deviceWriter) release(dRC) release(dRL)
Плозивы - созвучные звуки, возникающие в результате внезапного высвобождения воздушного потока. Они наиболее выражены в словах, начинающихся со звуков p, d и g. Плосивы могут быть подчеркнуты в процессе записи и часто неудивительны, чтобы услышать. В этом примере сведение к минимуму спозивов речевого сигнала осуществляется с помощью фильтрации верхних частот и низкополосного сжатия.
Создать dsp.AudioFileReader объект и audioDeviceWriter объект для считывания звукового сигнала из файла и записи звукового сигнала в устройство. Воспроизведение необработанного сигнала. Затем отпустите средство чтения файлов и устройство записи.
fileReader = dsp.AudioFileReader('audioPlosives.wav'); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); while ~isDone(fileReader) audioIn = fileReader(); deviceWriter(audioIn); end release(deviceWriter) release(fileReader)
Проектирование фильтра верхних частот с крутым накатом всех частот ниже 120 Гц. Использовать dsp.BiquadFilter изобретение позволяет реализовать конструкцию фильтра верхних частот. Создайте перекрестный фильтр с одним перекрестным фильтром на частоте 250 Гц. Перекрестный фильтр позволяет разделить интересующую полосу для обработки. Создайте компрессор динамического диапазона, чтобы сжать динамический диапазон плозивных звуков. Чтобы не применять прирост подпитки, установите MakeUpGainMode комуProperty" и используйте 0 дБ по умолчанию MakeUpGain значение свойства. Создайте область времени для визуализации обработанного и необработанного аудиосигнала.
[B,A] = designVarSlopeFilter(48,120/(fileReader.SampleRate/2),"hi"); biquadFilter = dsp.BiquadFilter( ... "SOSMatrixSource","Input port", ... "ScaleValuesInputPort",false); crossFilt = crossoverFilter( ... "SampleRate",fileReader.SampleRate, ... "NumCrossovers",1, ... "CrossoverFrequencies",250, ... "CrossoverSlopes",48); dRCompressor = compressor( ... "Threshold",-35, ... "Ratio",10, ... "KneeWidth",20, ... "AttackTime",1e-4, ... "ReleaseTime",3e-1, ... "MakeUpGainMode","Property", ... "SampleRate",fileReader.SampleRate); scope = timescope( ... "SampleRate",fileReader.SampleRate, ... "TimeSpanSource","property","TimeSpan",3, ... "BufferLength",fileReader.SampleRate*3*2, ... "YLimits",[-1 1], ... "ShowGrid",true, ... "ShowLegend",true, ... "ChannelNames",{'Original','Processed'});
В цикле аудиопотока:
Чтение в кадре аудиофайла.
Примените фильтрацию верхних частот с помощью биквад-фильтра.
Разделение звукового сигнала на две полосы.
Примените динамическое сжатие диапазона к нижней полосе.
Переделать каналы.
Запишите обработанный аудиосигнал на аудиоустройство для прослушивания.
Визуализация обработанных и необработанных сигналов во временном диапазоне.
Рекомендуется деблокировать объекты после их завершения.
while ~isDone(fileReader) audioIn = fileReader(); audioIn = biquadFilter(audioIn,B,A); [band1,band2] = crossFilt(audioIn); band1compressed = dRCompressor(band1); audioOut = band1compressed + band2; deviceWriter(audioOut); scope([audioIn audioOut]) end
Рекомендуется деблокировать объекты после их завершения.
release(deviceWriter) release(fileReader) release(crossFilt) release(dRCompressor) release(scope)

Создать dsp.AudioFileReader для чтения в аудио покадровом режиме. Создание audioDeviceWriter для записи звука на звуковую карту. Создать compressor для обработки аудиоданных. Звонить visualize для построения графика статической характеристики compressor.
frameLength = 1024; fileReader = dsp.AudioFileReader('RockDrums-44p1-stereo-11secs.mp3', ... 'SamplesPerFrame',frameLength); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); dRC = compressor('SampleRate',fileReader.SampleRate); visualize(dRC)

Создать timescope для визуализации исходного и обработанного звука.
scope = timescope( ... 'SampleRate',fileReader.SampleRate, ... 'TimeSpanSource','property',... 'TimeSpan',1, ... 'BufferLength',fileReader.SampleRate*4, ... 'YLimits',[-1,1], ... 'TimeSpanOverrunAction','Scroll', ... 'ShowGrid',true, ... 'LayoutDimensions',[2,1], ... 'NumInputPorts',2, ... 'Title','Original vs. Compressed Audio (top) and Compressor Gain in dB (bottom)'); scope.ActiveDisplay = 2; scope.YLimits = [-4,0]; scope.YLabel = 'Gain (dB)';
Звонить parameterTuner открытие пользовательского интерфейса для настройки параметров компрессора во время потоковой передачи.
parameterTuner(dRC)
![Figure Audio Parameter Tuner: compressor [dRC] contains an object of type uigridlayout.](../../examples/audio/win64/TuneCompressorParametersExample_02.png)
В цикле аудиопотока:
Считывание в кадре звука из файла.
Применение динамического сжатия диапазона.
Запишите кадр звука на аудиоустройство для прослушивания.
Визуализация исходного звука, обработанного звука и примененного коэффициента усиления.
Во время потоковой передачи настройте параметры компрессора динамического диапазона и прослушайте эффект.
while ~isDone(fileReader) audioIn = fileReader(); [audioOut,g] = dRC(audioIn); deviceWriter(audioOut); scope([audioIn(:,1),audioOut(:,1)],g(:,1)); drawnow limitrate % required to update parameter end

![Figure Audio Parameter Tuner: compressor [dRC] contains an object of type uigridlayout.](../../examples/audio/win64/TuneCompressorParametersExample_04.png)
Рекомендуется деблокировать объекты после их завершения.
release(deviceWriter) release(fileReader) release(dRC) release(scope)

Использовать вход EnableSidechain compressor изобретение направлено на снижение уровня амплитуды отдельного звукового сигнала. Сигнал боковой цепи управляет сжатием входного звукового сигнала. Когда сигнал боковой цепи превышает порог сжатия, компрессор активирует и уменьшает амплитуду входного сигнала. Когда уровень сигнала боковой цепи падает ниже порогового значения, звуковой вход возвращается к своей несжатой амплитуде.
Подготовка аудиофайлов
В этом разделе выполняется повторная выборка и нулевая вставка речевого файла для использования в качестве входных данных EnableSidechain собственность вашего compressor объект.
Считывание звукового сигнала. Выполните его повторную выборку в соответствии с частотой дискретизации входного аудиосигнала (44,1 кГц).
targetFs = 44100;
[originalSpeech,originalFs] = audioread('Rainbow-16-8-mono-114secs.wav');
resampledSpeech = resample(originalSpeech,targetFs,originalFs);Установите начало повторно дискретизированного сигнала с нулями на 10 секунд. Это позволяет четко слышать входной аудиосигнал до применения какого-либо сжатия.
resampledSpeech = [zeros(10*targetFs,1);resampledSpeech];
Нормализуйте амплитуду, чтобы избежать потенциального отсечения.
resampledSpeech = resampledSpeech ./ max(resampledSpeech);
Запишите повторно дискретизированный, заполненный нулями и нормализованный сигнал боковой цепи в файл.
audiowrite('resampledSpeech.wav',resampledSpeech,targetFs);Создание аудиообъектов
Построить dsp.AudioFileReader объект для входных и боковых сигналов. Использование свойства ReadRange AudioFileReader, выберите второй стих входного сигнала и первые 26,5 секунд сигнала боковой цепи для воспроизведения. Чтобы разрешить скрипт работать бесконечно, измените playbackCount переменная из 1 кому Inf.
inputAudio = 'SoftGuitar-44p1_mono-10mins.ogg'; sidechainAudio = 'resampledSpeech.wav'; playbackCount = 1; inputAudioAFR = dsp.AudioFileReader(inputAudio,'PlayCount',playbackCount,'ReadRange',... [115*targetFs round(145.4*targetFs)]); sidechainAudioAFR = dsp.AudioFileReader(sidechainAudio,'PlayCount',playbackCount,... 'ReadRange',[1 round(26.5*targetFs)]);
Построить compressor объект. Используйте высокий коэффициент, быстрое время ожидания и умеренно медленное время восстановления. Эти настройки идеально подходят для голосовой связи. Быстрое время атаки гарантирует, что входной звук сжимается почти сразу после того, как сигнал боковой цепи превысит порог сжатия. Медленное время освобождения гарантирует, что сжатие входного звука продолжается через любые потенциальные короткие бесшумные области в сигнале боковой цепи.
iAmYourCompressor = compressor('EnableSidechain',true,... 'SampleRate',targetFs,... 'Threshold',-40,... 'Ratio',8,... 'AttackTime',0.01,... 'ReleaseTime',1.5);
Построение audioDeviceWriter объект для воспроизведения боковой цепи и входных сигналов.
afw = audioDeviceWriter;
Построить timescope обеспечение возможности просмотра несжатого входного сигнала, сигнала боковой цепи, а также сжатого входного сигнала.
scope = timescope('NumInputPorts',3,... 'SampleRate',targetFs,... 'TimeSpanSource','property',... 'TimeSpan',5,... 'TimeDisplayOffset',0,... 'LayoutDimensions',[3 1],... 'BufferLength',targetFs*15,... 'TimeSpanOverrunAction','Scroll',... 'YLimits',[-1 1],... 'ShowGrid',true,... 'Title','Uncompressed Input Audio - Guitar'); scope.ActiveDisplay = 2; scope.YLimits = [-1 1]; scope.Title = 'Sidechain Audio - Speech'; scope.ShowGrid = true; scope.ActiveDisplay = 3; scope.YLimits = [-1 1]; scope.ShowGrid = true; scope.Title = 'Compressed Input Audio - Guitar';
Создать цикл потоковой передачи звука
Считывайте в кадре аудио из входных и боковых сигналов. Обработка входных и боковых сигналов с помощью compressor объект. Воспроизведение обработанных аудиосигналов и отображение аудиоданных с помощью timescope объект.
Верхняя панель вашего timescope отображает несжатый входной аудиосигнал, а средняя панель отображает звуковой сигнал боковой цепи. На нижней панели отображается сжатый входной звуковой сигнал. Обратите внимание, что амплитуды сигналов на верхней и нижней панелях идентичны до тех пор, пока не начнется сигнал боковой цепи. Как только сигнал боковой цепи активируется, амплитуда сигнала в нижней панели сжимается. Как только сигнал боковой цепи заканчивается, амплитуда сигнала в нижней панели начинает возвращаться к своему несжатому уровню.
while ~isDone(inputAudioAFR) inputAudioFrame = inputAudioAFR(); sideChainAudioFrame = sidechainAudioAFR(); compressorOutput = iAmYourCompressor(inputAudioFrame,sideChainAudioFrame); afw(sideChainAudioFrame+compressorOutput); scope(inputAudioFrame,sideChainAudioFrame,compressorOutput); end
Освободите объекты.
release(inputAudioAFR) release(sidechainAudioAFR) release(iAmYourCompressor) release(afw) release(scope)

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

N-точечный сигнал x [n] преобразуется в децибелы:
| x [n] |
xdB [n] проходит через компьютер усиления. Компьютер усиления использует статические характеристические свойства компрессора динамического диапазона для ослабления усиления, которое выше порогового значения.
Если указано мягкое колено, компьютер усиления имеет следующую статическую характеристику:
W2) T + (xdB − T) RxdB > (T + W2),
где T - порог, R - отношение, а W - ширина колена.
Если указано жесткое колено, компьютер усиления имеет следующую статическую характеристику:
T) RxdB≥T
Вычисленный коэффициент усиления, gc [n], вычисляется как
xdB [n].
gc [n] сглаживается с использованием заданных свойств времени атаки и освобождения:
[n], gc [n] > gs [n − 1]
Коэффициент времени атаки, αА, рассчитывается как
× TA).
Коэффициент времени высвобождения, αR, рассчитывается как
× TR).
TA
- период времени атаки, указанный AttackTime собственность. TR
- период времени деблокирования, указанный ReleaseTime собственность. Fs - входная частота дискретизации, определяемая SampleRate собственность.
Если MakeUpGainMode установлено значение по умолчанию 'Auto'вычисляется как отрицательное значение вычисленного коэффициента усиления для входного сигнала 0 дБ,
= 0.
При установившемся входе 0 дБ эта конфигурация достигает установившегося выхода 0 дБ. Прирост подпитки определяется Threshold, Ratio, и KneeWidth свойства. Это не зависит от входного сигнала.
Коэффициент усиления, M, добавляется к сглаженному коэффициенту усиления, gs [n]:
n] + M
Вычисленный коэффициент усиления в дБ, gm [n], преобразуется в линейную область:
n] 20)
Выходной сигнал компрессора динамического диапазона приведен в виде
glin [n].
[1] Джаннулис, Димитриос, Майкл Массберг и Джошуа Д. Рейсс. «Проектирование цифрового компрессора динамического диапазона - учебное пособие и анализ». Журнал Общества аудиотехники. Том 60, выпуск 6, 2012, стр. 399-408.
Примечания и ограничения по использованию:
Системные объекты в генерации кода MATLAB (кодер MATLAB)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.