Как улучшить производительность фильтра наименьших средних квадратов (LMS) / NLMS?

14

Существуют ли способы повысить производительность вычислений нормализованного фильтра наименьших квадратов (NLMS)? Для этого были предложены фильтры с мульти-задержкой в ​​частотной области (MDF) , но они также снижают скорость и точность сходимости, поскольку они обновляют оцененную импульсную характеристику только один раз в каждом блоке, а не в каждой выборке. Есть ли другие методы?

Phonon
источник

Ответы:

6

Если вы хотите реализовать «стандартный» алгоритм NLMS без срезания углов, то вы, вероятно, не найдете структуру, которая была бы значительно более эффективной. Блочные формы фильтрации LMS направлены на использование методов быстрой свертки (например, наложения-сохранения или наложения-добавления) для ускорения этой части процесса. Однако, как вы заметили, коэффициенты фильтра обновляются только для каждого блока, так как фильтр должен быть постоянным по блоку, чтобы использовать подход быстрой свертки.

Высокая рекурсивность NLMS ограничит вас, если вы хотите сохранить характеристику обновления выборка за выборкой. Хотя действие фильтрации не является рекурсивным, коэффициенты фильтра в момент времени N являются функцией коэффициентов в момент времени N-1, что ограничивает вашу способность ускорять процесс с помощью параллелизма или блочно-ориентированных вычислений. Как и в большинстве случаев, бесплатного обеда не существует: если вам нужна чистая NLMS, вам лучше всего это реализовать.

Джейсон Р
источник