Фильтры FIR модели
Симулинк/дискретный
Кодер HDL/дискретный
Кодер HDL/Операции с плавающей точкой HDL
Блок дискретного КИХ-фильтра независимо фильтрует каждый канал входного сигнала указанным цифровым КИХ-фильтром. Блок может реализовывать статические фильтры с фиксированными коэффициентами и изменяющиеся во времени фильтры с коэффициентами, которые меняются во времени. Во время моделирования можно настроить коэффициенты статического фильтра.
Этот блок фильтрует каждый канал входного сигнала независимо во времени. Параметр Input processing позволяет указать, обрабатывает ли блок каждый элемент ввода как независимый канал (обработка на основе выборки), или каждый столбец ввода как независимый канал (обработка на основе кадра). Для выполнения обработки кадров необходимо иметь лицензию DSP System Toolbox™.
Выходные размеры равны входным размерам, за исключением тех случаев, когда для параметра «Коэффициенты» задана матрица отводов фильтра. При этом выходные размеры зависят от количества указанных наборов отводов фильтра.
Этот блок поддерживает пользовательские атрибуты состояния для более эффективной настройки и создания кода. Пример см. в разделе Атрибуты пользовательского состояния в блоке дискретного фильтра FIR. При определенных условиях блок также поддерживает генерацию кода SIMD. Дополнительные сведения см. в разделе Создание кода.
Выходы этого блока численно совпадают с выходами блока DSP System Toolbox Digital Filter Design (DSP System Toolbox).
Этот блок поддерживает функцию регистрации состояния Simulink ®. Дополнительные сведения см. в разделе Состояние.
Можно изменить структуру фильтра, реализованную с помощью блока Дискретный фильтр FIR (Discreter FIR Filter), выбрав одно из следующих значений в параметре Структура фильтра (Filter structure).
Direct form
Direct form symmetric
Direct form antisymmetric
Direct form transposed
Lattice MA
Для запуска модели с любой из этих структур фильтров, отличных от Direct form.
Блок дискретного КИХ-фильтра по умолчанию инициализирует состояние внутреннего фильтра как нулевое, что имеет тот же эффект, что и предположение, что прошлые входы и выходы равны нулю. Можно дополнительно использовать параметр Начальные состояния (Initial states), чтобы задать ненулевые начальные условия для задержек фильтра.
Чтобы определить необходимое количество начальных состояний и способ их определения, см. таблицу допустимых начальных состояний. Параметр Initial states может принимать одну из форм, описанных в следующей таблице.
Действительные начальные состояния
| Исходное условие | Описание |
|---|---|
|
Скаляр |
Блок инициализирует все элементы задержки в фильтре до скалярного значения. |
|
Вектор или матрица |
Каждый вектор или элемент матрицы определяет уникальное начальное условие для соответствующего элемента задержки в соответствующем канале:
|
In - Входной сигналВходной сигнал для фильтрации, заданный как скаляр, вектор или матрица.
Если для параметра «Источник коэффициентов» задано значение Dialog parametersпорт для входного сигнала не помечен. Если для параметра «Источник коэффициентов» задано значение Input portпорт для входного сигнала имеет обозначение In.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
Num - Коэффициенты фильтраЗадайте коэффициенты фильтра как скаляр, вектор или матрицу. При указании вектора строки отводов фильтра блок применяет к входу один фильтр. Чтобы применить несколько фильтров к одному входу, укажите матрицу коэффициентов, где каждая строка представляет различный набор отводов фильтра.
Чтобы включить этот порт, установите для параметра Coefficient source значение Input port.
Для реализации нескольких фильтров структура фильтра должна быть 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 для запуска модели с блоком дискретного FIR-фильтра, который реализует любую структуру фильтра, отличную от Direct form.
Параметр блока:
FilterStructure |
| Текст: символьный вектор |
Значения:
'Direct form' | 'Direct form symmetric' | 'Direct form antisymmetric' | 'Direct form transposed' | 'Lattice MA' |
По умолчанию:
'Direct form'
|
Coefficients - Коэффициенты фильтра[0.5 0.5] (по умолчанию) | вектор | матрицаУкажите вектор коэффициентов для передаточной функции. Коэффициенты фильтра должны быть указаны как вектор строки. При указании вектора строки отводов фильтра блок применяет к входу один фильтр. Чтобы применить несколько фильтров к одному входу, укажите матрицу коэффициентов, где каждая строка представляет различный набор отводов фильтра.
Чтобы включить этот параметр, установите для параметра Coefficient source значение Dialog parameters.
Для реализации нескольких фильтров структура фильтра должна быть 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).
Параметр блока:
InputProcessing
|
| Текст: символьный вектор |
Значения:
'Columns as channels (frame based)' | 'Elements as channels (sample based)' |
По умолчанию:
'Elements as channels (sample based)'
|
Initial states - Исходные условия состояния фильтра0 (по умолчанию) | скаляр | вектор | матрицаУкажите начальные условия состояний фильтра. Сведения о задании начальных состояний см. в разделе Указание начальных состояний.
Параметр блока:
InitialStates
|
| Текст: символьный вектор |
| Значения: скаляр | вектор | матрица |
По умолчанию:
'0' |
Show enable port - Создать разрешающий портoff (по умолчанию) | onВыберите для управления выполнением этого блока с помощью порта enable. Блок считается включенным, когда вход в этот порт ненулевой, и деактивизированным, когда вход 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 (по умолчанию) | скаляр | векторУкажите интервал времени между выборками. Чтобы наследовать время выборки, задайте для этого параметра значение -1. Дополнительные сведения см. в разделе Указание времени образца.
Параметр блока:
SampleTime |
| Текст: символьный вектор |
| Значения: скаляр | вектор |
По умолчанию:
'-1' |
Tap sum - Выберите тип данных sumInherit: 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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Этот параметр отображается только в том случае, если для структуры фильтра задано значение 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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока:
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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока:
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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока:
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)
Чтобы включить этот параметр, установите для структуры фильтра значение 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)
Нажмите кнопку Показать помощник по типам данных
, чтобы отобразить помощник по типам данных, который помогает задать атрибуты типов данных. Дополнительные сведения см. в разделе Определение типов данных с помощью помощника по типам данных.
Параметр блока:
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.
Simulink использует минимум для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Минимальный выходной сигнал не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMin |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Output maximum - Максимальное выходное значение для проверки дальности[] (по умолчанию) | скалярВерхнее значение диапазона вывода, которое проверяет Simulink.
Simulink использует максимальное значение для выполнения:
Проверка диапазона параметров (см. раздел Задание минимальных и максимальных значений для параметров блока) для некоторых блоков.
Проверка диапазона моделирования (см. раздел Определение диапазонов сигналов и Включение проверки диапазона моделирования).
Автоматическое масштабирование типов данных с фиксированной точкой.
Оптимизация кода, создаваемого на основе модели. Эта оптимизация может удалить алгоритмический код и повлиять на результаты некоторых режимов моделирования, таких как SIL или внешний режим. Дополнительные сведения см. в разделе Оптимизация с использованием указанных минимального и максимального значений (встроенный кодер).
Примечание
Выходной максимум не насыщает и не отсекает фактический выходной сигнал. Вместо этого используйте блок «Насыщенность».
Параметр блока: OutMax |
| Текст: символьный вектор |
Значения: '[ ]'| скаляр |
По умолчанию: '[ ]' |
Lock data type settings against changes by the fixed-point tools - Предотвращение переопределения типов данных инструментами с фиксированной точкойoff (по умолчанию) | onВыберите этот параметр, чтобы заблокировать параметры типа данных этого блока от изменений с помощью инструмента «Фиксированная точка» и помощника по фиксированным точкам. Дополнительные сведения см. в разделе Блокировка параметров типа выходных данных (конструктор фиксированных точек).
Параметр блока:
LockScale |
Значения:
'off' | 'on' |
По умолчанию:
'off' |
Integer rounding mode - Режим округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroУкажите режим округления для операций с фиксированной точкой. Дополнительные сведения см. в разделе Округление (конструктор фиксированных точек).
Параметр блока:
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). Пример см. в разделе Атрибуты пользовательского состояния в блоке дискретного фильтра FIR.
Блок дискретного фильтра FIR поддерживает создание кода SIMD с использованием технологии Intel AVX2 в следующих условиях:
Для структуры фильтра установлено значение Direct form или Direct form transposed.
Для обработки ввода установлено значение Columns as channels (frame based).
Входной сигнал является действительным с действительными коэффициентами фильтра.
Входной сигнал является комплекснозначным с вещественными или комплексными коэффициентами фильтра.
Входной сигнал имеет тип данных single или double.
Технология SIMD значительно повышает производительность генерируемого кода.
HDL Coder™ предоставляет дополнительные опции конфигурации, которые влияют на реализацию HDL и синтезированную логику.
Для удобных для аппаратного обеспечения действительных управляющих сигналов и сигналов сброса, а также для моделирования точного поведения аппаратных задержек в Simulink, используйте блок Discrete FIR Filter HDL Optimized (DSP System Toolbox).
Для уменьшения площади или увеличения скорости блок дискретного КИХ-фильтра поддерживает либо оптимизацию на уровне блоков, либо оптимизацию на уровне подсистем. Дополнительные сведения о доступных параметрах оптимизации на уровне блоков см. в разделе Оптимизации блоков. При включении оптимизации блоков блок не может участвовать в оптимизации подсистем. Используйте блочные оптимизации, если проект является одноканальным фильтром. Используйте оптимизации подсистем для совместного использования ресурсов в нескольких каналах или нескольких фильтрах. Чтобы блок участвовал в оптимизации на уровне подсистемы, установите для параметра Architecture значение Fully parallel. См. раздел Оптимизация подсистемы для фильтров (кодер HDL).
Кодер HDL поддерживает использование векторных входов в блоки дискретного КИХ-фильтра, где каждый элемент вектора представляет независимый канал.
Подключите векторный сигнал к входному порту блока дискретного КИХ-фильтра.
Укажите обработку ввода как Elements as channels (sample based).
Чтобы уменьшить площадь за счет совместного использования ядра фильтра между каналами, задайте для свойства StartSharing значение количества каналов.
Кодер HDL поддерживает программируемые фильтры для дискретных блоков фильтров FIR.
В маске блока фильтра установите для параметра «Источник коэффициентов» значение «Входной порт».
Подключите векторный сигнал к Num порт коэффициента.
Программируемые фильтры не поддерживаются для:
распределенная арифметика (DA)
CoeffMultipliers имеет значение csd или factored-csd
Кодер HDL поддерживает использование векторных входов в блоки дискретного КИХ-фильтра, где каждый элемент вектора представляет выборку во времени. Можно использовать входной вектор длиной до 512 выборок. Реализация на основе фреймов поддерживает типы входных и выходных данных с фиксированной точкой и использует внутренние типы данных с полной точностью. Можно использовать вещественные входные сигналы с вещественными коэффициентами, комплексные входные сигналы с вещественными коэффициентами или реальные входные сигналы с комплексными коэффициентами. Можно также использовать покадровый ввод с программируемыми коэффициентами.
Подключите векторный сигнал к входному порту блока дискретного КИХ-фильтра.
Укажите обработку ввода как Columns as channels (frame based)и задайте для структуры фильтра значение Direct form.
Щелкните правой кнопкой мыши блок и откройте меню «Код HDL» > «Свойства блока HDL». Задайте для архитектуры значение Frame Based. Блок реализует параллельную архитектуру HDL прямого вида. Другие архитектуры, включая полностью или частично последовательные, не поддерживаются. См. Архитектура на основе кадров (кодер HDL).
Фильтры ввода на основе кадров не поддерживаются для:
Опциональный сброс на уровне блока и включение управляющих сигналов
Переустановка и включение подсистем
Комплексные входные сигналы с комплексными коэффициентами. Можно использовать либо комплексные входные сигналы и вещественные коэффициенты, либо комплексные коэффициенты и вещественные входные сигналы.
Многоканальный вход
Оптимизация совместного использования и потоковой передачи
распределенная арифметика (DA)
Можно создать код HDL для фильтров с опциональным портом включения или без него, а также с опциональным портом сброса или без него.
При использовании входных данных, не основанных на кадрах, можно использовать любую комбинацию комплексных входных и комплексных коэффициентов с полностью параллельными структурами фильтров.
Сложные коэффициенты не поддерживаются архитектурами последовательного фильтра.
При использовании входных данных на основе кадра можно использовать либо комплексные входные сигналы и реальные коэффициенты, либо комплексные коэффициенты и реальные входные сигналы.
Нельзя использовать распределенную арифметику (DA) или CoeffMultipliers со значением csd или factored-csd со сложными коэффициентами.
| Оптимизация площади и скорости | |
|---|---|
| Последовательная архитектура | Чтобы использовать оптимизации на уровне блоков для сокращения аппаратных ресурсов, установите для Architecture один из последовательных вариантов. См. Архитектуры фильтров HDL (кодер HDL). Если для блока дискретного КИХ-фильтра заданы параметры SerivePartition и ReuseAccum, задайте для параметра «Структура фильтра» значение |
| Распределенная арифметика | Чтобы минимизировать множители путем замены их на LUT и регистры сдвига, используйте реализацию фильтра распределенной арифметики (DA). См. раздел Распределенная арифметика для фильтров HDL (кодер HDL). При выборе |
| Многоканальное уменьшение площади | Чтобы совместно использовать логику фильтра между каналами, задайте для свойства StartSharing число каналов. При использовании StartSharing фильтр исключается из других оптимизаций. С помощью свойства StreamingFactor можно достичь одинакового разделения логики между всеми подходящими логиками в подсистеме. Этот параметр также позволяет фильтру участвовать в оптимизации других подсистем. См. раздел Потоковая передача в разделе Оптимизация подсистемы для фильтров (кодер HDL). |
| Конвейерная обработка | Для повышения тактовой частоты используйте функцию AddPipelineRegists, чтобы использовать конвейерное дерево сумматоров, а не линейный сумматор по умолчанию. Можно также указать количество ступеней трубопровода до и после множителей. См. Архитектуры фильтров HDL (кодер HDL). |
| Свойства фильтра HDL | |
|---|---|
| AddPipelineRegisters | Вставка регистра трубопровода между этапами вычислений в фильтр. См. также AddPipelineRegists (кодер HDL). |
| ChannelSharing | Для многоканального фильтра создайте одну реализацию фильтра, которая будет совместно использоваться каналами. См. Также Программный общий доступ (кодер HDL). |
| CoeffMultipliers | Укажите использование оптимизации канонических цифр со знаком (CSD) для уменьшения площади фильтра путем замены множителей коэффициентов логикой сдвига и добавления. При выборе полностью параллельной реализации фильтра можно установить CoeffMultipliers в значение |
| DALUTPartition | Укажите распределенные арифметические частичные секции LUT как вектор размеров каждой секции. Сумма всех векторных элементов должна быть равна длине фильтра. Максимальный размер раздела - 12 отводов. Установите значение DALUTPpartition в скалярное значение, равное длине фильтра, чтобы создать код DA без разделов LUT. См. также DALUTPstittion (кодер HDL). |
| DARadix | Укажите, сколько распределенных арифметических сумм битов вычисляется параллельно. A DA радиус 8 ( |
| MultiplierInputPipeline | Укажите количество ступеней трубопровода, добавляемых на входах умножителя фильтра. См. также Мультипликатор InputPipeline (кодер HDL). |
| MultiplierOutputPipeline | Укажите количество ступеней трубопровода, добавляемых на выходе умножителя фильтра. См. также Мультипликационный выходной конвейер (кодер HDL). |
| ReuseAccum | Включение или отключение повторного использования накопителя в реализации последовательного фильтра. Задать для параметра ReuseAccum значение |
| SerialPartition | Укажите разделы для реализаций частично последовательного или каскадно-последовательного фильтра как вектор длин каждого раздела. Для полной последовательной реализации задайте для этого параметра длину фильтра. См. также раздел SerurePartition (кодер HDL). |
| Свойства блока HDL | |
|---|---|
| ConstrainedOutputPipeline | Количество регистров для размещения на выходах путем перемещения существующих задержек в рамках проекта. Распределенная конвейерная обработка не перераспределяет эти регистры. Значение по умолчанию: |
| InputPipeline | Количество входных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
| OutputPipeline | Количество выходных ступеней трубопровода для вставки в сформированный код. Распределенная конвейерная обработка и конвейерная обработка с ограниченным выходом могут перемещать эти регистры. Значение по умолчанию: |
Создание кода HDL не поддерживается для:
Неподписанные входные данные.
Ненулевые начальные состояния. Необходимо задать начальные состояния как 0.
Структура фильтра: Lattice MA.
Параметры CoeffMultipliers поддерживаются только при использовании полностью параллельной архитектуры. При выборе последовательной архитектуры CoeffMultipliers скрывается в диалоговом окне «Свойства блока HDL».
Блок дискретного КИХ-фильтра принимает и выводит реальные и сложные сигналы любого числового типа данных, поддерживаемого Simulink. Блок поддерживает те же типы коэффициентов.
На следующих диаграммах показана структура фильтра и типы данных, используемые в блоке дискретного КИХ-фильтра для сигналов с фиксированной точкой.
Прямая форма
Невозможно указать тип данных состояния в маске блока для этой структуры, поскольку входные состояния имеют те же типы данных, что и входные.


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



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



Прямая транспонированная форма
Состояния сложны, когда входы или коэффициенты сложны.


Решетка MA


Дискретный фильтр | Проектирование цифрового фильтра (панель инструментов системы DSP)
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.




