exponenta event banner

graphicEQ

Стандартный графический эквалайзер

Описание

graphicEQ Система object™ реализует графический эквалайзер, который может настраивать усиление на отдельных октавных или дробных октавных полосах. Объект фильтрует данные независимо по каждому входному каналу с течением времени, используя спецификации фильтра. Центральная и граничная частоты полос основаны на стандарте ANSI S1.11-2004.

Для выравнивания звукового сигнала:

  1. Создать graphicEQ и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

equalizer = graphicEQ создает графический эквалайзер со значениями по умолчанию.

equalizer = graphicEQ(Name,Value) задает каждое свойство Name к указанному Value. Неопределенные свойства имеют значения по умолчанию.

Пример: equalizer = graphicEQ('Structure','Parallel','EQOrder','1/3 octave') создает объект System, equalizer, которая реализует фильтрацию с использованием параллельной структуры и полосы пропускания фильтра в одну треть октавы.

Свойства

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

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Коэффициент усиления каждой октавы дробной октавной полосы в дБ, заданный как вектор строки с длиной, определяемой свойством Bandwidth:

  • '1 octave' -- Укажите коэффициенты усиления как вектор строки из 10 элементов.

  • '2/3 octave' -- Укажите коэффициенты усиления как вектор строки из 15 элементов.

  • '1/3 octave' -- Укажите коэффициенты усиления как 30-элементный вектор строки.

Пример: equalizer = graphicEQ('Bandwidth','2/3 octave','Gains',[5,5,5,5,5,0,0,0,0,0,-5,-5,-5,-5,-5]) создает 2-третий октавный графический эквалайзер с заданными коэффициентами усиления.

Можно настроить выигрыши графического эквалайзера, когда объект заблокирован. Однако невозможно настроить длину выигрышей, когда объект заблокирован.

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

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

Порядок отдельных диапазонов эквалайзера, определяемый как положительное четное целое число. Все полосы корректора имеют одинаковый порядок.

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

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

Полоса пропускания фильтра в октавах, указанная как '1 octave', '2/3 octave', или '1/3 octave'.

Стандарт ANSI S1.11-2004 определяет центральную и граничную частоты эквалайзера. Стандарт ISO 266:1997 (E) определяет соответствующие предпочтительные частоты для целей маркировки.

1-Octave Пропускная способность

Центральные частоты32 63 126 251 501 1000 1995 3981 7943 15849
Граничные частоты22 45 89 178 355 708 1413 2818 5623 1122 22387
Предпочтительные частоты31.5 63 125 250 500 1000 2000 4000 8000 16000

2/3-Octave Пропускная способность

Центральные частоты25 40 63 100 158 251 398 631 1000 1585 2512 3981 6310 10000 15849
Граничные частоты20 32 50 79 126 200 316 501 794 1259 1995 3162 5012 7943 12589 19953
Предпочтительные частоты25 40 63 100 160 250 400 630 1000 1600 2500 4000 6300 10000 16000

1/3-Octave Пропускная способность

Центральные частоты25 32 40 50 63 79 100 126 158 200 251 316 398 501 631 794 1000 1259 1585 1995 2512 3162 3981 5012 6310 7943 10000 12589 15849 19953
Граничные частоты22 28 35 45 56 71 89 112 141 178 224 282 355 447 562 708 891 1122 1413 1778 2239 2818 3548 4467 5623 7079 8913 11220 14125 17783 22387
Предпочтительные частоты25 31.5 40 50 63 80 100 125 160 200 250 315 400 500 630 800 1000 1250 1600 2000 2500 3150 4000 5000 6300 8000 10000 12500 16000 20000

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

Типы данных: char | string

Тип реализации, указанный как 'Cascade' или 'Parallel'. Для получения информации об этих структурах реализации см. раздел Алгоритмы и графическое выравнивание.

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

Типы данных: char | string

Частота входных выборок в Гц, заданная как положительный скаляр.

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

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

Использование

Описание

пример

audioOut = equalizer(audioIn) выполняет графическое выравнивание по входному сигналу, audioInи возвращает выровненный сигнал, audioOut. Тип выравнивания определяется алгоритмом и свойствами graphicEQ Системный объект, equalizer.

Входные аргументы

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

Вход звука в графический эквалайзер, заданный как матрица. Столбцы матрицы обрабатываются как независимые аудиоканалы.

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

Выходные аргументы

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

Аудиовыход от графического эквалайзера, возвращаемый в виде матрицы того же размера, что и audioIn.

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

Функции объекта

Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

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

createAudioPluginClassСоздать класс аудиоплагинов, реализующий функциональность объекта System
coeffsПолучить коэффициенты фильтра
infoПолучить сведения о фильтре
visualizeВизуализация амплитудной характеристики графического эквалайзера
parameterTunerНастройка параметров объекта во время потоковой передачи
configureMIDIНастройка соединений MIDI между аудиообъектом и контроллером MIDI
disconnectMIDIОтключить элементы управления MIDI от аудиообъекта
getMIDIConnectionsПолучение MIDI-соединений аудиообъекта
cloneСоздать повторяющийся объект System
isLockedОпределить, используется ли объект System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System
stepЗапустить алгоритм объекта System

createAudioPluginClass и configureMIDI функции отображают настраиваемые свойства graphicEQ Системный объект для пользовательских параметров:

СобственностьДиапазонОтображениеЕдиница
Gains[–20, 20]линейныйdB

Примеры

свернуть все

Создайте объекты для чтения из аудиофайла и записи на аудиоустройство. Используйте частоту выборки устройства чтения в качестве частоты выборки устройства записи.

frameLength = 512;
reader = dsp.AudioFileReader('RockDrums-48-stereo-11secs.mp3','SamplesPerFrame',frameLength);
player = audioDeviceWriter('SampleRate',reader.SampleRate);

В цикле аудиопотока считывайте аудио из файла и воспроизводите аудио через аудиоустройство.

while ~isDone(reader)
    x = reader();
    player(x);
end
release(reader)
release(player)

Создайте однооктавный графический эквалайзер, реализованный с каскадной структурой. Используйте частоту дискретизации считывателя в качестве частоты дискретизации эквалайзера.

equalizer = graphicEQ( ...
    'Bandwidth','1 octave', ...    
    'Structure','Cascade', ...
    'SampleRate',reader.SampleRate);

Укажите, чтобы увеличить коэффициент усиления на низких частотах, а затем визуализировать эквалайзер.

equalizer.Gains = [5,5,5,5,0,0,0,0,0,0];
visualize(equalizer)

В цикле аудиопотока считывайте аудио из файла, применяйте выравнивание, а затем воспроизводите уравниваемое аудио через аудиоустройство.

while ~isDone(reader)
    x = reader();
    y = equalizer(x);
    player(y);
end
release(reader)
release(player)

Создать dsp.AudioFileReader для чтения в аудио покадровом режиме. Создание audioDeviceWriter для записи звука на звуковую карту. Создать graphicEQ для обработки аудиоданных. Звонить visualize для построения графика частотной характеристики графического эквалайзера.

frameLength = 1024;
fileReader = dsp.AudioFileReader('RockDrums-44p1-stereo-11secs.mp3','SamplesPerFrame',frameLength);
deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);

equalizer = graphicEQ('SampleRate',fileReader.SampleRate,'Gains',[0,10,-10,5,-5,2,-2,1,-1,0]);
visualize(equalizer)

Звонить parameterTuner открытие пользовательского интерфейса для настройки параметров эквалайзера во время потоковой передачи.

parameterTuner(equalizer)

В цикле аудиопотока:

  1. Считывание в кадре звука из файла.

  2. Применить выравнивание.

  3. Запишите кадр звука на аудиоустройство для прослушивания.

Во время потоковой передачи настройте параметры эквалайзера и прослушайте эффект.

while ~isDone(fileReader)
    audioIn = fileReader();
    audioOut = equalizer(audioIn);
    deviceWriter(audioOut);
    drawnow limitrate % required to update parameter
end

Рекомендуется деблокировать объекты после их завершения.

release(deviceWriter)
release(fileReader)
release(equalizer)

Алгоритмы

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

Реализация графического эквалайзера зависит от Structure собственность. Описание преимуществ и недостатков параллельных и каскадных реализаций см. в разделе Графическое выравнивание. Для получения информации о том, как эти алгоритмы реализуются в Audio Toolbox™, см. следующие разделы.

Ссылки

[1] Оливер, Ричард Дж. и Жан-Марк Жо. «Эффективный мультидиапазонный цифровой аудиоэквайзер с точным управлением частотным откликом». Представлен на 139-й Конференции AES, Нью-Йорк, октябрь 2015 года.

[2] Акустичное общество Америки. Американская национальная стандартная спецификация для октавных и дробных октавных аналоговых и цифровых фильтров. ANSI S1.11-2004. Мелвилл, Нью-Йорк: Акустичное общество Америки, 2009.

[3] Международная организация по стандартизации. Акустика - предпочтительные частоты. ISO 266:1997 (E). Второе издание. 1997.

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

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