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