Документация Engee

Dialog FIR Decimation

Полифазное прореживание с КИХ-фильтром. Коэффициенты КИХ-фильтра задаются в поле ввода.

dialog fir decimation

Описание

Блок Dialog FIR Decimation выполняет эффективное полифазное прореживание с использованием целочисленного коэффициента понижения частоты дискретизации по первому измерению.

Концептуально, КИХ-дециматор (как показано на схеме) состоит из сглаживающего КИХ-фильтра, за которым следует понижение частоты дискретизации.

КИХ-фильтр фильтрует данные в каждом канале входного сигнала с помощью КИХ-фильтра прямой формы. Следующее за ним понижение частоты дискретизации уменьшает отсчеты каждого канала отфильтрованных данных, беря каждый -й отсчет и отбрасывая отсчеты, которые следуют за ним, где — это значение коэффициента децимации, который задается в параметре Decimation factor. Результирующий дискретно-временной сигнал имеет частоту дискретизации, уменьшенную в раз по сравнению с исходной.

fir decimation 1 ru

Коэффициенты КИХ-фильтра задаются в поле ввода.

Обратите внимание, что фактический алгоритм блока реализует полифазную структуру КИХ-фильтра прямой формы, что является эффективным эквивалентом комбинированной системы, изображенной на диаграмме. Более подробная информация приведена в разделе Алгоритмы.

Порты

Вход

# IN_1 — входные данные
скаляр | вектор | матрица

Details

Входные данные для блока, заданные в виде скаляра, вектора или матрицы.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Да

Выход

# OUT_1 — выходные данные после прореживания
скаляр | вектор | матрица

Details

Выходные данные после прореживания, возвращаемые в виде скаляра, вектора или матрицы.

Поведение блока зависит от значения параметра Rate options:

  • Enforce single-rate processing — при выборе этого значения блок сохраняет входную частоту дискретизации и прореживает сигнал, уменьшая размер выходного кадра в раз.

  • Allow multirate processing — при выборе этого значения блок прореживает сигнал таким образом, что выходная частота дискретизации в раз меньше входной частоты дискретизации. Размер выходного кадра такой же, как и размер входного кадра.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64

Поддержка комплексных чисел

Да

Параметры

Main

# FIR filter coefficients — коэффициенты низкочастотного КИХ-фильтра

Details

Укажите коэффициенты числителя передаточной функции КИХ-фильтра по убыванию:

Передаточная функция КИХ-фильтра определяется следующим образом:


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

Блок инициализирует все состояния фильтра нулем.

Значение по умолчанию

designMultirateFIR(1,2)

Имя для программного использования

COEFF

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

Нет

# Decimation factor — коэффициент децимации

Details

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

Значение по умолчанию

2

Имя для программного использования

DF

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

Нет

# Filter structure — структура FIR-фильтра
Direct form | Direct form transposed

Details

Укажите структуру КИХ-фильтра: Direct form или Direct form transposed.

Значение по умолчанию

Direct form

Имя для программного использования

FS

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

Нет

# Input processing — тип обработки входного сигнала
Columns as channels (frame based) | Elements as channels (sample based)

Details

Укажите, выполняет ли блок обработку на основе отсчета или кадра. Варианты для выбора:

  • Elements as channels (sample based) — каждый элемент входного сигнала рассматривается как независимый канал (обработка на основе отсчета).

  • Columns as channels (frame based) — каждый столбец входного сигнала рассматривается как независимый канал (обработка на основе кадра).

Значение по умолчанию

Columns as channels (frame based)

Имя для программного использования

IP

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

Нет

# Rate options — метод, с помощью которого блок прореживает входные данные
Enforce single-rate processing | Allow multirate processing

Details

Укажите метод, с помощью которого блок должен прореживать входные данные. Варианты для выбора:

  • Enforce single-rate processing — при выборе этого метода блок сохраняет частоту дискретизации входного сигнала и прореживает сигнал, уменьшая размер выходного кадра в раз. Чтобы выбрать этот метод, параметр Input processing должен иметь значение Columns as channels (frame based).

Если для параметра Rate options установлено значение Enforce single-rate processing, то можно использовать блок Dialog FIR Decimation внутри триггерных подсистем.

  • Allow multirate processing — при выборе этого метода блок прореживает сигнал таким образом, что выходная частота дискретизации в раз меньше входной.

Зависимости

Чтобы использовать этот параметр, установите для параметра Input processing значение Columns as channels (frame based).

Значение по умолчанию

Enforce single-rate processing

Имя для программного использования

ROF

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

Нет

# Rate options — метод, с помощью которого блок прореживает входные данные
Allow multirate processing

Details

Блок прореживает данные с помощью метода Allow multirate processing — выходная частота дискретизации в раз меньше входной.

Зависимости

Чтобы использовать этот параметр, установите для параметра Input processing значение Elements as channels (sample based).

Значение по умолчанию

Allow multirate processing

Имя для программного использования

ROS

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

Нет

# Allow arbitrary frame length for fixed-size input signals — разрешить произвольный размер кадра для входных сигналов фиксированного размера

Details

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

Для входных сигналов фиксированного размера:

  • Если установлен флажок Allow arbitrary frame length for fixed-size input signals, то размер кадра сигнала не обязательно должен быть кратен коэффициенту децимации. Если входной сигнал не кратен коэффициенту децимации, то на выходе обычно получается сигнал переменного размера. Поэтому, чтобы поддерживать произвольный размер входа, блок должен также поддерживать операции с переменным размером, которые можно включить, установив флажок Allow arbitrary frame length for fixed-size input signals.

  • Если флажок Allow arbitrary frame length for fixed-size input signals снят, то размер входного кадра должен быть кратен коэффициенту децимации.

Зависимости

Чтобы использовать этот параметр, установите для параметра Input processing значение Columns as channels (frame based), а для параметра Rate options значение Enforce single-rate processing.

Значение по умолчанию

false (выключено)

Имя для программного использования

AllowArbitrary

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

Нет

Подробнее

Полифазные субфильтры

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

Пусть обозначает импульсный ответ FIR-фильтра длины , а — входной сигнал. Прореживание в раз выходного сигнала из фильтра эквивалентно свертке с понижением частоты дискретизации:

Ключ к эффективности полифазной фильтрации заключается в том, что определенные входные значения умножаются только на выбранные значения импульсного ответа в свертке с понижением дискретизации. Например, если , то входные значения комбинируются только с коэффициентами фильтра , а входные значения — только с коэффициентами фильтра . Благодаря разделению коэффициентов фильтра на два полифазных субфильтра в свертке не производится лишних вычислений. Выходы сверток с полифазными субфильтрами перемежаются и суммируются для получения выходного сигнала фильтра.

Обработка на основе кадров

Если для параметра Input processing установлено значение Columns as channels (frame based), то блок выполняет повторный отсчет каждого столбца входного сигнала по времени. В этом режиме блок может выполнять как односкоростную, так и многоскоростную обработку. Можно использовать параметр Rate options, чтобы указать, как блок будет пересчитывать входные данные:

  • Если для параметра Rate options установлено значение Enforce single-rate processing, то входные и выходные данные блока имеют одинаковую частоту дискретизации. Для прореживания выходных данных с сохранением частоты дискретизации входных данных блок пересчитывает данные в каждом столбце входных данных таким образом, чтобы размер кадра выходных данных имел верхнюю границу ceil( ), где — размер кадра входных данных, а — коэффициент децимации, указанный в параметре Decimation factor.

В этом режиме, если сигнал имеет фиксированный размер (размер кадра не меняется во время симуляции) и стоит флажок Allow arbitrary frame length for fixed-size input signals, то размер входного кадра может быть произвольным и не обязательно должен быть кратным коэффициенту децимации. Если флажок Allow arbitrary frame length for fixed-size input signals не установлен, то размер входного кадра должен быть кратен коэффициенту децимации.

В этой таблице представлена поддержка произвольного размера входного кадра, если для параметра Input processing установлено значение Columns as channels (frame based) и Rate options на Enforce single-rate processing.

Входной сигнал Блок поддерживает этот сигнал Поддержка произвольного размера входного кадра Входной размер Выходной размер

Сигнал фиксированного размера

Да

Если установлен флажок Allow arbitrary frame length for fixed-size input signals

на

Верхняя граница размера ceil( ) на

  • Если для параметра Rate options установлено значение Allow multirate processing, то входные и выходные данные блока КИХ-дециматора имеют одинаковый размер. Однако частота дискретизации выходных данных в раз ниже, чем частота дискретизации входных данных. В этом режиме блок рассматривает входную матрицу на как независимых каналов. Блок прореживает каждый столбец входного сигнала во времени, сохраняя размер кадра постоянным, при этом период выходного кадра ( ) в раз больше периода входного кадра ( ).

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

В этой таблице представлена поддержка произвольного размера входного кадра, если для параметра Input processing установлено значение Columns as channels (frame based), а для параметра Rate options значение Allow multirate processing.

Входной сигнал Блок поддерживает этот сигнал Поддержка произвольного размера входного кадра Входной размер Выходной размер

Сигнал фиксированного размера

Да

Всегда

на

на

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

Нет

Не применимо

Не применимо

Не применимо

Обработка на основе отсчетов

Если для параметра Input processing установлено значение Elements as channels (sample based), то блок рассматривает входную матрицу на как независимых каналов и прореживает каждый канал по времени. Период отсчетов на выходе ( ) в раз больше периода отсчетов на входе ( ), при этом размеры входных и выходных данных остаются идентичными.

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

В этой таблице представлена поддержка произвольного размера входного кадра, когда для параметра Input processing установлено значение Elements as channels (sample based). Значение параметра Rate options автоматически устанавливается на Allow multirate processing.

Входной сигнал Блок поддерживает этот сигнал Поддержка произвольного размера входного кадра Входной размер Выходной размер

Сигнал фиксированного размера

Да

Всегда

на

на

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

Нет

Не применимо

Не применимо

Не применимо

Время задержки

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

Алгоритмы

Прореживание с КИХ-фильтром эффективно реализуется с помощью полифазной структуры. Более подробно о полифазной структуре см. в разделе Полифазные субфильтры.

Чтобы вывести полифазную структуру, начнем с определения передаточной функции КИХ-фильтра:

где — это длина КИХ-фильтра.

Можно перестроить это уравнение следующим образом:

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

Можно записать это уравнение в виде:

где , , …​, — это полифазные компоненты КИХ-фильтра .

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

fir decimation 1 ru

Заменим его полифазным представлением.

fir decimation 2

Здесь представлено тождество для многомерного прореживания.

fir decimation 3 ru

Применение тождества для прореживания перемещает операцию понижения частоты дискретизации перед операцией фильтрации. Этот ход позволяет фильтровать сигнал с меньшей скоростью.

fir decimation 4

Можно заменить задержки и коэффициент децимации на входе коммутационным переключателем.

fir decimation 5 ru

Когда поступает первый входной отсчет, переключатель подает его на ветвь 0, и дециматор вычисляет первое выходное значение. По мере поступления новых входных отсчетов переключатель движется против часовой стрелки через ветви , и вплоть до ветви 0, подавая по одному отсчету в каждую ветвь. Когда переключатель доходит до ветви 0, дециматор выдает следующий набор выходных значений. Этот процесс продолжается, пока данные продолжают поступать. Каждый раз, когда переключатель подходит к ветви 0, дециматор выводит . Дециматор эффективно выводит один отсчет на каждые отсчетов, которые он получает. Таким образом, частота дискретизации на выходе КИХ-дециматора составляет .

Ссылки

  1. Fliege, N. J. Multirate Digital Signal Processing: Multirate Systems, Filter Banks, Wavelets. West Sussex, England: John Wiley & Sons, 1994.

  2. Orfanidis, Sophocles J. Introduction to Signal Processing. Upper Saddle River, NJ: Prentice-Hall, 1996.

Дополнительные возможности

Генерация Си кода: Да