Вычислите вывод, ошибку и веса адаптивного фильтра LMS
Система dsp.LMSFilter
object™ реализует адаптивный фильтр конечного импульсного ответа (FIR), который сходится входной сигнал к желаемому сигналу с помощью одного из следующих алгоритмов:
LMS
Нормированный LMS
Данные знака LMS
Ошибка знака LMS
Знак знака LMS
Для получения дополнительной информации на каждом из этих методов, см. Алгоритмы.
Фильтр адаптирует свои веса до ошибки между сигналом первичного входного параметра, и желаемый сигнал минимален. Среднее квадратичное этой ошибки (MSE) вычисляется с помощью функции msesim
. Предсказанная версия MSE определяется с помощью Винера, просачиваются функция msepred
. Функция maxstep
вычисляет максимальный размер шага адаптации, который управляет быстротой сходимости.
Отфильтровать сигнал с помощью адаптивного КИХ-фильтра:
Создайте объект dsp.LMSFilter
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
lms = dsp.LMSFilter
lms = dsp.LMSFilter(L)
lms = dsp.LMSFilter(Name,Value)
возвращает объект фильтра LMS, lms
= dsp.LMSFilterlms
, который вычисляет отфильтрованный вывод, ошибку фильтра и веса фильтра для данного входа и желаемого сигнала с помощью алгоритма наименьшее количество средних квадратичных (LMS).
lms = dsp.LMSFilter(
возвращает объект фильтра LMS с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки. Можно использовать этот синтаксис с предыдущим входным параметром.Name,Value
)
Для версий ранее, чем R2016b, используйте функцию step
, чтобы запустить алгоритм Системного объекта. Аргументы к step
являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
[y,err,wts] = lms(x,d)
[y,err] = lms(x,d)
[___] = lms(x,d,mu)
[___] = lms(x,d,a)
[___] = lms(x,d,r)
[y,err,wts] = lms(x,d,mu,a,r)
[
фильтрует входной сигнал, y
,err
,wts
] = lms(x
,d
)x
, с помощью d
в качестве желаемого сигнала, и возвращает отфильтрованный выходной параметр в y
, ошибку фильтра в err
и предполагаемые веса фильтра в wts
. lms объект фильтра оценивает, что веса фильтра должны были минимизировать ошибку между выходным сигналом и желаемым сигналом.
[
фильтрует входной сигнал, y
,err
] = lms(x
,d
)x
, с помощью d
в качестве желаемого сигнала, и возвращает отфильтрованный выходной параметр в y
и ошибку фильтра в err
, когда свойство WeightsOutput установлено в 'None'
.
[___] = lms(
фильтрует входной сигнал, x
,d
,mu
)x
, с помощью d
в качестве желаемого сигнала и mu
как размер шага, когда свойство StepSizeSource установлено в 'Input port'
. Эти входные параметры могут использоваться с любым из предыдущих наборов выходных параметров.
[___] = lms(
фильтрует входной сигнал, x
,d
,a
)x
, с помощью d
в качестве желаемого сигнала и a
как управление адаптацией, когда свойство AdaptInputPort установлено в true
. Когда a
является ненулевым, Системный объект постоянно обновляет веса фильтра. Когда a
является нулем, веса фильтра остаются постоянными.
[___] = lms(
фильтрует входной сигнал, x
,d
,r
)x
, с помощью d
в качестве желаемого сигнала и r
как сигнал сброса, когда свойство WeightsResetInputPort установлено в true
. Свойство WeightsResetCondition может использоваться, чтобы установить триггерное условие сброса. Если событие сброса имеет место, Системный объект сбрасывает веса фильтра к их начальным значениям.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
Алгоритм фильтра LMS задан следующими уравнениями.
Различные адаптивные алгоритмы фильтра LMS, доступные в этом Системном объекте, заданы как:
LMS:
Нормированный LMS:
В Нормированном LMS, чтобы преодолеть потенциальную числовую нестабильность в обновлении весов, маленькая положительная константа, ε, была добавлена в знаменателе. Для входа с плавающей точкой с двойной точностью ε является 2.2204460492503131e-016. Для входа с плавающей точкой с одинарной точностью ε является 1.192092896e-07. Для входа фиксированной точки ε 0.
Ошибка знака LMS:
Данные знака LMS:
где u (n) действителен.
Знак знака LMS:
где u (n) действителен.
Переменные следующие:
Переменная | Описание |
---|---|
n |
Индекс текущего времени |
u (n) |
Вектор буферизированных входных выборок на шаге n |
u* (n) |
Сопряженное комплексное число вектора буферизированных входных выборок на шаге n |
w (n) |
Вектор веса фильтра оценивает на шаге n |
y(n) |
Отфильтрованный вывод на шаге n |
e(n) |
Ошибка оценки на шаге n |
d(n) |
Желаемый ответ на шаге n |
µ |
Размер шага адаптации |
α | Фактор утечки (0 <α ≤ 1) |
ε | Константа, которая исправляет любую потенциальную числовую нестабильность, которая происходит во время обновления весов. |
[1] Hayes, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.
dsp.AdaptiveLatticeFilter
| dsp.AffineProjectionFilter
| dsp.BlockLMSFilter
| dsp.FIRFilter
| dsp.FastTransversalFilter
| dsp.FilteredXLMSFilter
| dsp.FrequencyDomainAdaptiveFilter
| dsp.KalmanFilter
| dsp.RLSFilter