dsp.BlockLMSFilter

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

Описание

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

Вычислить выход, ошибку и веса:

  1. Создайте dsp.BlockLMSFilter объект и набор его свойства.

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

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Описание

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

пример

blms = dsp.BlockLMSFilter(length,blocksize) возвращает адаптивный КИХ-фильтр, blms, с Length набор свойств к length и BlockSize набор свойств к blocksize.

пример

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Задайте длину КИХ-вектора весов фильтра как положительный целочисленный скаляр.

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

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

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

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

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

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

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство StepSizeSource на 'Property'.

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

Задайте фактор утечки, используемый в текучем LMS-алгоритме в качестве скалярного числового значения между 0 и 1, оба включительно. Когда значение меньше 1, Системный объект реализует текучий LMS-алгоритм. Значением по умолчанию является 1, обеспечение никакой утечки в адаптирующемся алгоритме.

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

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

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

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

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

Задайте, может ли КИХ-фильтр сбросить веса фильтра. По умолчанию значением этого свойства является 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 функция.

Зависимости

Это свойство применяется только, когда вы устанавливаете свойство StepSizeSource на '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

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

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

release(obj)

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

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

Примеры

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

Примечание: Если вы используете 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');

Примечание: Если вы используете 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')

Алгоритмы

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

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

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

Системные объекты

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