mls

Последовательность максимальной длины

Описание

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')

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, который имеет длину 2 ^ 14-1 выборки и уровень -5 дБ.

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

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

plot(excitation(1:200))

Figure contains an axes. The axes contains an object of type line.

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

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

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

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

Примечание

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

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

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

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

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

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

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

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

свернуть все

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

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

Ссылки

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

Введенный в R2018b