impzest

Оценка импульсной характеристики аудиосистемы

Описание

пример

ir = impzest(excitation,response) возвращает оценку импульсной характеристики (IR) на основе excitation и response.

пример

ir = impzest(excitation,response,Name,Value) задает опции с использованием одного или нескольких Name,Value аргументы в виде пар.

Примеры

свернуть все

Создайте сигнал возбуждения тонального сигнала свип-сигнала при помощи sweeptone функция.

excitation = sweeptone(2,1,44100);

plot(excitation)
title('Excitation')

Figure contains an axes. The axes with title Excitation contains an object of type line.

Пропустите сигнал возбуждения через фильтр с бесконечной импульсной характеристикой (БИХ) и добавьте шум, чтобы смоделировать реальную запись (отклик системы).

[B,A] = butter(10,[.1 .7]);
rec = filter(B,A,excitation);
nrec = rec + 0.12*randn(size(rec));

plot(nrec)
title('System Response')

Figure contains an axes. The axes with title System Response contains an object of type line.

Передайте сигнал возбуждения и отклик системы на impzest функция для оценки импульсной характеристики. Обрезать оценку до 100 точек. Использование impz для определения истинной импульсной характеристики системы. Постройте график истинной импульсной характеристики и расчетной импульсной характеристики для сравнения.

irEstimate = impzest(excitation,nrec);
irEstimate = irEstimate(1:101);

irTrue = impz(B,A,101);
plot(0:100,irEstimate, ...
     0:100,irTrue,'ro')

legend('True impulse response','Estimated impulse response')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent True impulse response, Estimated impulse response.

Использование audioread для чтения в записи импульсной характеристики. Создайте dsp.FrequencyDomainFIRFilter объект для выполнения фильтрации частотного диапазона с использованием известной импульсной характеристики.

[irKnown,fs] = audioread('ChurchImpulseResponse-16-44p1-mono-5secs.wav');
systemModel = dsp.FrequencyDomainFIRFilter(irKnown');

Создайте сигнал возбуждения MLS при помощи mls функция. Сигнал возбуждения MLS должен быть длиннее импульсной характеристики. Обратите внимание, что длина возбуждения MLS расширена до следующей степени двойки минус один.

excitation = mls(numel(irKnown)+1);

plot(excitation)
title('Excitation')

Figure contains an axes. The axes with title Excitation contains an object of type line.

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

numRuns = 4;
excrep = repmat(excitation,numRuns,1);
excrep = [excrep;zeros(numel(irKnown)+1,1)];

Пропустите сигнал возбуждения через известный фильтр и затем добавьте шум для моделирования записи реального слова (отклик системы). Вырежьте задержку, введенную в начале фильтром.

rec = systemModel(excrep);
rec = rec + 0.1*randn(size(rec));

rec = rec(numel(irKnown)+2:end,:);

plot(rec)
title('System Response')

Figure contains an axes. The axes with title System Response contains an object of type line.

В реальном сценарии последовательность MLS воспроизводится обратно в тестируемой системе во время записи. Запись будет вырезана так, чтобы она начиналась в момент, когда последовательность MLS захватывается и обрезается до длительности повторяемой последовательности.

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

irEstimate = impzest(excitation,rec);

samples = 1:numel(irKnown);
plot(samples,irEstimate(samples),'bo', ...
     samples,irKnown(samples),'m.')

legend('Known impulse response','Simulation of estimated impulse response')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Known impulse response, Simulation of estimated impulse response.

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

свернуть все

Один период сигнала возбуждения, входа в аудиосистему, задается как вектор-столбец.

Можно сгенерировать сигналы возбуждения при помощи mls (последовательность максимальной длины) или sweeptone (экспоненциальное свипирование синуса).

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

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

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'WarmupRuns',2

Количество запусков в ответе, заданное как неотрицательное целое число. impzest функция оценивает импульсную характеристику после отбрасывания заданного количества запусков из response.

Количество запусков по умолчанию зависит от того, был ли сигнал возбуждения сгенерирован с помощью mls или sweeptone функция:

  • mls –– 1

  • sweeptone –– 0

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

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

свернуть все

Оценка импульсной характеристики аудиосистемы, возвращенная как вектор-столбец или матрица. Размер ir is L -by - C, где:

  • L -- Длина MLS или длительность тишины стреловидного тонального сигнала

  • C -- Количество столбцов (каналов) в ответном сигнале

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

Ссылки

[1] Фарино, Анджело. «Достижения в измерениях импульсной характеристики свипами синуса». Представлен на 122-м конгрессе Общества аудиотехники, Вена, Австрия, 2007 год.

[2] Ги-Барт, Стэн, Жан-Жак Эмбрахт и Доминик Архамбо. Сравнение различных методов измерения импульсной характеристики. Журнал Общества Аудиотехники. Том 50, Выпуск 4, 2002, стр. 246-262.

[3] Армеллони, Энрико, Кристиан Джоттоли и Анджело Фарина. «Реализация секционированной свертки в реальном времени на плате DSP». Применение обработки сигналов к аудио и акустике, 2003 IEEE Workshop, стр. 71-74. IEEE, 2003.

Введенный в R2018b