exponenta event banner

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 является L-by-C, где:

  • L - длина MLS или длительность тона свип-сигнала молчания

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

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

Ссылки

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

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

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

Представлен в R2018b