mls

Максимальная последовательность длины

Синтаксис

excitation = mls
excitation = mls(L)
excitation = mls(L,Name,Value)

Описание

excitation = mls возвращается сигнал возбуждения сгенерировал использование метода максимальной последовательности длины (MLS). Этот тип последовательности является псевдослучайной двоичной последовательностью.

пример

excitation = mls(L) задает продолжительность вывода L сигнала возбуждения.

пример

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

Примеры

свернуть все

Используйте 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')

Реплицируйте сигнал возбуждения четыре раза, чтобы измерить среднее значение трех измерений. Запись первой последовательности 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')

В реальном сценарии последовательность 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')

Сгенерируйте сигнал MLS, который является 2^14-1 выборки долго и имеет уровень-5 дБ.

L = 2^14-1;
level = -5;
excitation = mls(L,'ExcitationLevel',level);

Визуализируйте возбуждение вовремя и частоту времени. Для графика временного интервала постройте только первые 200 выборок для видимости. Шаблон является постоянным.

plot(excitation(1:200))

spectrogram(excitation,512,0,1024,'yaxis')

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

свернуть все

Продолжительность возбуждения сигнализирует, чтобы сгенерировать, заданный как скаляр в области значений [3,229).

Требуемая продолжительность вывода L должна быть степенью двойки минус одна. В противном случае продолжительность вывода увеличивается до следующей допустимой длины.

Примечание

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

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'ExcitationLevel',-5

Уровень возбуждения сигнализирует, чтобы сгенерировать в дБ, заданном как скаляр в области значений [-42,0].

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

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

свернуть все

Сигнал возбуждения, сгенерированный использование метода максимальной последовательности длины (MLS), возвратился как вектор-столбец.

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

Ссылки

[1] Парень-Bart, Стэн, Жан-Жак Эмбрашц и Доминик Аршамбо. "Сравнение Различных Импульсных Техник измерений Ответа". Журнал Общества звукоинженеров. Издание 50, Выпуск 4, 2002, стр 246–262.

Смотрите также

| |

Введенный в R2018b