FIR Interpolation

Преобразование и фильтрация входных сигналов

Библиотека

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

dspmlti4

  • FIR Interpolation block

Описание

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

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

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

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

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

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

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

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

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

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

  • Filter object - Задайте фильтр используя dsp.FIRInterpolator Системные object™.

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

Когда вы выбираете Dialog parameters, вы используете параметр FIR filter coefficients, чтобы задать коэффициенты числителя передаточной функции конечной импульсной характеристики H (z).

H(z)=b0+b1z1+...+bNzN

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

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

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

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

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

Обработка на основе фрейма

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

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

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

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

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

Выборка на основе обработки

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

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

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

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

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

Elements as channels (sample based)

L выборки

Columns as channels (frame based)

L системы координат (Ki выборок на кадр)

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

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

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

Примечание

Для получения дополнительной информации о задержках и режимах задачи Simulink, смотрите Избыточную алгоритмическую задержку (Задержка Задачи) и Основанное на времени Планирование и Генерация кода (Simulink Coder).

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

Следующая схема показывает типы данных, используемые в блоке FIR Interpolation для сигналов с фиксированной точкой.

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

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

Примечание

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

Примеры

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

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

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

В ex_firinterpolation_ref1 блок Интерполяции конечной импульсной характеристики интерполирует одноканальный вход с периодом системы координат 1 секунду (Sample time = 1/64 и Samples per frame = 64). Потому что блок выполняет многократную обработку на основе кадра, и параметр Interpolation factor установлен на 4, выход блока Интерполяции конечной импульсной характеристики имеет период системы координат 0.25 секунд. Как показано на следующем рисунке, вход и выход блока интерполяции конечной импульсной характеристики имеют тот же формат кадра, но скорость дискретизации вывода 1/4 умножает значение входного входа.

Пример 3

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

Пример 4

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

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

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

Блок конечной импульсной характеристики Interpolation может работать в четырех различных режимах. Выберите режим в поле группы Coefficient source.

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

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

  • Filter object - Задайте фильтр используя dsp.FIRInterpolator Системный объект.

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

Различные элементы появляются в диалоговом окне FIR Interpolation блока в зависимости от того, выбираете ли вы Dialog parameters, Input port, Filter object или Auto в Coefficient source рамке группы.

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

 Обеспечьте коэффициенты фильтра через Input port

 Задайте Многоскоростной фильтр объект

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

Ссылки

[1] Флиге, Н. Дж. Multirate Digital Signal Processing: Multirate Systems, Filter Banks, вейвлеты. Западный Сассекс, Англия: John Wiley & Sons, 1994.

[2] Orfanidis, Sophocles J. Введение в обработку сигналов. Upper Saddle River, NJ: Prentice Hall, 1996.

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

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

Вход

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

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

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

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

Выход

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

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

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

  • 8-, 16- и 32-битные целые числа со знаком

  • 8-, 16- и 32-битные беззнаковые целые числа

Алгоритмы

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

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

H(z)=b0+b1z1+...+bNzN

N + 1 - длина конечной импульсной характеристики фильтра.

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

H(z)=(b0+bLzL+b2Lz2L+..+bNL+1z(NL+1))+z1(b1+bL+1zL+b2L+1z2L+..+bNL+2z(NL+1))+z(L1)(bL1+b2L1zL+b3L1z2L+..+bNz(NL+1))

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

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

H(z)=E0(zL)+z1E1(zL)+...+z(L1)EL1(zL)

E0 (zL), E1 (zL),..., EL-1 (zL) являются полифазными компонентами конечной импульсной характеристики H (z).

Концептуально конечная импульсная характеристика интерполяционный фильтр содержит усилитель, за которым следует конечная импульсная характеристика lowpass фильтр H (z).

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

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

Вот многорасовые благородные тождества для интерполяции.

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

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

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

.

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

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