Документация Engee

EngeeDSP.FastTransversalFilter

Быстрый трансверсальный адаптивный КИХ-фильтр по методу наименьших квадратов.

Библиотека

EngeeDSP

Описание

Системный объект EngeeDSP.FastTransversalFilter вычисляет выходные данные и ошибку фильтрации, используя быстрый трансверсальный адаптивный КИХ-фильтр, работающий по методу наименьших квадратов.

Чтобы реализовать адаптивный КИХ-фильтр, выполните следующие действия:

  1. Создайте объект EngeeDSP.FastTransversalFilter и установите его свойства.

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

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • ftf = EngeeDSP.FastTransversalFilter() — возвращает системный объект быстрого трансверсального адаптивного КИХ-фильтра ftf, работающего по методу наименьших квадратов. Этот объект вычисляет отфильтрованный выходной сигнал и ошибку фильтрации на основе заданных входного и требуемого сигналов.

  • ftf = EngeeDSP.FastTransversalFilter(length) — возвращает системный объект быстрого трансверсального адаптивного КИХ-фильтра ftf, работающего по методу наименьших квадратов, у которого для свойства Length установлено значение length.

  • ftf = EngeeDSP.FastTransversalFilter(___,Name=Value) — возвращает системный объект быстрого трансверсального адаптивного КИХ-фильтра ftf, работающего по методу наименьших квадратов, с заданными свойствами в виде пары Name=Value, где Name — имя свойства, а Value — соответствующее значение. Можно указать несколько пар «имя-значение», порядок пар не имеет значения. Неуказанные свойства сохраняют свои значения по умолчанию.

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

  • y,err = ftf(x,d) — фильтрует входной сигнал x, используя d в качестве требуемого сигнала, и возвращает отфильтрованный сигнал y, а также ошибку фильтрации err.

Аргументы

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

# x — входной сигнал
скаляр | вектор-столбец

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

# d — требуемый сигнал
скаляр | вектор-столбец

Details

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

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

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

# y — отфильтрованный выходной сигнал
скаляр | вектор-столбец

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

# err — разница между выходным и требуемым сигналами
скаляр | вектор-столбец

Details

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

Типы данных

Float32, Float64

Поддержка комплексных чисел

Да

Свойства

# Length — длина вектора коэффициентов фильтра
Int64 integer

Details

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

Значение по умолчанию — 32.

# Method — метод расчета коэффициентов фильтра
String

Details

Метод расчета коэффициентов фильтра, заданный как "Fast transversal least-squares" (по умолчанию) или "Sliding-window fast transversal least-squares". Алгоритмы реализации этих двух методов описаны в [1].

# InitialPredictionErrorPower — начальная мощность ошибки предсказания
Real number

Details

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

Значение по умолчанию — 10.

# ForgettingFactor — коэффициент забывания для быстрого трансверсального фильтра
Real number

Details

Коэффициент забывания для быстрого трансверсального фильтра, заданный как скаляр в диапазоне (0, 1]. Значение 1 означает бесконечную память при адаптации для поиска новых коэффициентов фильтра.

Для достижения наилучших результатов установите значение этого свойства в диапазоне [1 − 0.5/L, 1], где L — значение свойства Length.

Значение по умолчанию — 1.

Зависимости

Чтобы использовать это свойство, установите для свойства Method значение "Fast transversal least-squares".

# InitialConversionFactor — начальное значение коэффициента преобразования для быстрого трансверсального фильтра

Details

Начальное значение коэффициента преобразования для быстрого трансверсального фильтра.

Значение этого свойства зависит от свойства Method:

  • "Fast transversal least-squares" — свойство InitialConversionFactor должно представлять собой положительный скаляр, который меньше или равен 1. В этом случае значением по умолчанию является 1.

  • "Sliding-window fast transversal least-squares" — свойство InitialConversionFactor должно представлять собой вектор из двух элементов. Первый элемент вектора должен находиться в диапазоне [0, 1], а второй — быть меньше или равным −1. В этом случае значением по умолчанию является [1, −1].

# InitialCoefficients — начальные коэффициенты фильтра

Details

Начальные значения коэффициентов адаптивного КИХ-фильтра, заданные как скаляр или вектор, длина которого равна значению свойства Length.

Значение по умолчанию — 0.

# LockCoefficients — фиксация коэффициентов фильтра
Logical

Details

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

# SlidingWindowBlockLength — ширина скользящего окна
Real number

Details

Ширина скользящего окна, заданная как целое положительное число, которое больше или равно значению свойства Length. По умолчанию используется значение свойства Length.

Зависимости

Чтобы использовать это свойство, установите для свойства Method значение "Sliding-window fast transversal least-squares".

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта

Литература

  1. Haykin, Simon. Adaptive Filter Theory, 4th Ed. Upper Saddle River, NJ: Prentice Hall, 2002.