exponenta event banner

dsp. BlockLMSFilter

Вычисление выходных данных, ошибок и весов с использованием блочного адаптивного алгоритма LMS

Описание

dsp.BlockLMSFilter Система object™ вычисляет выходные данные, ошибки и веса с помощью блочного адаптивного алгоритма LMS.

Для вычисления выходных данных, ошибок и весов:

  1. Создать dsp.BlockLMSFilter и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

blms = dsp.BlockLMSFilter возвращает адаптивный фильтр FIR, blms, которая фильтрует входной сигнал и вычисляет веса фильтра на основе алгоритма наименьших средних квадратов (LMS) блока.

пример

blms = dsp.BlockLMSFilter(length,blocksize) возвращает адаптивный фильтр FIR, blms, с Length свойство имеет значение length и BlockSize свойство имеет значение blocksize.

пример

blms = dsp.BlockLMSFilter(Name,Value) возвращает адаптивный фильтр FIR, blms, каждое указанное свойство имеет заданное значение. Заключите каждое имя свойства в отдельные кавычки. Неопределенные свойства имеют значения по умолчанию.

Свойства

развернуть все

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

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Укажите длину вектора весов фильтра FIR как положительный целочисленный скаляр.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите источник коэффициента размера шага адаптации как Property или Input port.

Укажите коэффициент размера шага адаптации как скалярное, неотрицательное числовое значение.

Настраиваемый: Да

Зависимости

Это свойство применяется только при установке для свойства StepStartSource значения 'Property'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите коэффициент утечки, используемый в алгоритме LMS с утечкой, как скалярное числовое значение между 0 и 1, оба включительно. Если значение меньше 1объект System реализует алгоритм licy LMS. Значение по умолчанию: 1обеспечение отсутствия утечки в адаптирующем алгоритме.

Настраиваемый: Да

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите начальные значения весов фильтра как скаляр или вектор длины, равный значению свойства Length.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Укажите, когда объект должен адаптировать веса фильтра. По умолчанию это свойство имеет значение falseи фильтр непрерывно обновляет веса фильтра. Если для этого свойства установлено значение true, вход управления адаптацией предоставляется объекту. Если это значение не равно нулю, фильтр непрерывно обновляет веса фильтра. Если входной сигнал равен нулю, веса фильтра остаются на их текущем значении.

Укажите, может ли фильтр FIR сбросить веса фильтра. По умолчанию это свойство имеет значение falseи объект не сбрасывает веса. Если для этого свойства установлено значение true, необходимо предоставить управляющий вход сброса для объекта, и WeightsResetCondition применяется свойство. Объект сбрасывает веса фильтра на основе значений WeightsResetCondition и вход сброса в алгоритм объекта.

Укажите событие для сброса весов фильтра в качестве одного из Rising edge, Falling edge, Either edge, или Non-zero. Объект сбрасывает веса фильтра на основе значений этого свойства и сигнала сброса, вводимого в алгоритм объекта.

Зависимости

Это свойство применяется только при установке WeightsResetInputPort свойство для true.

Установить для этого свойства значение true для вывода адаптированных весов фильтра. Значение по умолчанию: true.

Использование

Описание

пример

[y,err,wts] = blms(x,d) фильтрует вход x, использование d в качестве требуемого сигнала и возвращает отфильтрованный выходной сигнал в y. Ошибка фильтра: err, и предполагаемые веса фильтра составляют wts. Веса фильтра обновляются один раз для каждого блока данных, обрабатываемого объектом.

[y,err] = blms(x,d) возвращает только отфильтрованные выходные данные y и ошибка фильтра err когда WeightsOutputPort свойство - false.

[___] = blms(x,d,mu) использование mu как размер шага при установке StepSizeSource свойство для Input port. Эти входные аргументы могут использоваться с любым из предыдущих наборов выходных аргументов.

[___] = blms(x,d,a) использование a в качестве элемента управления адаптацией при установке AdaptInputPort свойство для true. Когда a является ненулевым, фильтр непрерывно обновляет веса фильтра. Когда a равно нулю, весовые коэффициенты фильтра остаются постоянными.

[___] = blms(x,d,r) использование r как сигнал сброса при установке WeightsResetInputPort свойство для true. Используйте WeightsResetCondition для установки условия триггера сброса. Если происходит событие сброса, фильтр сбрасывает веса фильтра до их начальных значений.

[y,err,wts] = blms(x,d,mu,a,r) вход фильтров x, использование d в качестве требуемого сигнала, mu как размер шага, a в качестве управления адаптацией, и r в качестве сигнала сброса. Объект возвращает отфильтрованные выходные данные y, ошибка фильтра errи адаптированные веса фильтра wts. Установите соответствующие свойства, чтобы обеспечить все возможные входные данные.

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

развернуть все

Сигнал, который должен быть отфильтрован блочным фильтром LMS. Вход, xи требуемый сигнал, d, должен иметь одинаковый размер и тип данных.

Длина ввода должна быть целым числом, кратным BlockSize значение свойства.

Типы данных: single | double
Поддержка комплексного номера: Да

Фильтр LMS адаптирует свои веса фильтра, wts, для минимизации ошибки, err, и сходятся входной сигнал x к требуемому сигналу d как можно ближе.

Вход, xи требуемый сигнал, d, должен иметь одинаковый размер и тип данных.

Типы данных: single | double
Поддержка комплексного номера: Да

Коэффициент размера шага адаптации, заданный как скалярное, неотрицательное числовое значение. Тип данных ввода размера шага должен соответствовать типу данных x и d.

Небольшой размер шага обеспечивает небольшую ошибку установившегося состояния между выходными данными y и желаемый сигнал d. Если размер шага мал, скорость сходимости фильтра уменьшается. Чтобы повысить скорость сходимости, увеличьте размер шага. Обратите внимание, что если размер шага велик, фильтр может стать нестабильным. Чтобы вычислить максимальный размер шага, который может принять фильтр, не становясь нестабильным, используйте maxstep функция.

Зависимости

Это свойство применяется только при установке для свойства StepStartSource значения 'Input port'.

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

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

Зависимости

Этот ввод требуется, когда AdaptInputPort свойство имеет значение true.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Сброс сигнала, сбрасывающего веса фильтра на основе значений WeightsResetInputPort собственность.

Зависимости

Этот ввод требуется, когда WeightsResetInputPort свойство имеет значение true.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

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

развернуть все

Отфильтрованные выходные данные, возвращаемые в виде скаляра или вектора столбца. Объект адаптирует свои веса фильтра для схождения входного сигнала x для соответствия требуемому сигналу d. Фильтр выдает сходящийся сигнал.

Типы данных: single | double
Поддержка комплексного номера: Да

Разность между выходным сигналом y и желаемый сигнал d, возвращается в виде скаляра или вектора столбца. Тип данных err соответствует типу данных y. Целью адаптивного фильтра является минимизация этой ошибки. Объект адаптирует свои веса для сходимости к оптимальным весам фильтра, которые производят выходной сигнал, который близко совпадает с требуемым сигналом.

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

Адаптивные веса фильтра, возвращаемые как скаляр или вектор столбца длиной, заданной значением в Length собственность.

Тип данных wts соответствует типу данных y.

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

Функции объекта

Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

развернуть все

msesimОцененная среднеквадратичная ошибка для адаптивных фильтров
maxstepМаксимальный размер шага для сходимости адаптивного фильтра LMS
stepЗапустить алгоритм объекта System
releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System

Примеры

свернуть все

Примечание.При использовании R2016a или более ранней версии замените каждый вызов объекта эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

 blms = dsp.BlockLMSFilter(10,5);
 blms.StepSize = 0.01;
 blms.WeightsOutputPort = false;
 filt = dsp.FIRFilter;
 filt.Numerator = fir1(10,[.5, .75]);
 x = randn(1000,1); % Noise
 d = filt(x) + sin(0:.05:49.95)'; % Noise + Signal
 [y, err] = blms(x, d);
 subplot(2,1,1);
 plot(d);
 title('Noise + Signal');
 subplot(2,1,2);
 plot(err);
 title('Signal');

Figure contains 2 axes. Axes 1 with title Noise + Signal contains an object of type line. Axes 2 with title Signal contains an object of type line.

Примечание.При использовании R2016a или более ранней версии замените каждый вызов объекта эквивалентным step синтаксис. Например, obj(x) становится step(obj,x).

fir = fir1(31,0.5);
firFilter = dsp.FIRFilter('Numerator',fir); % FIR system to be identified 
iirFilter = dsp.IIRFilter('Numerator',sqrt(0.75),...
        'Denominator',[1 -0.5]);
x = iirFilter(sign(randn(2000,25))); 
n = 0.1*randn(size(x));             % Observation noise signal 
d = firFilter(x)+n;                   % Desired signal 
l = 32;                             % Filter length 
mu = 0.008;                         % Block LMS Step size. 
m  = 32;                            % Decimation factor for analysis
                                    % and simulation results 
fir = dsp.BlockLMSFilter(l,'StepSize',mu); 
[simmse,meanWsim,Wsim,traceKsim] = msesim(fir,x,d,m);
plot(m*(1:length(simmse)),10*log10(simmse));
xlabel('Iteration'); ylabel('MSE (dB)');
title('Learning curve for block LMS filter used in system identification')

Figure contains an axes. The axes with title Learning curve for block LMS filter used in system identification contains an object of type line.

Алгоритмы

Этот объект реализует алгоритм, входы и выходы, описанные на странице ссылок блока фильтра блочного LMS. Свойства объекта соответствуют параметрам блока.

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

.

См. также

Объекты

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