Вычислите фильтрованный выход, ошибку фильтра и веса фильтра для заданного входного и необходимого сигнала с помощью алгоритма адаптивного фильтра RLS
Фильтрация/адаптивность фильтров
dspadpt3
Блок RLS Filter рекурсивно вычисляет оценку методом наименьших квадратов (RLS) весов конечной импульсной характеристики фильтра. Блок оценивает веса фильтра или коэффициенты, необходимые для преобразования входного сигнала в требуемый сигнал. Подключите сигнал, который вы хотите фильтровать, к Input port. Входной сигнал может быть скаляром или вектором-столбцом. Соедините сигнал, который вы хотите смоделировать, с портом Desired. Требуемый сигнал должен иметь совпадающий тип данных, сложность и размерности, что и входной сигнал. Порт Выхода выводит отфильтрованный входной сигнал. Порт Ошибки выводит результат вычитания сигнала выхода из необходимого сигнала.
Соответствующий RLS-фильтр выражен в матричной форме как
где-1 обозначает обратное значение экспоненциала коэффициента взвешивания. Переменные следующие
Переменная | Описание |
---|---|
n | Текущий индекс времени |
u (n) | Вектор буферизованных входных выборок на шаге n |
P (n) | Обратная ковариационная матрица на шаге n |
k (n) | Вектор усиления на шаге n |
Вектор оценок отвода фильтра на шаге n | |
y (n) | Отфильтрованный выход на шаге n |
e (n) | Ошибка расчета на шаге n |
d (n) | Желаемый ответ на шаге n |
λ | Коэффициент забывания |
Реализация алгоритма в блоке оптимизирована путем использования симметрии обратной ковариационной матрицы P (n). Это уменьшает общее количество расчетов в два раза.
Используйте параметр Filter length, чтобы задать длину вектора весов фильтра.
Параметру Forgetting factor (0 to 1) соответствует Он определяет, как быстро фильтр «забывает» информацию о прошлом образце. Настройте, = 1
задает бесконечную память. Как правило, , где L - длина фильтра. Можно задать коэффициент забывания с помощью порта входа, Lambda, или ввести значение в параметре Forgetting factor (0 to 1) в диалоговом окне Параметров блоков: RLS Filter.
Введите начальные веса фильтров, , как вектор или скаляр для параметра Initial value of filter weights. Когда вы вводите скаляр, блок использует скалярное значение, чтобы создать вектор весов фильтра. Этот вектор имеет длину, равную длине фильтра, и все его значения равны скалярному значению.
Начальное значение P (n)
где вы задаете в параметре Initial input variance estimate.
При установке флажка Adapt port на блоке появляется порт Adapt. Когда вход к этому порту ненулевой, блок постоянно обновляет веса фильтра. Когда вход этого порта равен нулю, веса фильтров остаются на своих текущих значениях.
Когда необходимо сбросить значение весов фильтра до их начальных значений, используйте параметр Reset input. Блок сбрасывает веса фильтра всякий раз, когда событие сброса обнаруживается в порту сброса. Скорость сигнала сброса должна быть такой же скоростью, как и входной сигнал данных.
Из списка Reset input выберите None
чтобы отключить порт сброса. Чтобы включить порт сброса, выберите один из следующих вариантов из списка Reset input:
Rising edge
- Запускает операцию сброса, когда вход Reset делает одно из следующего:
Повышается с отрицательного значения до положительного значения или нуля
Повышается с нуля до положительного значения, где повышение не является продолжением повышения с отрицательного значения до нуля; см. следующий рисунок
Falling edge
- Запускает операцию сброса, когда вход Reset делает одно из следующего:
Падает от положительного значения до отрицательного значения или нуля
Падает с нуля до отрицательного значения, где падение не является продолжением падения с положительного значения до нуля; см. следующий рисунок
Either edge
- Запускает операцию сброса, когда вход Reset является Rising edge
или Falling edge
, как описано выше
Non-zero sample
- Запускает операцию сброса в каждый шаг расчета, когда вход сброса не равен нулю
Установите флажок Output filter weights, чтобы создать порт Wts на блоке. Для каждой итерации блок выводит текущие обновленные веса фильтров из этого порта.
The rlsdemo
пример иллюстрирует систему шумоподавления, созданную вокруг блока RLS Filter.
Введите длину вектора весов конечных импульсных характеристик.
Выберите Dialog
для ввода значения коэффициента забывания в диалоговом окне «Параметры блоков: RLS Filter». Выберите Input port
для определения коэффициента забывания с помощью входного порта Lambda.
Введите экспоненциальный весовой коэффициент в области значений 0
≤, ≤ 1
. Значение 1
задает бесконечную память. Настраиваемый (Simulink).
Задайте начальные значения весов конечной импульсной характеристики фильтра.
Начальное значение 1/P (n).
Установите этот флажок, чтобы включить входной порт Adapt.
Установите этот флажок, чтобы включить входной порт сброса.
Установите этот флажок, чтобы экспортировать веса фильтров из порта Wts.
Хейс, M.H. Статистическая цифровая обработка сигналов и моделирование. Нью-Йорк: John Wiley & Sons, 1996.
Плавающая точка двойной точности
Плавающая точка с одной точностью
Адаптивный фильтр Калмана (устаревший) | DSP System Toolbox |
Фильтр LMS | DSP System Toolbox |
Блокируйте фильтр LMS | DSP System Toolbox |
Фильтр Fast Block LMS | DSP System Toolbox |
Смотрите Шумоподавление в Simulink с использованием нормализованного адаптивного фильтра LMS для получения соответствующей информации.