EngeeDSP.BlockLMSFilter
Вычисляет выходные данные, ошибку и весовые коэффициенты с помощью блока адаптивного алгоритма наименьших средних квадратов.
| Библиотека |
|
| Блок |
Описание
Системный объект EngeeDSP.BlockLMSFilter вычисляет выходные данные, ошибку и весовые коэффициенты, используя блок, реализующий адаптивный алгоритм наименьших средних квадратов (Least Mean Squares, LMS).
Чтобы вычислить выходные данные, ошибку и весовые коэффициенты, выполните следующие действия:
-
Создайте объект EngeeDSP.BlockLMSFilter и установите его свойства.
-
Вызовите объект с аргументами, как если бы это была функция.
Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.
Синтаксис
Создание
-
blms = EngeeDSP.BlockLMSFilter()— возвращает системный объект адаптивного КИХ-фильтраblms, который фильтрует входной сигнал и вычисляет весовые коэффициенты фильтра на основе блока алгоритма наименьших средних квадратов (LMS). -
blms = EngeeDSP.BlockLMSFilter(length,blocksize)— возвращает системный объект адаптивного КИХ-фильтраblms, у которого для свойства Length установлено значениеlength, а для свойства BlockSize — значениеblocksize. -
blms = EngeeDSP.BlockLMSFilter(Name=Value)— возвращает системный объект адаптивного КИХ-фильтра с заданными свойствами в виде парыName=Value, гдеName— имя свойства, аValue— соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.Пример:
# создание адаптивного КИХ-фильтра с количеством отсчетов, полученных до адаптации весовых коэффициентов, 16 blms = EngeeDSP.BlockLMSFilter(BlockSize = 16)
Использование
-
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. Установите соответствующие свойства, чтобы предоставить все возможные входные данные.
Аргументы
Входные аргументы
#
x —
входные данные
скаляр | вектор-столбец
Details
Сигнал, который будет отфильтрован системным объектом LMS-фильтра. Входной сигнал x и желаемый сигнал d должны иметь одинаковый размер и тип данных.
Длина входного сигнала должна быть целым кратным значению свойства BlockSize.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
d —
желаемый сигнал
скаляр | вектор-столбец
Details
Фильтр LMS адаптирует свои весовые коэффициенты wts для минимизации ошибки err и максимально точного приближения входного сигнала x к желаемому сигналу d.
Входной сигнал x и желаемый сигнал d должны иметь одинаковый размер и тип данных.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
mu —
размер шага
неотрицательный скаляр
Details
Коэффициент размера шага адаптации, заданный как неотрицательный скаляр. Тип данных входного размера шага должен соответствовать типу данных аргументов x и d.
Малый размер шага обеспечивает малую ошибку в установившемся режиме между выходным сигналом y и желаемым сигналом d. Если размер шага мал, скорость сходимости фильтра снижается. Для повышения скорости сходимости увеличьте размер шага. Обратите внимание, что если размер шага велик, фильтр может стать нестабильным.
Зависимости
Чтобы использовать этот аргумент, установите для свойства StepSizeSource значение "Input port".
| Типы данных |
|
#
a —
управление адаптацией
скаляр
Details
Входной сигнал управления адаптацией, определяющий способ обновления весов фильтра. Если значение этого параметра не равно нулю, объект постоянно обновляет веса фильтра. Если значение этого параметра равно нулю, веса фильтра остаются на своих текущих значениях.
Зависимости
Этот аргумент необходимо использовать, если для свойства AdaptInputPort установлено значение true.
| Типы данных |
|
#
r —
сигнал сброса
скаляр
Details
Сигнал сброса, который сбрасывает веса фильтра на основе значений свойства WeightsResetInputPort.
Зависимости
Этот аргумент необходимо использовать, если для свойства WeightsResetInputPort установлено значение true.
| Типы данных |
|
Выходные аргументы
#
y —
отфильтрованный выходной сигнал
скаляр | вектор-столбец
Details
Отфильтрованный выходной сигнал, возвращаемый в виде скаляра или вектора-столбца. Объект адаптирует свои весовые коэффициенты фильтра для сходимости входного сигнала x к желаемому сигналу d. Фильтр выдает на выходе сходящийся сигнал.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
err —
разница между выходным и желаемым сигналом
скаляр | вектор-столбец
Details
Разница между выходным сигналом y и желаемым сигналом d, возвращаемая в виде скаляра или вектора-столбца. Тип данных err соответствует типу данных y. Цель адаптивного фильтра — минимизировать эту ошибку. Объект адаптирует свои веса для сходимости к оптимальным весам фильтра, которые обеспечивают выходной сигнал, максимально приближенный к желаемому сигналу.
| Типы данных |
|
Свойства
#
Length —
длина вектора весовых коэффициентов КИХ-фильтра
Real number
Details
Длина вектора весовых коэффициентов КИХ-фильтра, заданная как положительное целое число.
#
WeightsResetInputPort —
дополнительный вход для активации сброса значений весов
Logical
Details
Опция, позволяющая КИХ-фильтру сбрасывать значения весовых коэффициентов фильтра. По умолчанию для этого свойства установлено значение false, и объект не сбрасывает веса. Если для этого свойства установлено значение true, необходимо передать объекту управляющий входной сигнал сброса, тогда применится свойство WeightsResetCondition. Объект сбрасывает веса фильтра на основе значений свойства WeightsResetCondition и входного сигнала сброса, передаваемого алгоритму объекта.
#
StepSize —
размер шага адаптации
Real number
Details
Коэффициент размера шага адаптации, заданный как неотрицательный скаляр.
Зависимости
Чтобы использовать это свойство, установите для свойства StepSizeSource значение "Property".
#
LeakageFactor —
коэффициент потерь, используемый в алгоритме LMS с утечкой
Real number
Details
Коэффициент потерь, используемый в алгоритме LMS с утечкой, заданный как скаляр от 0 до 1 включительно. Если значение меньше 1, системный объект реализует алгоритм LMS с утечкой. Значение по умолчанию равно 1, что означает отсутствие утечки в адаптивном алгоритме.
#
AdaptInputPort —
дополнительный вход для активации адаптации весов фильтра
Logical
Details
Опция, позволяющая указать, когда объект должен адаптировать весовые коэффициенты фильтра. По умолчанию для этого свойства установлено значение false, и фильтр постоянно обновляет веса фильтра. Если для этого свойства установлено значение true, объекту предоставляется входной сигнал управления адаптацией. Если значение этого входного сигнала не равно нулю, фильтр постоянно обновляет веса фильтра. Если значение входного сигнала равно нулю, веса фильтра остаются на своих текущих значениях.
# WeightsResetCondition — условие, запускающее сброс весов фильтра
Details
Укажите событие для сброса весов фильтра: "Rising edge", "Falling edge", "Either edge" или "Non-zero". Объект сбрасывает веса фильтра на основе значений этого свойства и входного сигнала сброса, передаваемого алгоритму объекта.
Зависимости
Чтобы использовать это свойство, установите для свойства WeightsResetInputPort значение "true".
#
WeightsOutputPort —
весовые коэффициенты на выходе фильтра
Logical
Details
Установите для этого свойства значение true, чтобы вывести адаптированные весовые коэффициенты фильтра. Значение по умолчанию — true.
#
BlockSize —
количество отсчетов, полученных до адаптации весовых коэффициентов
Real number
Details
Количество отсчетов входного сигнала, заданное как положительное целое число. Эти отсчеты необходимо получить до того, как объект обновит весовые коэффициенты фильтра. Длина входного кадра должна быть целым кратным размеру блока.
Алгоритмы
Этот объект реализует алгоритм, входные и выходные данные, описанные в документации блока LMS Filter. Свойства объекта соответствуют параметрам блока.