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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object. The axes object contains an object of type line.

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

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

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

свернуть все

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

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

Примечание

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

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

Аргументы name-value

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

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

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

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

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

свернуть все

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

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

Ссылки

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

| |

Введенный в R2018b