exponenta event banner

Адаптивный фильтр частотной области

Вычисление выходных данных, ошибок и коэффициентов с помощью адаптивного фильтра КИХ частотной области

  • Библиотека:
  • Панель системных инструментов DSP/Фильтрация/Адаптивные фильтры

  • Frequency-Domain Adaptive Filter block

Описание

Блок адаптивного фильтра частотной области реализует адаптивный фильтр с конечной импульсной характеристикой (FIR) в частотной области с использованием алгоритма быстрых блочных наименьших квадратов (LMS). Параметры Длина фильтра (Filter length) и Длина блока (Block length) определяют длину фильтра и значения длины блока, используемые алгоритмом. При установке флажка Выходные коэффициенты БПФ фильтра блок выводит дискретное преобразование Фурье текущих коэффициентов фильтра. Блок предлагает ограниченную и неограниченную версии алгоритма с секционированным и несекционированным режимами. Дополнительные сведения см. в разделе Алгоритмы.

Порты

Вход

развернуть все

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

Этот порт появляется при установке флажка Указать коэффициент утечки из порта.

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

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

Зависимости

Этот порт появляется при установке флажка Указать усредненный коэффициент из порта.

Типы данных: 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
Поддержка комплексного номера: Да

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

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

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

Зависимости

Этот порт появляется при установке флажка FFT-коэффициенты выходного фильтра.

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

Параметры

развернуть все

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

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

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

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

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

Дополнительные сведения см. в разделе Алгоритмы.

Длина вектора коэффициентов КИХ-фильтра, заданного как положительный, целочисленный скаляр.

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

Если этот флажок установлен, размер шага адаптации вводится через порт Mu. При снятии этого флажка размер шага задается в диалоговом окне блока с помощью параметра «Размер шага».

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

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

Зависимости

Этот параметр появляется при снятии флажка Указать размер шага из порта.

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

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

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

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

Зависимости

Этот параметр появляется при снятии флажка Указать коэффициент утечки из порта.

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

Если этот флажок установлен, коэффициент усреднения мощности сигнала вводится через порт Avrg. Если этот флажок снят, коэффициент усреднения задается в диалоговом окне блока с помощью параметра «Коэффициент усреднения».

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

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

Зависимости

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

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

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

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

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

Зависимости

Этот параметр появляется при снятии флажка Указать смещение от порта (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 активируется. При вводе ненулевого скалярного значения через этот порт блок непрерывно обновляет свои коэффициенты фильтра. При вводе нуля через этот порт коэффициенты фильтра не обновляются, и их значения остаются на текущем уровне.

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

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

  • Code generation

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

  • Interpreted execution

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

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

Типы данных

double | single

Прямой проход

no

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

no

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

yes

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

no

Алгоритмы

развернуть все

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

Ссылки

[1] Shynk, J.J. «Частотно-доменная и многоскоростная адаптивная фильтрация». Журнал IEEE Signal Processing Magazine, том 9, № 1, стр. 14-37, январь 1992 года.

[2] Фарханг-Боруджени, Б., Адаптивные фильтры: теория и применение, Чичестер, Англия, Уайли, 1998.

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2018a