exponenta event banner

Интерполяция FIR

Восходящие и фильтрующие входные сигналы

Библиотека

Фильтрация/многоскоростные фильтры

dspmlti4

  • FIR Interpolation block

Описание

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

Устройство повышающей дискретизации увеличивает выборку каждого канала входного сигнала до более высокой скорости путем вставки нулей L-1 между выборками. Фильтр FIR прямой формы, который следует за фильтром, фильтрует каждый канал данных с повышенной дискретизацией. Результирующий дискретно-временной сигнал имеет частоту дискретизации, которая в L раз больше исходной частоты дискретизации.

FIR interpolator contains an upsampler followed by an anti-imaging FIR filter.

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

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

При определенных условиях этот блок также поддерживает генерацию кода SIMD. Дополнительные сведения см. в разделе Создание кода.

Задание коэффициентов фильтра

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

  • Параметры диалогового окна - введите информацию о фильтре, например коэффициенты в диалоговом окне блока.

  • Входной порт (Input port) - указывает коэффициенты фильтра в качестве входных данных блока. Значения коэффициентов настраиваются (могут изменяться во время моделирования), а их свойства должны оставаться постоянными.

  • Объект Filter - укажите фильтр с помощью dsp.FIRInterpolator object™ системы.

  • Автоматически (Auto) (по умолчанию) - выберите коэффициенты фильтра FIR-фильтра Nyquist, предварительно заданного для коэффициента интерполяции, заданного в диалоговом окне блока.

При выборе параметра Диалоговые параметры (Dialog parameters) используется параметр коэффициентов КИХ-фильтра для задания числительных коэффициентов передаточной функции Н (z) КИХ-фильтра.

H (z) = b0 + b1z 1 +... + bNz − N

Можно создать вектор коэффициента КИХ-фильтра, b = [b0, b1,..., bN], используя одну из функций проектирования DSP System Toolbox™ filter, таких какdesignMultirateFIR, firnyquist, firhalfband, firgr или firceqrip.

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

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

При выборе опции «Авто» блок проектирует FIR-интерполятор с коэффициентом интерполяции, указанным в поле «Коэффициент интерполяции». designMultirateFIR функция создает фильтр и возвращает коэффициенты, используемые блоком.

Дополнительные сведения о конструкции фильтра см. в разделе Orfanidis [2].

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

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

  • Если для параметра Rate options установлено значение Enforce single-rate processingвход и выход блока имеют одинаковую частоту дискретизации. Для интерполяции выходного сигнала при сохранении входной частоты дискретизации блок производит повторную выборку данных в каждом столбце входного сигнала так, чтобы размер кадра выходного сигнала (Ko) в L раз превышал размер входного сигнала (Ko = Ki * L).

    Пример односкоростной FIR-интерполяции см. в примере 1 - Односкоростная обработка.

  • Если для параметра Rate options установлено значение Allow multirate processingвход и выход блока FIR интерполяции имеют одинаковый размер. Однако частота дискретизации выходного сигнала в L раз выше, чем частота дискретизации входного сигнала. В этом режиме блок обрабатывает входной сигнал матрицы Ki-by-N как N независимых каналов. Блок интерполирует каждый столбец входного сигнала с течением времени, сохраняя постоянный размер кадра (Ki = Ko), делая выходной период кадра (Tfo) в L раз короче, чем входной период кадра (Tfo = Tfi/L ).

    Пример 2 - Многоскоростная обработка на основе кадров. Пример использования блока интерполяции FIR в этом режиме.

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

При установке для параметра обработки ввода значения Elements as channels (sample based)блок обрабатывает входной сигнал матрицы P-на-Q как P * Q независимые каналы и интерполирует каждый канал во времени. Выходной период выборки (Tso) в L раз короче, чем входной период выборки (Tso = Tsi/L), в то время как входные и выходные размеры остаются идентичными.

Время ожидания

При запуске моделей в Simulink ®SingleTasking или задайте для параметра Input processing значение Columns as channels (frame based) и параметр Rate options to Enforce single-rate processing, блок FIR интерполяции всегда имеет нулевую задержку задания. Задержка нулевого задания означает, что блок распространяет первую отфильтрованную входную выборку (полученную в момент времени t =0) в качестве первой выходной выборки. Эта первая выходная выборка затем сопровождается L-1 интерполированные значения, вторая отфильтрованная входная выборка и так далее.

Единственный раз, когда блок FIR Interpolation проявляет задержку, это когда для параметра Rate options установлено значение Allow multirate processing и запустите свои модели в Simulink MultiTasking режим. Величина задержки для многоскоростной многозадачной операции зависит от настройки параметра обработки ввода, как показано в следующей таблице.

Обработка входных данныхВремя ожидания

Elements as channels (sample based)

L образцы

Columns as channels (frame based)

L кадров (отсчеты Ki на кадр)

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

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

Когда блок находится в режиме обработки на основе кадра и использует исходное условие по умолчанию, равное нулю, первые выходные строки Ki * L содержат нули, где Ki - размер входного кадра. Первая отфильтрованная входная выборка (первая отфильтрованная строка входной матрицы) появляется на выходе как выборка Ki * L +1. Затем за этим значением следуют L-1 интерполированные значения, вторая отфильтрованная входная выборка и так далее.

Примечание

Дополнительные сведения о задержках и режимах задания Simulink см. в разделах Избыточная алгоритмическая задержка (задержка задания) и Планирование и создание кода на основе времени (кодер Simulink).

Типы данных с фиксированной точкой

На следующей схеме показаны типы данных, используемые в блоке интерполяции КИХ для сигналов с фиксированной точкой.

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

Когда, по меньшей мере, один из входных сигналов множителя является реальным, выходной сигнал множителя находится в виде выходных данных произведения. Когда оба входа множителя сложны, результат умножения находится в накопительном типе данных. Дополнительные сведения о комплексном умножении, выполняемом этим блоком, см. в разделе Типы данных умножения.

Примечание

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

Примеры

Пример 1 - Односкоростная обработка

В ex_firinterpolation_ref2 блок интерполяции КИХ интерполирует одноканальный вход с размером кадра, равным 16. Поскольку блок выполняет односкоростную обработку, а параметр коэффициента интерполяции имеет значение 4, выходной сигнал блока FIR интерполяции имеет размер кадра, равный 64. Как показано на следующем рисунке, входной и выходной сигналы блока FIR интерполяции имеют одинаковую частоту дискретизации.

Пример 2 - Многоскоростная обработка на основе кадров

В ex_firinterpolation_ref1 блок интерполяции КИХ интерполирует одноканальный вход с периодом кадра 1 секунда (время выборки = 1/64 и Выборки на кадр = 64). Поскольку блок выполняет многоскоростную обработку на основе кадров, а параметр коэффициента интерполяции установлен в 4, выход блока FIR интерполяции имеет период кадра, равный 0.25 секунд. Как показано на следующем рисунке, вход и выход блока интерполяции КИХ имеют одинаковый размер кадра, но частота дискретизации выхода равна 1/4 В раз больше входного значения.

Пример 3

ex_polyphaseinterp модель иллюстрирует лежащие в основе полифазные реализации блока интерполяции КИХ. Запустите модель и просмотрите результаты в области. Выходной сигнал блока интерполяции КИХ совпадает с выходным сигналом блока интерполяционного фильтра полифазы.

Пример 4

ex_mrf_nlp модель иллюстрирует использование блока FIR интерполяции в ряде многоступенчатых многоскоростных фильтров.

Диалоговое окно

Источник коэффициентов

Блок FIR интерполяции может работать в четырех различных режимах. Выберите режим в поле группы Источник коэффициента.

  • Параметры диалогового окна - введите информацию о фильтре, например коэффициенты, в маске блока.

  • Входной порт (Input port) - указывает коэффициенты фильтра с помощью входного порта Num. Значение Num input port появляется при выборе опции Input port. Значения коэффициентов, полученные через Num, настраиваются (могут изменяться при моделировании), а их свойства должны оставаться постоянными.

  • Объект Filter - укажите фильтр с помощью dsp.FIRInterpolator Системный объект.

  • Автоматически (Auto) (по умолчанию) - выберите коэффициенты фильтра Nyquist, предварительно заданного для коэффициента интерполяции, заданного в диалоговом окне блока.

В диалоговом окне Блок FIR-интерполяции (FIR Interpolation block) отображаются различные элементы в зависимости от выбора параметров диалога, входного порта, объекта фильтра или параметра «Авто» в поле группы «Исходный коэффициент».

 Определение характеристик фильтра в диалоговом окне

 Предоставление коэффициентов фильтра через входной порт

 Укажите объект многоскоростного фильтра

 Выбрать коэффициенты фильтра автоматически

Ссылки

[1] Флиге, Н. Дж. Многоскоростная цифровая обработка сигналов: многоскоростные системы, банки фильтров, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.

[2] Орфанидис, Софокл Дж. Введение в обработку сигналов. Река Верхнее Седло, Нью-Джерси: Прентис-Холл, 1996.

Поддерживаемые типы данных

ПортПоддерживаемые типы данных

Вход

  • Плавающая точка с двойной точностью

  • Плавающая точка с одинарной точностью

  • Фиксированная точка

  • 8-, 16- и 32-разрядные целые числа со знаком

  • 8-, 16- и 32-разрядные целые числа без знака

Продукция

  • Плавающая точка с двойной точностью

  • Плавающая точка с одинарной точностью

  • Фиксированная точка

  • 8-, 16- и 32-разрядные целые числа со знаком

  • 8-, 16- и 32-разрядные целые числа без знака

Алгоритмы

FIR-интерполяционный фильтр эффективно реализуется с использованием полифазной структуры.

Для получения полифазной структуры начните с передаточной функции фильтра FIR:

H (z) = b0 + b1z 1 +... + bNz − N

N + 1 - длина фильтра FIR.

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

H (z) = (b0+bLz−L+b2Lz−2L +. +bN−L+1z− (N−L+1)) +z−1 (b1+bL+1z−L+b2L+1z−2L +. +bN−L+2z− (N−L+1)) + ⋮z− (L−1) (bL−1+b2L−1z−L+b3L−1z−2L +. +bNz− (N−L+1))

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

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

H (z) = E0 (zL) + z 1E1 (zL) +... + z (L − 1) EL − 1 (zL)

E0 (zL), E1 (zL),..., EL-1 (zL) - полифазные компоненты КИХ-фильтра Н (z).

Концептуально фильтр интерполяции КИХ содержит повышающую дискретизацию, за которой следует фильтр нижних частот КИХ Н (z).

FIR interpolator contains an upsampler followed by an anti-imaging FIR filter.

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

Вот многоскоростная благородная идентичность для интерполяции.

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

Оператор повышающей дискретизации, блок задержки и сумматор можно заменить коммутатором. Переключатель запускается на первой ветви 0 и перемещается в направлении против часовой стрелки, каждый раз получая по одной выборке от каждой ветви. Интерполятор эффективно выводит L выборок для каждой входной выборки, которую он принимает. Следовательно, частота дискретизации на выходе фильтра интерполяции КИХ равна Lfs.

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

.

Преобразование с фиксированной точкой
Проектирование и моделирование систем с фиксированной точкой с помощью Designer™ с фиксированной точкой.

Представлен до R2006a