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

EngeeDSP.RLSFilter

Вычисляет выходные данные, ошибку и коэффициенты с помощью рекурсивного метода наименьших квадратов (RLS).

Библиотека

EngeeDSP

Блок

RLS фильтр

Описание

Системный объект EngeeDSP.RLSFilter выполняет фильтрацию каждого канала входного сигнала, используя реализацию RLS-фильтра.

Чтобы отфильтровать каждый канал входного сигнала, выполните следующие действия:

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

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

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

Синтаксис

Создание

  • rlsFilt = EngeeDSP.RLSFilter() — возвращает системный объект адаптивного RLS-фильтра rlsFilt, который фильтрует входной сигнал и вычисляет ошибку фильтрации и весовые коэффициенты фильтра для заданных входного и требуемого сигналов, используя алгоритм RLS.

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

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

  • y,e,wts = rlsFilt(x,d) — рекурсивно адаптирует опорный входной сигнал x для его согласования с требуемым сигналом d с использованием системного объекта rlsFilt. Требуемый сигнал d представляет собой полезный сигнал, к которому добавлен нежелательный шум. Возвращает выходной сигнал RLS-фильтра y, сигнал ошибки e, представляющий собой разность между опорным входным сигналом и требуемым сигналом, и коэффициенты фильтра wts. Фильтр адаптирует свои коэффициенты до тех пор, пока ошибка e не будет минимизирована.

Аргументы

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

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

Details

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

Типы данных

Float32, Float64

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

Да

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

Details

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

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

Типы данных

Float32, Float64

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

Да

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

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

Details

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

Типы данных

Float32, Float64

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

Да

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

Details

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

Типы данных

Float32, Float64

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

Да

# wts — адаптивные весовые коэффициенты фильтра
скаляр | вектор-столбец

Details

Весовые коэффициенты фильтра, возвращаемые в виде скаляра или вектора-столбца длиной, заданной значением свойства FilterLength.

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

Типы данных

Float32, Float64

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

Да

Свойства

# ForgettingFactor — коэффициент забывания алгоритма RLS
Вещественное число

Details

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

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

# ResetPort — порт сброса
Строка

Details

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

# SpecifyForgettingFactorVia — способ задания коэффициента забывания
Строка

Details

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

# InitialValueOfFilterWeights — начальное значение коэффициентов фильтра
Скаляр / массив вещественных и/или комплексных чисел

Details

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

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

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

# FilterLength — длина вектора коэффициентов фильтра
Целое число типа Int64

Details

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

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

# InitialInputVarianceEstimate — начальная оценка ковариации входных данных
Вещественное число

Details

Начальные значения оценки матрицы квадратного корня из ковариационной матрицы входного сигнала, заданные как скаляр или квадратная матрица, размерность которой соответствует значению свойства FilterLength. Если задано скалярное значение, свойство InitialInputVarianceEstimate инициализируется как диагональная матрица, диагональные элементы которой равны этому скаляру.

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

Методы

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

step!

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

release!

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

reset!

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

Алгоритмы

При выборе режима Conventional RLS (стандартный метод RLS) системный объект EngeeDSP.RLSFilter рекурсивно вычисляет оценку весовых коэффициентов КИХ-фильтра методом наименьших квадратов (RLS). Этот объект оценивает весовые коэффициенты (или параметры) фильтра, необходимые для преобразования входного сигнала в требуемый сигнал. Входной сигнал может быть скаляром или вектором-столбцом. Требуемый сигнал должен иметь те же тип данных, комплексность и размерность, что и входной сигнал. Соответствующий RLS-фильтр описывается в матричной форме через матрицу :













где

  • — величина, обратная экспоненциальному весовому коэффициенту;

  • — индекс текущего времени;

  • — вектор буферизованных входных отсчетов на шаге ;

  • — обратная ковариационная матрица на шаге ;

  • — вектор усиления на шаге ;

  • — вектор оценок коэффициентов фильтра на шаге ;

  • — отфильтрованный сигнал на шаге ;

  • — оценка ошибки на шаге ;

  • — ожидаемый сигнал на шаге ;

  • — коэффициент забывания;

  • — векторы-столбцы.

Литература

  1. M. Hayes, Statistical Digital Signal Processing and Modeling, New York: Wiley, 1996.

  2. S. Haykin, Adaptive Filter Theory, 4th Edition, Upper Saddle River, NJ: Prentice Hall, 2002.

  3. A. A. Rontogiannis and S. Theodoridis, Inverse factorization adaptive least-squares algorithms, Signal Processing, vol. 52, no. 1, pp. 35–47, July 1996.

  4. S. C. Douglas, Numerically-robust O(N2) RLS algorithms using least-squares prewhitening, Proc. IEEE Int. Conf. on Acoustics, Speech, and Signal Processing, Istanbul, Turkey, vol. I, pp. 412–415, June 2000.

  5. A. H. Sayed, Fundamentals of Adaptive Filtering, Hoboken, NJ: John Wiley & Sons, 2003.