FIR Decimation

Фильтрация и понижающее значение входных сигналов

Библиотека

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

dspmlti4

  • FIR Decimation block

Описание

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

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

FIR decimator contains an anti-aliasing FIR filter followed by a downsampler.

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

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

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

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

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

Чтобы задать коэффициенты фильтра, выберите режим, в котором должен работать блок FIR Decimation. Выберите режим в поле группы Coefficient source.

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

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

  • Filter object - Задайте фильтр используя dsp.FIRDecimator Системные 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 фильтру с нормализованной частотой среза не более 1/ M, где M является десятикратным уменьшением фактором. Чтобы спроектировать такой фильтр, используйте designMultirateFIR функция.

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

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

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

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

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

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

    В этом режиме размер входного кадра, Ki, должен быть кратным Decimation factor, M.

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

  • Когда вы устанавливаете параметр Rate options равным Allow multirate processing, вход и выход блока FIR Decimation совпадают с размером, но скорость дискретизации вывода в M раза медленнее, чем у входа. В этом режиме блок обрабатывает Ki -by N матричный вход как N независимые каналы. Блок опустошает каждый столбец входа со временем, сохраняя формат кадра постоянным (Ki = Ko) и заставляя выход создать период (<reservedrangesplaceholder4>) M времена дольше, чем период входного кадра (Tfo = M * Tfi).

    Смотрите пример 2 - Многорейтовая обработка на основе фрейма для примера, который использует блок FIR Decimation в этом режиме.

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

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

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

Когда вы используете блок FIR Decimation в режиме обработки на основе сэмплирования, блок всегда имеет задержку нулевой задачи. Zero-tasking latency означает, что блок распространяет первую отфильтрованную входную выборку (полученную в момент времени t = 0) в качестве первой выходной выборки. Затем этот первый выход образец фильтруют входы образцов M + 1, 2 M + 1 и так далее.

Когда вы используете блок FIR Decimation в режиме обработки на основе кадров с форматом кадра, большим единицы, блок может проявлять задержку в одном кадре. Случаи задержки одного кадра могут возникнуть, когда размер входного кадра больше единицы, и вы устанавливаете параметры Input processing и Rate options блока FIR Decimation следующим образом:

  • Input processing = Columns as channels (frame based)

  • Rate options = Allow multirate processing

В случаях задержки в один кадр можно задать значение первых Ki выходных строк, установив параметр Output buffer initial conditions. Значение по умолчанию параметра Output buffer initial conditions 0. Однако можно ввести матрицу, содержащую по одному значению для каждого канала входа или скалярное значение, которое будет применено ко всем каналам. Первая отфильтрованная входная выборка (первая отфильтрованная строка входной матрицы) появляется в выходе как выборка Ki + 1. Затем этот образец фильтруют входы образцов M + 1, 2 M + 1 и так далее.

Примечание

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

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

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

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

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

Примечание

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

Примеры

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

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

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

В модели ex_firdecimation_ref1 блок FIR Decimation децимирует одноканальный вход с периодом системы координат в одну секунду. Потому что блок выполняет многократную обработку на основе кадра, и параметр Decimation factor установлен на 4, период системы координат выхода 4 секунд. Как показано на следующем рисунке, вход и выход блока FIR Decimation имеют тот же формат кадра, но скорость дискретизации выходного сигнала в четыре раза больше, чем у входного сигнала.

Пример 3

The ex_polyphasedec модель иллюстрирует базовые полифазные реализации блока FIR Decimation. Запустите модель и просмотрите результаты на возможностях. Вывод блока FIR Decimation совпадает с выходом блока Polyphase Decimation Filter.

Пример 4

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

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

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

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

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

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

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

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

Различные элементы появляются на конечную импульсную характеристику Десятикратного уменьшения диалогового окна блока в зависимости от того, выбираете ли вы 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-битные беззнаковые целые числа

Подробнее о

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

Алгоритмы

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

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

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

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

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

H(z)=(b0+bMzM+b2Mz2M+..+bNM+1z(NM+1))+z1(b1+bM+1zM+b2M+1z2M+..+bNM+2z(NM+1))+z(M1)(bM1+b2M1zM+b3M1z2M+..+bNz(NM+1))

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

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

H(z)=E0(zM)+z1E1(zM)+...+z(M1)EM1(zM)

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

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

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

Вот многорасовые благородные тождества для десятикратного уменьшения.

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

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

Когда доставляется первая входная выборка, переключатель подает этот вход в ветвь 0, и дециматор вычисляет первое выходное значение. Поскольку более выборки входа входят, выключатель приближается против часовой стрелки направление через <reservedrangesplaceholder5> −1 ветвей, <reservedrangesplaceholder4> −2, и полностью ветвиться 0, поставляя одну выборку за один раз каждой ветви. Когда переключатель приходит к ветви 0, дециматор выходов следующий набор выхода значений. Этот процесс продолжается, когда данные продолжают поступать. Каждый раз, когда переключатель приходит к ветви 0, дециматор выводит y[m]. Дециматор эффективно выводит одну выборку для каждого полученного им M выборки. Следовательно, скорость дискретизации на выходе конечной импульсной характеристики децимирующего фильтра равна fs/ M.

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

.

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

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