Frequency-Domain Adaptive Filter

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

  • Библиотека:
  • DSP System Toolbox/Фильтрация/Адаптивные фильтры

  • Frequency-Domain Adaptive Filter block

Описание

Блок Frequency-Domain Adaptive Filter реализует адаптивный фильтр с конечной импульсной характеристикой (КИХ) в частотный диапазон с использованием алгоритма наименьших квадратов (LMS) быстрого блока. Параметры Filter length и Block length определяют длину фильтра и значения длины блока, используемые алгоритмом. Когда вы устанавливаете флажок Output filter FFT coefficients, блок выводит дискретное преобразование Фурье коэффициентов текущего фильтра. Блок предлагает ограниченные и неограниченные версии алгоритма с секционированными и несекционированными режимами. Для получения дополнительной информации смотрите Алгоритмы.

Порты

Вход

расширить все

Сигнал, который будет фильтроваться частотной конечной импульсной характеристикой адаптивным фильтром. Вход данных и требуемый вход сигнала должны иметь одинаковый размер и тип данных. Длина входного вектора должна быть разделена на Block length значения параметров.

Вход данных может быть сигналом переменного размера, пока длина системы координат кратна Block length. Количество элементов в вектор-столбец можно изменить во время симуляции модели.

Типы данных: single | double
Поддержка комплексного числа: Да

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

Вход данных и требуемый сигнал должны иметь одинаковый размер и тип данных. Длина необходимого вектора сигнала должна быть делится на Block length значение параметров.

Желаемый сигнал может быть сигналом переменного размера, пока длина системы координат кратна Block length. Количество элементов в вектор-столбец можно изменить во время симуляции модели.

Типы данных: single | double
Поддержка комплексного числа: Да

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

Зависимости

Этот порт появляется, когда вы выбираете параметр Specify step size from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

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

Зависимости

Этот порт появляется при установке флажка Specify leakage factor from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

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

Зависимости

Этот порт появляется при установке флажка Specify averaging factor from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Смещение для членов нормализации в обновлениях коэффициентов, заданное как неотрицательное действительное скалярное значение. Используйте это значение, чтобы избежать деления на нули или деления на очень маленькие числа, если какая-либо из степеней входного сигнала БПФ становится очень маленькой.

Зависимости

Этот порт появляется при установке флажка Specify offset from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

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

Зависимости

Этот порт появляется при установке флажка Enable adapt port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Если вы вводите ненулевое скалярное значение через этот порт, блок сбрасывает все внутренние состояния. Если вы вводите нуль через этот порт, внутренние состояния не сбрасываются.

Зависимости

Этот порт появляется при установке флажка Enable reset port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Выход

расширить все

Фильтрация выхода, возврат как вектор-столбец. Блок адаптирует свои веса фильтра, чтобы сходиться входной сигнал, чтобы максимально точно соответствовать желаемому сигналу. Фильтр выводит сходимый сигнал.

Типы данных: single | double
Поддержка комплексного числа: Да

Различие между выходом сигналом и желаемым сигналом, возвращаемый как вектор-столбец. Цель адаптивного фильтра состоит в том, чтобы минимизировать эту ошибку. Блок адаптирует свои веса, чтобы сходиться к оптимальным весам фильтра, которые формируют сигнал выхода, который максимально близко совпадает с желаемым сигналом. Для получения дополнительной информации о том, как Error вычисляется, смотрите Ссылки.

Типы данных: single | double
Поддержка комплексного числа: Да

Текущее дискретное преобразование Фурье коэффициентов фильтра, возвращаемое как вектор-строка. Для Constrained FDAF и Unconstrained FDAF алгоритмов, длина этого вектора равна сумме Filter length значения и Block length значения. Этот порт первоначально выводит значения БПФ параметра Initial time-domain coefficients. Во время симуляции модели этот порт выводит значения БПФ коэффициентов текущего фильтра.

Зависимости

Этот порт появляется при установке флажка Output filter FFT coefficients.

Типы данных: single | double
Поддержка комплексного числа: Да

Параметры

расширить все

Метод, используемый для вычисления коэффициентов фильтра, заданный как::

  • Constrained FDAF - Накладывает градиентное ограничение на веса отводов фильтра.

  • Partitioned constrained FDAF - Разделяет импульсную характеристику фильтра, чтобы уменьшить задержку.

  • Unconstrained FDAF - Никакое градиентное ограничение не накладывается на веса отводов фильтра.

  • Partitioned unconstrained FDAF - Разделяет импульсную характеристику фильтра, чтобы уменьшить задержку. Ограничения градиента не накладываются на веса отводов фильтра.

Для получения дополнительной информации см. «Алгоритмы».

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

Длина блока для обновления коэффициентов, заданная как положительный, целочисленный скаляр. Адаптивный фильтр обрабатывает входные данные и требуемый сигнал как блок выборок длины, заданной этим параметром. Для получения дополнительной информации о том, как эти данные обрабатываются фильтром, смотрите Алгоритмы. Длина входного вектора должна быть разделена на Block length значения параметров. Значение по умолчанию параметра Block length устанавливается на значение параметра Filter length.

При установке этого флажка размер шага адаптации вводится через порт Mu. Когда вы снимаете этот флажок, размер шага задается в диалоговом окне блока параметром Step size.

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

Настраиваемый: Да

Зависимости

Этот параметр появляется при снятии флажка Specify step size from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

При установке этого флажка коэффициент утечки вводится через порт Leak. При снятии этого флажка коэффициент утечки задается в диалоговом окне блока параметром Leakage factor.

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

Настраиваемый: Да

Зависимости

Этот параметр появляется при снятии флажка Specify leakage factor from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

При установке этого флажка коэффициент усреднения для степени сигнала вводится через порт Avrg. Когда вы снимаете этот флажок, коэффициент усреднения задается в диалоговом окне блока посредством параметра Averaging factor.

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

Настраиваемый: Да

Зависимости

Этот параметр появляется при снятии флажка Specify averaging factor from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

При установке этого флажка смещение для членов нормализации в обновлениях коэффициентов вводится через Offset порт. Когда вы снимаете этот флажок, смещение задается в диалоговом окне блока параметром Offset.

Смещение для членов нормализации в обновлениях коэффициентов, заданное как неотрицательное действительное скалярное значение. Используйте это значение, чтобы избежать деления на нули или деления на очень маленькие числа, если какая-либо из степеней входного сигнала БПФ становится очень маленькой.

Настраиваемый: Да

Зависимости

Этот параметр появляется при снятии флажка Specify offset from port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Начальное общее значение всех степеней входного сигнала БПФ, заданное как положительное числовое скалярное значение.

Если вы изменяете это значение во время симуляции, изменение вступает в эффект только после наступления события сброса.

Настраиваемый: Да

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Начальные коэффициенты временной области адаптивного фильтра, заданные в виде скаляра или вектора длины, равной значению, заданному вами в параметре Filter length. Блок адаптивного фильтра использует эти коэффициенты, чтобы вычислить начальные коэффициенты фильтра частотного диапазона.

Если вы изменяете это значение во время симуляции, изменение вступает в эффект только после наступления события сброса.

Настраиваемый: Да

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

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

При установке этого флажка активируется Reset входной порт. Если вы вводите ненулевое скалярное значение через этот порт, блок сбрасывает все внутренние состояния. Если вы вводите нуль через этот порт, внутренние состояния не сбрасываются.

При установке этого флажка включается FFTCoeffs выходной порт. Через этот порт блок выводит дискретное преобразование Фурье коэффициентов текущего фильтра.

  • Code generation

    Симулируйте модель с использованием сгенерированного кода C. Первый раз, когда вы запускаете симуляцию, Simulink® генерирует код С для блока. Код С повторно используется для последующих симуляций, пока модель не меняется. Эта опция требует дополнительного времени запуска, но обеспечивает более высокую скорость симуляции, чем Interpreted execution.

  • Interpreted execution

    Симулируйте модель с помощью MATLAB® интерпретатор. Эта опция сокращает время запуска, но имеет более низкую скорость симуляции, чем Code generation.

Характеристики блоков

Типы данных

double | single

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

yes

Обнаружение пересечения нулем

no

Алгоритмы

расширить все

Адаптивная фильтрация частотного диапазона состоит из трех шагов - фильтрация, оценка ошибки и адаптация к весу отвода. Этот алгоритм реализует конечную импульсную характеристику фильтрацию в частотный диапазон с помощью overlap-save или метода перекрытия-суммы. Для получения дополнительной детали реализации этих двух методов см. Раздел «Алгоритмы» в dsp.FrequencyDomainFIRFilter страница объекта. Оценка ошибки и адаптация веса отвода реализованы с помощью LMS-алгоритма быстрого блока (FBLMS).

Ссылки

[1] Shynk, J.J. «Frequency-Domain and Multirate Adaptive Filtering». Журнал IEEE Signal Processing Magazine, том 9, № 1, стр. 14-37, январь 1992 года.

[2] Farhang-Boroujeny, B., Adaptive Filters: Theory and Applications, Chichester, England, Wiley, 1998.

[3] Стокхэм, Т. Г., младший «Высокоскоростная свертка и корреляция». Материалы Весенней совместной компьютерной конференции 1966 года, AFIPS, том 28, 1966, стр. 229-233.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.
Введенный в R2018a