Моделирование КИХ-фильтра
Simulink / Дискретный
HDL Coder / Дискретный
HDL Coder / Операции Плавающей точки HDL
Блок Discrete FIR Filter независимо фильтрует каждый канал входного сигнала с заданным цифровым КИХ-фильтром. Блок может реализовать статические фильтры с фиксированными коэффициентами и изменяющиеся во времени фильтры с коэффициентами то изменение в зависимости от времени. Можно настроить коэффициенты статического фильтра в процессе моделирования.
Этот блок фильтрует каждый канал входного сигнала независимо в зависимости от времени. Параметр Input processing позволяет вам задавать, обрабатывает ли блок каждый элемент входа как независимый канал (основанная на выборке обработка), или каждый столбец входа как независимый канал (основанная на системе координат обработка). Чтобы выполнить основанную на системе координат обработку, у вас должна быть лицензия DSP System Toolbox™.
Выходные размерности равняются входным размерностям, кроме тех случаев, когда вы задаете матрицу касаний фильтра для параметра Coefficients. Когда вы делаете так, выходные размерности зависят от количества различных наборов касаний фильтра, которые вы задаете.
Этот блок поддерживает пользовательские атрибуты состояния, чтобы настроить и сгенерировать код более эффективно. Для примера смотрите Пользовательские Атрибуты состояния в блоке Discrete FIR Filter. При определенных обстоятельствах блок также поддерживает генерацию кода SIMD. Для получения дополнительной информации смотрите Генерацию кода.
Выходные параметры этого блока численно совпадают с выходными параметрами блока DSP System Toolbox Digital Filter Design (DSP System Toolbox).
Этот блок поддерживает состояние Simulink® логгирование функции. Для получения дополнительной информации смотрите состояние.
Можно изменить структуру фильтра, реализованную с блоком Discrete FIR Filter путем выбора одного из следования из параметра Filter structure:
Direct form
Direct form symmetric
Direct form antisymmetric
Direct form transposed
Lattice MA
У вас должна быть доступная лицензия DSP System Toolbox, чтобы запустить модель с любой из этих структур фильтра кроме Direct form
.
Блок Discrete FIR Filter инициализирует внутренние состояния фильтра, чтобы обнулить по умолчанию, который оказывает то же влияние как принимающий, что прошлые вводы и выводы являются нулем. Можно опционально использовать параметр Initial states, чтобы задать ненулевые начальные условия для задержек фильтра.
Чтобы определить количество начальных состояний, необходимо задать и как задать их, см. таблицу на допустимых начальных состояниях. Параметр Initial states может принять одну из форм, описанных в следующей таблице.
Допустимые начальные состояния
Начальное условие | Описание |
---|---|
Скаляр |
Блок инициализирует все элементы задержки в фильтре к скалярному значению. |
Вектор или матрица |
Каждый вектор или элемент матрицы задают уникальное начальное условие для соответствующего элемента задержки в соответствующем канале:
|
In
— Входной сигналВходной сигнал, чтобы отфильтровать в виде скаляра, вектора или матрицы.
Когда вы устанавливаете Coefficient source на Dialog parameters
, порт для входного сигнала не помечен. Когда вы устанавливаете Coefficient source на Input port
, порт для входного сигнала помечен In.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Num
— Отфильтруйте коэффициентыЗадайте коэффициенты фильтра как скаляр, вектор или матрицу. Когда вы задаете вектор-строку из касаний фильтра, блок применяет один фильтр к входу. Чтобы применить несколько фильтров к тому же входу, задайте матрицу коэффициентов, где каждая строка представляет различный набор касаний фильтра.
Чтобы включить этот порт, установите Coefficient source на Input port
.
Чтобы реализовать несколько фильтров, Filter structure должен быть Direct form
, и вход должен быть скаляром.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
External reset
— Внешний сигнал сбросаВнешний сигнал сброса в виде скаляра. Когда заданное триггерное событие имеет место, блок сбрасывает состояния к их начальным условиям.
Совет
Значок для этого порта изменяется на основе значения параметра External reset.
Чтобы включить этот порт, установите External reset на Rising
, Falling
, Either
, Level
, или Level hold
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
⎍
— Включите сигналВключите сигнал в виде скаляра. Этот порт может управлять выполнением блока. Блок включен, когда вход к этому порту ненулевой, и отключен, когда входом является 0
. Значение входа проверяется одновременно шаг как выполнение блока.
Чтобы включить этот порт, установите флажок Show enable port.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Port_1
— Фильтрованный выходной сигналФильтрованный выходной сигнал.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
Coefficient source
— Источник коэффициентовDialog parameters
(значение по умолчанию) | Input port
Примите решение задать коэффициенты фильтра с помощью настраиваемых диалоговых параметров или через входной порт, который полезен для изменяющихся во времени коэффициентов.
Параметры блоков:
CoefSource
|
Ввод: символьный вектор |
Значения:
'Dialog parameters' | 'Input port'
|
Значение по умолчанию:
'Dialog parameters'
|
Filter structure
— Отфильтруйте структуруDirect form
(значение по умолчанию) | Direct form symmetric
| Direct form antisymmetric
| Direct form transposed
| Lattice MA
Выберите структуру фильтра, которую вы хотите, чтобы блок реализовал.
У вас должна быть доступная лицензия DSP System Toolbox, чтобы запустить модель с блоком Discrete FIR Filter, который реализует любую структуру фильтра кроме Direct form
.
Параметры блоков:
FilterStructure |
Ввод: символьный вектор |
Значения:
'Direct form' | 'Direct form symmetric' | 'Direct form antisymmetric' | 'Direct form transposed' | 'Lattice MA' |
Значение по умолчанию:
'Direct form'
|
Coefficients
— Отфильтруйте коэффициенты
(значение по умолчанию) | вектор | матрицаЗадайте вектор коэффициентов для передаточной функции. Коэффициенты фильтра должны быть заданы как вектор-строка. Когда вы задаете вектор-строку из касаний фильтра, блок применяет один фильтр к входу. Чтобы применить несколько фильтров к тому же входу, задайте матрицу коэффициентов, где каждая строка представляет различный набор касаний фильтра.
Чтобы включить этот параметр, установите Coefficient source на Dialog parameters
.
Чтобы реализовать несколько фильтров, Filter structure должен быть Direct form
, и вход должен быть скаляром.
Параметры блоков:
Coefficients
|
Ввод: символьный вектор |
Значения: вектор |
Значение по умолчанию:
'[0.5 0.5]'
|
Input processing
— Выборка - или основанная на системе координат обработкаElements as channels (sample based)
(значение по умолчанию) | Columns as channels (frame based)
Задайте, выполняет ли блок выборку - или основанная на системе координат обработка. Можно выбрать одну из следующих опций:
Elements as channels (sample based)
— Обработайте каждый элемент входа как независимый канал (основанная на выборке обработка).
Columns as channels (frame based)
— Обработайте каждый столбец входа как независимый канал (основанная на системе координат обработка).
Примечание
Основанная на системе координат обработка требует лицензии DSP System Toolbox.
Для получения дополнительной информации смотрите Выборку - и Основанные на системе координат Концепции (DSP System Toolbox).
Параметры блоков:
InputProcessing
|
Ввод: символьный вектор |
Значения:
'Columns as channels (frame based)' | 'Elements as channels (sample based)' |
Значение по умолчанию:
'Elements as channels (sample based)'
|
Initial states
— Начальные условия состояний фильтра
(значение по умолчанию) | скаляр | вектор | матрицаЗадайте начальные условия состояний фильтра. Чтобы изучить, как задать начальные состояния, смотрите начальные состояния Определения.
Параметры блоков:
InitialStates
|
Ввод: символьный вектор |
Значения: скаляр | вектор | матрица |
Значение по умолчанию:
'0' |
Show enable port
— Создайте включают портoff
(значение по умолчанию) | on
Выберите, чтобы управлять выполнением этого блока с разрешать портом. Блок рассматривается активированным, когда вход к этому порту является ненулевым, и отключен, когда входом является 0
. Значение входа проверяется одновременно шаг как выполнение блока.
Параметры блоков:
ShowEnablePort
|
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
External reset
— Внешний сброс состоянияNone
(значение по умолчанию) | Rising
| Falling
| Either
| Level
| Level hold
Задайте триггерное событие, чтобы использовать, чтобы сбросить состояния к начальным условиям.
Сбросьте режим | Поведение |
---|---|
None | Никакой сброс |
Rising | Сбросьте на возрастающем ребре |
Falling | Сбросьте на падающем ребре |
Either | Сбросьте или на повышении или на падающем ребре |
Level | Сбросьте в любом из этих случаев:
|
Level hold | Сбросьте, когда сигнал сброса будет ненулевым на шаге текущего времени |
Параметры блоков: ExternalReset |
Ввод: символьный вектор |
Значения: 'None' | 'Rising' | 'Falling' | 'Either' | 'Level' | 'Level hold' |
Значение по умолчанию: 'None' |
Sample time (-1 for inherited)
— Временной интервал между выборками
(значение по умолчанию) | скаляр | векторЗадайте временной интервал между выборками. Чтобы наследовать шаг расчета, установите этот параметр на -1
. Для получения дополнительной информации см. Настройку времени выборки.
Параметры блоков:
SampleTime |
Ввод: символьный вектор |
Значения: скаляр | вектор |
Значение по умолчанию:
'-1' |
Tap sum
— Коснитесь типа данных суммыInherit: Same as input
(значение по умолчанию) | Inherit: Inherit via internal rule
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16,0)
| <data type expression>
Задайте тип данных суммы касания прямой формы симметричная или прямая форма антисимметричный фильтр, который является типом данных использование фильтра, когда это суммирует входные параметры до умножения коэффициентами. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule
Встроенное целое число, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Этот параметр только отображается, когда вы устанавливаете Filter structure на Direct form symmetric
или Direct form antisymmetric
.
Параметры блоков:
TapSumDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Same as input' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Same as input' |
Coefficients
— Содействующий тип данныхInherit: Same wordlength as input
(значение по умолчанию) | int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16,0)
| <data type expression>
Задайте содействующий тип данных. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same word length as input
Встроенное целое число, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
CoeffDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Same word length as input'| 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Same wordlength as input' |
Coefficients minimum
— Минимальное значение коэффициентов[]
(значение по умолчанию) | скалярЗадайте минимальное значение, которое должен иметь коэффициент фильтра. Значением по умолчанию является []
(незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков),
Автоматическое масштабирование типов данных с фиксированной точкой
Параметры блоков:
CoeffMin |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'[]' |
Coefficients maximum
— Максимальное значение коэффициентов[]
(значение по умолчанию) | скалярЗадайте максимальное значение, которое должен иметь коэффициент фильтра. Значением по умолчанию является []
(незаданный). Программное обеспечение Simulink использует это значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков),
Автоматическое масштабирование типов данных с фиксированной точкой
Параметры блоков:
CoeffMax |
Ввод: символьный вектор |
Значения: скаляр |
Значение по умолчанию:
'[]' |
Product output
— Тип выходных данных продуктаInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Same as input
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16,0)
| <data type expression>
Задайте тип выходных данных продукта. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule
Встроенный тип данных, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
ProductDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Inherit via internal rule' | 'Inherit: Same as input' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Inherit via internal rule' |
Accumulator
— Тип данных аккумулятораInherit: Inherit via internal rule
(значение по умолчанию) | Inherit: Same as input
| Inherit: Same as product output
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16,0)
| <data type expression>
Задайте тип данных аккумулятора. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Inherit via internal rule
Встроенный тип данных, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
AccumDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Inherit via internal rule' | 'Inherit: Same as input' | 'Inherit: Same as product output' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Inherit via internal rule' |
State
— Тип данных состоянияInherit: Same as accumulator
(значение по умолчанию) | Inherit: Same as input
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16,0)
| <data type expression>
Задайте тип данных состояния. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same as accumulator
Встроенное целое число, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Чтобы включить этот параметр, установите Filter structure на Lattice MA
.
Параметры блоков:
StateDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Same as accumulator' | 'Inherit: Same as input' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Same as accumulator' |
Output
— Тип выходных данныхInherit: Same as accumulator
(значение по умолчанию) | Inherit: Same as input
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| <data type expression>
Задайте тип выходных данных. Можно установить его на:
Правило, которое наследовало тип данных, например, Inherit: Same as accumulator
Встроенный тип данных, например, int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое оценивает к типу данных, например, fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, который помогает вам установить атрибуты типа данных. Для получения дополнительной информации смотрите, Задают Типы данных Используя Ассистент Типа данных.
Параметры блоков:
OutDataTypeStr |
Ввод: символьный вектор |
Значения:
'Inherit: Same as accumulator' | 'Inherit: Same as input' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | '<data type expression>' |
Значение по умолчанию:
'Inherit: Same as accumulator' |
Output minimum
— Минимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярНижнее значение выходной области значений это Simulink Check.
Simulink использует минимум, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков) для некоторых блоков.
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала и Включает Проверку диапазона Симуляции).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Примечание
Output minimum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMin |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Output maximum
— Максимальное выходное значение для проверки диапазона[]
(значение по умолчанию) | скалярВерхнее значение выходной области значений это Simulink Check.
Simulink использует максимальное значение, чтобы выполнить:
Проверка диапазона параметра (см., Задает Минимальные и Максимальные значения для Параметров блоков) для некоторых блоков.
Проверка диапазона симуляции (см., Указывает Диапазоны сигнала и Включает Проверку диапазона Симуляции).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, который вы генерируете из модели. Эта оптимизация может удалить алгоритмический код и влиять на результаты некоторых режимов симуляции, такие как SIL или режим external mode. Для получения дополнительной информации смотрите, Оптимизируют использование заданных минимальных и максимальных значений (Embedded Coder).
Примечание
Output maximum не насыщает или отсекает фактический выходной сигнал. Используйте блок Saturation вместо этого.
Параметры блоков: OutMax |
Ввод: символьный вектор |
Значения: '[ ]' | скаляр |
Значение по умолчанию: '[ ]' |
Lock data type settings against changes by the fixed-point tools
— Препятствуйте тому, чтобы Fixed-Point Tool заменили типы данныхoff
(значение по умолчанию) | on
Выберите, чтобы заблокировать настройки типа данных этого блока против изменений Fixed-Point Tool и Советником Фиксированной точки. Для получения дополнительной информации смотрите Блокировку Установка Типа Выходных данных (Fixed-Point Designer).
Параметры блоков:
LockScale |
Значения:
'off' | 'on' |
Значение по умолчанию:
'off' |
Integer rounding mode
— Режим Rounding для операций фиксированной точкиFloor
(значение по умолчанию) | Ceiling
| Convergent
| Nearest
| Round
| Simplest
| Zero
Задайте округляющийся режим для операций фиксированной точки. Для получения дополнительной информации смотрите Округление (Fixed-Point Designer).
Параметры блоков:
RndMeth |
Ввод: символьный вектор |
Значения:
'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
Значение по умолчанию:
'Floor' |
Saturate on integer overflow
— Метод действия переполненияoff
(значение по умолчанию) | on
Задайте, насыщает ли переполнение или переносится.
Действие | Объяснение | Повлияйте на переполнение | Пример |
---|---|---|---|
Установите этот флажок ( |
Ваша модель имеет возможное переполнение, и вы хотите явную защиту насыщения в сгенерированном коде. |
Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. |
Максимальное значение, что |
Не устанавливайте этот флажок ( |
Вы хотите оптимизировать КПД своего сгенерированного кода. Вы не хотите чрезмерно определять, как блок обрабатывает сигналы из области значений. Для получения дополнительной информации смотрите Ошибки Диапазона сигнала Поиска и устранения неисправностей. |
Переполнение переносится к соответствующему значению, которое является представимым, по условию вводят. |
Максимальное значение, что |
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, не только выходу или результату. Обычно, процесс генерации кода может обнаружить, когда переполнение не возможно. В этом случае генератор кода не производит код насыщения.
Параметры блоков: SaturateOnIntegerOverflow |
Ввод: символьный вектор |
Значения:
'off' | 'on' |
Значение по умолчанию: 'off' |
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Этот блок поддерживает пользовательские атрибуты состояния, чтобы настроить и сгенерировать код более эффективно. Чтобы получить доступ или установить эти атрибуты, откройте Model Data Editor. На вкладке Modeling нажмите Model Data Editor. Для примера смотрите Пользовательские Атрибуты состояния в блоке Discrete FIR Filter.
Блок Discrete FIR Filter поддерживает использование генерации кода SIMD технология Intel AVX2 при этих условиях:
Filter structure установлен в Direct form
или Direct form transposed
.
Input processing установлен в Columns as channels (frame based)
.
Входной сигнал с действительным знаком с действительными коэффициентами фильтра.
Когда Filter structure установлен в Direct form
, входной сигнал может также быть с комплексным знаком с действительными или комплексными коэффициентами фильтра.
Входной сигнал имеет тип данных single
или double
.
Технология SIMD значительно улучшает производительность сгенерированного кода.
HDL Coder™ обеспечивает дополнительные параметры конфигурации, которые влияют на реализацию HDL и синтезируемую логику.
Для допустимого благоприятного для оборудования и управляющие сигналы сброса, и смоделировать точное аппаратное поведение задержки в Simulink, используют блок Discrete FIR Filter HDL Optimized (DSP System Toolbox) вместо этого.
Чтобы уменьшать область или скорость увеличения, блок Discrete FIR Filter поддерживает или оптимизацию блочного уровня или оптимизацию уровня подсистемы. Для получения дополнительной информации доступных параметров оптимизации блочного уровня, смотрите Оптимизацию Блока. Когда вы включаете оптимизацию блока, блок не может участвовать в оптимизации подсистемы. Используйте оптимизацию блока, когда ваш проект будет одним фильтром с одним каналом. Используйте оптимизацию подсистемы, чтобы совместно использовать ресурсы через несколько каналов или несколько фильтров. Для блока, чтобы участвовать в оптимизации уровня подсистемы, установите Architecture на Fully parallel
. Смотрите оптимизацию подсистемы для фильтров (HDL Coder).
HDL Coder поддерживает использование векторных входных параметров с блоками Discrete FIR Filter, где каждый элемент вектора представляет независимый канал.
Соедините векторный сигнал с входным портом блока Discrete FIR Filter.
Задайте Input processing как Elements as channels (sample based)
.
Чтобы уменьшать область путем совместного использования ядра фильтра между каналами, установите свойство ChannelSharing на количество каналов.
HDL Coder поддерживает программируемые фильтры для блоков Discrete FIR Filter.
На фильтре блокируют маску, набор Coefficient source к Input port.
Соедините векторный сигнал с Num
содействующий порт.
Программируемые фильтры не поддерживаются для:
распределенная арифметика (DA)
Набор CoeffMultipliers к csd
или factored-csd
HDL Coder поддерживает использование векторных входных параметров с блоками Discrete FIR Filter, где каждый элемент вектора представляет выборку вовремя. Можно использовать входной вектор до 512 выборок. Основанные на системе координат типы входных и выходных данных фиксированной точки поддержки внедрения и полная точность использования внутренние типы данных. Можно использовать действительные входные сигналы с действительными коэффициентами, комплексные входные сигналы с действительными коэффициентами или действительные входные сигналы с комплексными коэффициентами. Можно также использовать основанный на системе координат вход с программируемыми коэффициентами.
Соедините векторный сигнал с входным портом блока Discrete FIR Filter.
Задайте Input processing как Columns as channels (frame based)
, и набор Filter structure к Direct form
.
Щелкните правой кнопкой по блоку и откройте HDL Code> HDL Block Properties. Установите Architecture на Frame Based
. Блок реализует прямую архитектуру HDL параллели формы. Другие архитектуры, включая полностью - или частично последовательный, не поддерживаются. Смотрите Основанную на системе координат Архитектуру (HDL Coder).
Основанные на системе координат входные фильтры не поддерживаются для:
Дополнительный сброс блочного уровня и включает управляющие сигналы
Восстановленные и активированные подсистемы
Комплексные входные сигналы с комплексными коэффициентами. Можно использовать или комплексные входные сигналы и действительные коэффициенты, или объединить коэффициенты и действительные входные сигналы.
Многоканальный вход
Совместное использование и потоковая передача оптимизации
распределенная арифметика (DA)
Можно сгенерировать HDL-код для фильтров с, или без дополнительного включают порт, и с или без дополнительного порта сброса.
Можно использовать любую комбинацию комплексного входа и объединить коэффициенты с полностью параллельными структурами фильтра, когда вы используете не основанные на системе координат входные данные.
Комплексные коэффициенты не поддерживаются с последовательными архитектурами фильтра.
Когда вы используете основанные на системе координат входные данные, можно использовать или комплексные входные сигналы и действительные коэффициенты, или объединить коэффициенты и действительные входные сигналы.
Вы не можете использовать распределенную арифметику (DA) или набор CoeffMultipliers к csd
или factored-csd
с комплексными коэффициентами.
Область и оптимизация скорости | |
---|---|
Последовательная архитектура | Чтобы использовать оптимизацию блочного уровня, чтобы уменьшать аппаратные ресурсы, установите Architecture на одну из последовательных опций. Смотрите Архитектуры Фильтра HDL (HDL Coder). Когда вы задаете SerialPartition и ReuseAccum для блока Discrete FIR Filter, устанавливаете Filter structure на |
Распределенная арифметика | Чтобы минимизировать множители, заменяя их на LUTs и сдвиговые регистры, используйте реализацию фильтра распределенной арифметики (DA). Смотрите Распределенную Арифметику для Фильтров HDL (HDL Coder). Когда вы выбираете |
Многоканальное сокращение области | Чтобы совместно использовать логику фильтра между каналами, установите свойство ChannelSharing на количество каналов. Используя ChannelSharing исключает фильтр из другой оптимизации. Можно достигнуть того же совместного использования логики через всю имеющую право логику в подсистеме при помощи свойства StreamingFactor. Эта опция также позволяет фильтру участвовать в другой оптимизации подсистемы. Смотрите раздел Streaming Оптимизации Подсистемы для Фильтров (HDL Coder). |
Конвейеризация | Чтобы улучшить тактовую частоту, используйте AddPipelineRegisters, чтобы использовать конвейерное дерево сумматора, а не линейный сумматор по умолчанию. Можно также задать количество настроек канала связи до и после множителей. Смотрите Архитектуры Фильтра HDL (HDL Coder). |
Свойства фильтра HDL | |
---|---|
AddPipelineRegisters | Вставьте конвейерный регистр между этапами расчета в фильтре. См. также AddPipelineRegisters (HDL Coder). |
ChannelSharing | Для многоканального фильтра сгенерируйте одну реализацию фильтра, которая будет совместно использована каналами. См. также ChannelSharing (HDL Coder). |
CoeffMultipliers | Задайте использование оптимизации канонической цифры со знаком (CSD), чтобы уменьшить область фильтра, заменив содействующие множители на логику shift-and-add. Когда вы выбираете полностью параллельную реализацию фильтра, можно установить CoeffMultipliers на |
DALUTPartition | Задайте распределенные арифметические разделы LUT частичного продукта как вектор из размеров каждого раздела. Сумма всех векторных элементов должна быть равна длине фильтра. Максимальный размер для раздела является 12 касаниями. Установите DALUTPartition на скалярное значение, равное длине фильтра генерировать код DA без разделов LUT. См. также DALUTPartition (HDL Coder). |
DARadix | Задайте, сколько распределенных арифметических битных сумм вычисляется параллельно. Основание DA 8 ( |
MultiplierInputPipeline | Задайте количество настроек канала связи, чтобы добавить во входных параметрах множителя фильтра. См. также MultiplierInputPipeline (HDL Coder). |
MultiplierOutputPipeline | Задайте количество настроек канала связи, чтобы добавить во множителе фильтра выходные параметры. См. также MultiplierOutputPipeline (HDL Coder). |
ReuseAccum | Включите или отключите повторное использование аккумулятора в последовательной реализации фильтра. Установите ReuseAccum на |
SerialPartition | Задайте разделы для частично последовательных или каскадно-последовательных реализаций фильтра как вектор из длин каждого раздела. Для полностью последовательной реализации, установленной этот параметр на длину фильтра. См. также SerialPartition (HDL Coder). |
Свойства блока HDL | |
---|---|
ConstrainedOutputPipeline | Количество регистров, чтобы поместить при выходных параметрах путем перемещения существующих задержек в рамках проекта. Распределенная конвейеризация не перераспределяет эти регистры. |
InputPipeline | Количество входных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
OutputPipeline | Количество выходных настроек канала связи, чтобы вставить в сгенерированный код. Распределенная конвейеризация и ограниченная выходная конвейеризация могут переместить эти регистры. |
Генерация HDL-кода не поддерживается для:
Входные данные без знака.
Ненулевые начальные состояния. Необходимо установить Initial states на 0
.
Filter Structure: Lattice MA
.
Опции CoeffMultipliers поддерживаются только при использовании полностью параллельной архитектуры. Когда вы выбираете последовательную архитектуру, CoeffMultipliers скрыт от диалогового окна HDL Block Properties.
Блок Discrete FIR Filter принимает и выходные параметры действительные и комплексные сигналы любого типа числовых данных, поддержанного Simulink. Блок поддерживает те же типы для коэффициентов.
Следующие схемы показывают структуру фильтра и типы данных, используемые в блоке Discrete FIR Filter для сигналов фиксированной точки.
Прямая форма
Вы не можете задать тип данных состояния на маске блока для этой структуры, потому что состояния ввода имеют совпадающие типы данных как вход.
Прямая симметричная форма
Вы не можете задать тип данных состояния на маске блока для этой структуры, потому что состояния ввода имеют совпадающие типы данных как вход.
Это принято, что коэффициенты фильтра симметричны. Блок только использует первую половину коэффициентов для фильтрации.
Прямая антисимметричная форма
Вы не можете задать тип данных состояния на маске блока для этой структуры, потому что состояния ввода имеют совпадающие типы данных как вход.
Это принято, что коэффициенты фильтра антисимметричны. Блок только использует первую половину коэффициентов для фильтрации.
Прямая транспонированная форма
Состояния являются комплексными, когда или входные параметры или коэффициенты являются комплексными.
Образуйте решетку MA
Discrete Filter | Digital Filter Design (DSP System Toolbox)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.