Дискретный КИХ-фильтр

Образцовые КИХ-фильтры

  • Библиотека:
  • Simulink / Дискретный

Описание

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

Этот блок фильтрует каждый канал входного сигнала независимо в зависимости от времени. Входной параметр обработки позволяет вам задавать, обрабатывает ли блок каждый элемент входного параметра как независимый канал (основанная на выборке обработка), или каждый столбец входного параметра как независимый канал (основанная на кадре обработка). Чтобы выполнить основанную на кадре обработку, у вас должна быть Система DSP лицензия Toolbox™.

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

Выходные параметры этого блока численно совпадают с выходными параметрами блока DSP System Toolbox Digital Filter Design.

Этот блок поддерживает состояние Simulink® журналирование функции. Для получения дополнительной информации смотрите состояния.

Отфильтруйте поддержку структуры

Можно изменить структуру фильтра, реализованную с блоком Discrete FIR Filter путем выбора одного из следования из параметра структуры Фильтра:

  • Direct form

  • Direct form symmetric

  • Direct form antisymmetric

  • Direct form transposed

  • Lattice MA

У вас должна быть доступная лицензия DSP System Toolbox, чтобы запустить модель с любой из этих структур фильтра кроме Direct form.

Определение начальных состояний

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

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

Допустимые начальные состояния

Начальное условиеОписание

Скаляр

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

Вектор или матрица
(для применения различных элементов задержки к каждому каналу)

Каждый вектор или элемент матрицы задают уникальное начальное условие для соответствующего элемента задержки в соответствующем канале:

  • Векторная длина равняется продукту количества входных каналов и количества элементов задержки в фильтре, #_of_filter_coeffs-1 (или #_of_reflection_coeffs для Lattice MA).

  • Матрица должна иметь то же количество строк как количество элементов задержки в фильтре, #_of_filter_coeffs-1 (#_of_reflection_coeffs для Lattice MA), и должна иметь один столбец для каждого канала входного сигнала.

Порты

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

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

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

Зависимости

Когда вы устанавливаете Содействующий источник на Dialog parameters, порт для входного сигнала не маркирован. Когда вы устанавливаете Содействующий источник на Input port, порт для входного сигнала маркирован In.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | фиксированная точка

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

Зависимости

Чтобы включить этот порт, установите Содействующий источник на Input port.

Чтобы реализовать несколько фильтров, структурой Фильтра должен быть Direct form, и входной параметр должен быть скаляром.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | фиксированная точка

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

Совет

Значок для этого порта изменяется на основе значения Внешнего параметра сброса.

Зависимости

Чтобы включить этот порт, установите Внешний сброс на Rising, Falling, Either, Level или Level hold.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | фиксированная точка

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

Зависимости

Чтобы включить этот порт, выберите Show, включают флажок порта.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | фиксированная точка

Вывод

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

Фильтрованный выходной сигнал.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | uint8 | uint16 | uint32 | фиксированная точка

Параметры

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

Основной

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

Программируемое использование

Блочный параметр: CoefSource
Ввод: символьный вектор
Значения: 'Диалоговые параметры' | 'Входной порт'
Значение по умолчанию: 'Dialog parameters'

Выберите структуру фильтра, которую вы хотите, чтобы блок реализовал.

Зависимости

У вас должна быть доступная лицензия DSP System Toolbox, чтобы запустить модель с блоком Discrete FIR Filter, который реализует любую структуру фильтра кроме Direct form.

Программируемое использование

Блочный параметр: FilterStructure
Ввод: символьный вектор
Значения: 'Прямая форма' | 'Прямая форма, симметричная' | 'Прямая форма, антисимметричная' | 'Прямая форма, транспонированная' | 'MA Решетки'
Значение по умолчанию: 'Direct form'

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

Зависимости

Чтобы включить этот параметр, установите Содействующий источник на Dialog parameters.

Чтобы реализовать несколько фильтров, структурой Фильтра должен быть Direct form, и входной параметр должен быть скаляром.

Программируемое использование

Блочный параметр: Coefficients
Ввод: символьный вектор
Значения: вектор
Значение по умолчанию: '[0.5 0.5]'

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

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

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

    Примечание

    Основанная на кадре обработка требует лицензии DSP System Toolbox.

    Для получения дополнительной информации смотрите Выборку - и Основанные на кадре Концепции (DSP System Toolbox).

Программируемое использование

Блочный параметр: InputProcessing
Ввод: символьный вектор
Значения: 'Столбцы как каналы (базирующийся кадр)' | 'Элементы как каналы (базирующаяся выборка)'
Значение по умолчанию: 'Elements as channels (sample based)'

Задайте начальные условия состояний фильтра. Чтобы изучить, как задать начальные состояния, смотрите начальные состояния Определения.

Программируемое использование

Блочный параметр: InitialStates
Ввод: символьный вектор
Значения: скаляр | вектор | матрица
Значение по умолчанию: '0'

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

Программируемое использование

Блочный параметр: ShowEnablePort
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

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

Сбросьте режимПоведение
'none'Никакой сброс.
RisingСбросьте на возрастающем краю.
FallingСбросьте на падающем краю.
EitherСбросьте или на повышении или на падающем краю.
Level

Сбросьте в любом из этих случаев:

  • когда сигнал сброса является ненулевым на шаге текущего времени

  • когда значение сигналов сброса изменяется от ненулевого на предыдущем временном шаге, чтобы обнулить на шаге текущего времени

Level holdСбросьте, когда сигнал сброса будет ненулевым на шаге текущего времени

Программируемое использование

Блочный параметр: ExternalReset
Ввод: символьный вектор
Значения: 'Ни один' | 'Повышающийся' | 'Падающий' | 'Любой' | 'Уровень' | 'Уровень не содержит'
Значение по умолчанию: 'none'

Задайте временной интервал между выборками. Чтобы наследовать частоту дискретизации, установите этот параметр на -1. Для получения дополнительной информации см. Настройку времени выборки.

Программируемое использование

Блочный параметр: 'SampleTime'
Ввод: символьный вектор
Значения: скаляр | вектор
Значение по умолчанию: '-1'

Типы данных

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

  • Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule

  • Встроенное целое число, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Зависимости

Этот параметр только видим, когда вы устанавливаете структуру Фильтра на Direct form symmetric или Direct form antisymmetric.

Программируемое использование

Блочный параметр: TapSumDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: То же самое, как введено' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Same as input'

Задайте содействующий тип данных. Можно установить его на:

  • Правило, которое наследовало тип данных, например, Inherit: Same word length as input

  • Встроенное целое число, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Программируемое использование

Блочный параметр: CoeffDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: Тот же размер слова, как введено' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Same wordlength as input'

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

Программируемое использование

Блочный параметр: CoeffMin
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '[]'

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

Программируемое использование

Блочный параметр: CoeffMax
Ввод: символьный вектор
Значения: скаляр
Значение по умолчанию: '[]'

Задайте тип выходных данных продукта. Можно установить его на:

  • Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule

  • Встроенный тип данных, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Программируемое использование

Блочный параметр: ProductDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: Наследуйтесь через внутреннее правило' |, 'Наследуйтесь: То же самое, как введено' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

Задайте тип данных аккумулятора. Можно установить его на:

  • Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule

  • Встроенный тип данных, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Программируемое использование

Блочный параметр: AccumDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: Наследуйтесь через внутреннее правило' |, 'Наследуйтесь: То же самое, как введено' | 'Наследовалось: То же самое как продукт вывод' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Inherit via internal rule'

Задайте тип данных состояния. Можно установить его на:

  • Правило, которое наследовало тип данных, например, Inherit: Same as accumulator

  • Встроенное целое число, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Зависимости

Чтобы включить этот параметр, установите структуру Фильтра на Lattice MA.

Программируемое использование

Блочный параметр: StateDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: То же самое как аккумулятор' | 'Наследовалось: То же самое, как введено' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Same as accumulator'

Задайте тип выходных данных. Можно установить его на:

  • Правило, которое наследовало тип данных, например, Inherit: Same as accumulator

  • Встроенный тип данных, например, int8

  • Объект типа данных, например, объект Simulink.NumericType

  • Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)

Нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.

Программируемое использование

Блочный параметр: OutDataTypeStr
Ввод: символьный вектор
Значения: 'Наследуйтесь: То же самое как аккумулятор' | 'Наследовалось: То же самое, как введено' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'fixdt (1,16)' | 'fixdt (1,16,0)' |' <выражение типа данных>'
Значение по умолчанию: 'Inherit: Same as accumulator'

Нижнее значение выходной области значений это Simulink Check.

Симулинк использует минимум, чтобы выполнить:

Примечание

Выведите минимум, не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

Программируемое использование

Блочный параметр: OutMin
Ввод: символьный вектор
Значения:' []' | скаляр
Значение по умолчанию: '[ ]'

Верхнее значение выходной области значений это Simulink Check.

Симулинк использует максимальное значение, чтобы выполнить:

Примечание

Выведите максимум, не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.

Программируемое использование

Блочный параметр: OutMax
Ввод: символьный вектор
Значения:' []' | скаляр
Значение по умолчанию: '[ ]'

Выберите, чтобы заблокировать настройки типа данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).

Программируемое использование

Блочный параметр: LockScale
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).

Программируемое использование

Блочный параметр: RndMeth
Ввод: символьный вектор
Значения: 'Потолок' | 'Конвергентный' | 'Пол' | 'Самый близкий' | 'Вокруг' | 'Самый Простой' | 'Нуль'
Значение по умолчанию: пол

Задайте, насыщает ли переполнение или переносится.

ДействиеОбъяснениеПовлияйте на переполненииПример

Установите этот флажок (on).

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

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

Максимальное значение, которое может представлять int8 (подписанное, 8-битное целое число) тип данных, равняется 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. С установленным флажком блок вывод насыщает в 127. Точно так же блок вывод насыщает в минимальном выходном значении-128.

Не устанавливайте этот флажок (off).

Вы хотите оптимизировать эффективность своего сгенерированного кода.

Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Проверку на Ошибки Диапазона сигнала.

Переполнение переносится к соответствующему значению, которое является представимым, по условию вводят.

Максимальное значение, которое может представлять int8 (подписанное, 8-битное целое число) тип данных, равняется 127. Любой результат блочной операции, больше, чем это максимальное значение, вызывает переполнение 8-битного целого числа. Со снятым флажком программное обеспечение интерпретирует вызывающее переполнение значение как int8, который может привести к непреднамеренному результату. Например, блочный результат 130 (двоичный файл 1000 0010) выраженный как int8,-126.

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

Программируемое использование

Блочный параметр: SaturateOnIntegerOverflow
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Образцовые примеры

Fixed-Point Tool

Fixed-Point Tool

Этот пример показывает, как использовать Fixed-Point Tool, который запускается автоматически после открытия модели. Инструмент является графическим интерфейсом пользователя (GUI), который автоматизирует общие задачи сбора данных области значений минимакса во время моделирований для использования в автоматическом выборе фиксированной точки, масштабирующейся для блоков. Можно сконфигурировать любую фиксированную точку способный блок в Simulink®, чтобы принять масштабирование, предложенное инструментом. Можно вручную задать масштабирование для ключевых блоков, таких как входные порты и выборочно отключить автоматизированное масштабирование в модели на основе блока блоком. Это дает Fixed-Point Tool больше информации, чтобы работать с и результаты в автоматически выбранных масштабированиях фиксированной точки, которые совместимы с ключом, вручную выбрал масштабирования.

Блокируйте характеристики

Типы данных

double | single | base integer | fixed point

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

No

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

No

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

Yes

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

No

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

Генерация кода PLC
Сгенерируйте код Структурированного текста с помощью Simulink® PLC Coder™.

Введенный в R2008a

Была ли эта тема полезной?