FIR Decimation

Отфильтруйте и проредите входные сигналы

  • Библиотека:
  • DSP System Toolbox / Фильтрующий / Многоскоростные фильтры

    Поддержка HDL DSP System Toolbox / фильтрация

  • FIR Decimation block

Описание

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

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

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

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

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

Порты

Входной параметр

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

Задайте ввод данных как вектор или матрицу.

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

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

Этот порт без имени, пока вы не устанавливаете Coefficient source на Input port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
Поддержка комплексного числа: Да

Задайте коэффициенты числителя КИХ-фильтра как вектор.

Передаточной функцией H (z) КИХ-фильтра дают:

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

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

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

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

Тип данных входа Num должен совпадать с типом данных входа In.

Зависимости

Входной порт Num появляется, когда вы устанавливаете Coefficient source как Input port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
Поддержка комплексного числа: Да

Вывод

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

Выход блока FIR Decimator, возвращенного как вектор или матрица.

Когда Rate options установлен в:

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

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

Этот порт без имени, пока вы не устанавливаете Coefficient source на Input port.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fixed point
Поддержка комплексного числа: Да

Параметры

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

Содействующий источник

Задайте КИХ-содействующий источник фильтра как одно из следующего:

  • Dialog parameters – Задайте коэффициенты фильтра через параметр FIR filter coefficients в диалоговом окне блока.

  • Input port – Задайте коэффициенты фильтра через входной порт Num.

  • Filter object – Задайте фильтр с помощью dsp.FIRDecimator Система object™.

  • 'auto' Когда вы выбираете Auto, блочные конструкции КИХ decimator использование фактора децимации, который вы задаете в Decimation factor. designMultirateFIR функционируйте проектирует фильтр и возвращает коэффициенты, используемые блоком.

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

Основная вкладка

Задайте КИХ-коэффициенты фильтра lowpass, в убывающих степенях z, как вектор. По умолчанию, designMultirateFIR(1,2) вычисляет коэффициенты фильтра.

Передаточной функцией H (z) КИХ-фильтра дают:

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

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

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

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

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

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

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port или Auto.

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

Задайте КИХ-структуру фильтра как любой Direct form или Direct form transposed.

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port или Auto.

Укажите, что имя многоскоростного фильтра возражает, что вы хотите, чтобы блок реализовал. Необходимо задать фильтр как dsp.FIRDecimatorСистемный объект.

Можно задать Системный объект непосредственно в диалоговом окне блока. В качестве альтернативы можно задать объект в MATLAB® переменная рабочей области и задает переменную в диалоговом окне блока.

Для получения информации о создании Системных объектов смотрите, Задают Объекты Базовой системы.

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Filter object.

Задайте, как блок должен обработать вход. Можно установить этот параметр на одну из следующих опций:

  • Columns as channels (frame based) — Когда вы выбираете эту опцию, блок обрабатывает каждый столбец входа как отдельный канал.

  • Elements as channels (sample based) — Когда вы выбираете эту опцию, блок обрабатывает каждый элемент входа как отдельный канал.

Задайте метод, которым блок должен десятикратно уменьшить вход. Можно выбрать одну из следующих опций:

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

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

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

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

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

  • Набор Input processing к Columns as channels (frame based)

  • Набор Rate options к Allow multirate processing

Для получения дополнительной информации о задержке в блоке FIR Decimation смотрите Задержку.

Зависимости

Этот параметр появляется только, когда вы конфигурируете блок, чтобы выполнить многоскоростную обработку установкой Rate options к Allow multirate processing.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Нажмите на эту кнопку, чтобы открыть Инструмент Визуализации Фильтра (fvtool) и отобразите ответ фильтра фильтра, заданного в диалоговом окне блока.

Вкладка типов данных

Выберите округляющийся режим для операций фиксированной точки. Значением по умолчанию является Floor. Коэффициенты фильтра не выполняют этот параметр и всегда вокруг к Nearest.

Примечание

Настройки Rounding mode и Saturate on integer overflow не оказывают влияния на числовые результаты, когда все следующие условия существуют:

  • Product output является Inherit: Inherit via internal rule

  • Accumulator является Inherit: Inherit via internal rule

  • Output является Inherit: Same as accumulator

С этими настройками типа данных блок эффективно действует в режиме максимальной точности.

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

Примечание

Rounding mode и параметры Saturate on integer overflow не оказывают влияния на числовые результаты, когда все эти условия соблюдают:

  • Типом данных Product output является Inherit: Inherit via internal rule.

  • Типом данных Accumulator является Inherit: Inherit via internal rule.

С этими настройками типа данных блок действует в режиме максимальной точности.

Задайте содействующий тип данных. Смотрите Типы данных Фиксированной точки и Умножения для рисунков, изображающих использование содействующего типа данных в этом блоке.

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

  • Inherit: Same word length as input

  • fixdt(1,16,0) или fixdt(1,16) – Задайте объект типа данных.

Нажмите кнопку Show data type assistantDouble greater than symbols, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Coefficients.

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Filter object, или Auto.

Когда Coefficient source установлен в Filter object, параметр Coefficients автоматически устанавливается на Same word length as input.

Задайте минимальное значение коэффициентов фильтра. Значением по умолчанию является [] (незаданный). Simulink® программное обеспечение использует это значение, чтобы выполнить автоматическое масштабирование типов данных с фиксированной точкой.

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters или Auto.

Задайте максимальное значение коэффициентов фильтра. Значением по умолчанию является [] (незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить автоматическое масштабирование типов данных с фиксированной точкой.

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters или Auto.

Задайте тип выходных данных продукта. Смотрите Типы данных Фиксированной точки и Умножения для рисунков, изображающих использование типа выходных данных продукта в этом блоке.

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

Нажмите кнопку Show data type assistantDouble greater than symbols, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Product output.

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Зависимости

Когда Coefficient source установлен в Filter object, параметр Product output автоматически устанавливается на Full precision.

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

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

Нажмите кнопку Show data type assistantDouble greater than symbols, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Accumulator.

Смотрите Задают Типы данных Используя Ассистент Типа данных (Simulink) для получения дополнительной информации.

Зависимости

Когда Coefficient source установлен в Filter object, параметр Accumulator автоматически устанавливается на Full precision.

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

Можно установить его на одно из следующего:

  • Inherit: Same as accumulator

  • Inherit: Same as input

  • Inherit: Same as product output

  • fixdt(1,16,0) – Задайте объект типа данных.

Нажмите кнопку Show data type assistantDouble greater than symbols, чтобы отобразить Data Type Assistant, который помогает вам установить параметр Output.

Смотрите Типы данных Управления Сигналов (Simulink) для получения дополнительной информации.

Зависимости

Когда Coefficient source установлен в Filter object, параметр Output автоматически устанавливается на Same as accumulator.

Задайте минимальное значение, которое должен вывести блок. Значением по умолчанию является [] (незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port, или Auto.

Задайте максимальное значение, которое должен вывести блок. Значением по умолчанию является [] (незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:

Зависимости

Этот параметр появляется только, когда вы устанавливаете Coefficient source на Dialog parameters, Input port, или Auto.

Выберите этот параметр, чтобы препятствовать тому, чтобы Fixed-Point Tool заменили типы данных, которые вы задаете в диалоговом окне блока.

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

Типы данных

double | fixed point | integer | single

Прямое сквозное соединение

no

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

no

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

yes

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

no

Больше о

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

Алгоритмы

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

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

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, сопровождаемый downsampler.

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

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

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

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

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

Ссылки

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

[2] Orfanidis, Софокл Дж. Введение в обработку сигналов. Верхний Сэддл-Ривер, NJ: Prentice Hall, 1996.

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

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