Моделируйте фильтры Allpole
Реализация фильтрации/фильтрации
dsparch4
Блок Allpole Filter независимо фильтрует каждый канал входного сигнала с заданным фильтром allpole. Блок может реализовать статические фильтры с фиксированными коэффициентами, а также изменяющиеся во времени фильтры с коэффициентами, которые изменяются с течением времени. Можно настроить коэффициенты статического фильтра во время симуляции.
Этот блок фильтрует каждый канал входного сигнала независимо с течением времени. Параметр Input processing позволяет вам задать, обрабатывает ли блок каждый элемент входа как независимый канал (обработка на основе выборки) или каждый столбец входа как независимый канал (обработка на основе фрейма).
Этот блок поддерживает Simulink® функция логгирования состояний. Для получения дополнительной информации см. раздел Состояние (Simulink) в Руководстве пользователя Simulink.
Можно изменить структуру фильтра, реализованную с помощью блока Allpole Filter, выбрав один из следующих параметров из Filter structure:
Direct form
Direct form transposed
Lattice AR
Блок Allpole Filter инициализирует внутренний фильтр состояний нулю по умолчанию, что имеет тот же эффект, что и предположение, что прошедшие входы и выходы равны нулю. Можно опционально использовать параметр Initial states, чтобы задать ненулевые начальные условия для задержек фильтра.
Чтобы определить количество начальных состояний, которые вы должны задать и как их задать, смотрите таблицу допустимых начальных состояний. Параметр Initial states может взять одну из форм, описанных в следующей таблице.
Допустимые начальные состояния
Начальное условие | Описание |
---|---|
Скаляр | Блок инициализирует все элементы задержки в фильтре до скалярного значения. |
Вектор или матрица | Каждый вектор или элемент матрицы задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале:
|
Блок Allpole Filter принимает и выводит реальные и сложные сигналы любого типа числовых данных, поддерживаемого Simulink. Блок поддерживает те же типы для коэффициентов.
Следующие схемы показывают структуру фильтра и типы данных, используемые в блоке Allpole Filter для сигналов с фиксированной точкой.
Вы не можете задать тип данных состояния в маске блока для этой структуры, потому что выходные состояния имеют совпадающие типы данных, что и выходы.
Состояния комплексны, когда входы или коэффициенты комплексны.
Панель Main диалогового окна блока Allpole Filter появляется следующим образом.
Выберите, нужно ли задавать коэффициенты фильтра в маске блока или через вход порт.
Выберите структуру фильтра, которую требуется реализовать блоку. Можно выбрать Direct form
, Direct form transposed
, или Lattice AR
.
Задайте вектор-строку коэффициентов передаточной функции фильтра.
Этот параметр видим только, когда вы устанавливаете Coefficient source на Dialog parameters
.
Укажите, выполняет ли блок обработку на основе выборок или фреймов. Можно выбрать один из следующих опций:
Elements as channels (sample based)
- Обрабатывайте каждый элемент входа как независимый канал (основанная на выборке обработка).
Columns as channels (frame based)
- Обрабатывайте каждый столбец входа как отдельный канал (обработка на основе фрейма).
Задайте начальные условия состояния фильтра. Чтобы узнать, как задать начальные состояния, смотрите Определение начальных состояний.
Панель Data Types диалогового окна блока Allpole Filter появляется следующим образом.
Задайте тип данных коэффициента. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same word length as input
Встроенное целое число, например int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Coefficient.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте минимальное значение, которое должен иметь коэффициент фильтра. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков (Simulink)»)
Автоматическое масштабирование типов данных с фиксированной точкой
Задайте максимальное значение, которое должен иметь коэффициент фильтра. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений параметров (см. «Задание минимальных и максимальных значений для параметров блоков (Simulink)»)
Автоматическое масштабирование типов данных с фиксированной точкой
Укажите тип выходных данных продукта. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Inherit via internal rule
. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.
Встроенный тип данных, например int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Product output.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип данных аккумулятора. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Inherit via internal rule
. Дополнительные сведения об этом правиле см. в разделе Наследование через внутреннее правило.
Встроенный тип данных, например int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Accumulator.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Укажите тип данных о состоянии. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as accumulator
Встроенное целое число, например int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Этот параметр видим только, когда выбранная структура фильтра Lattice MA
.
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр State.
Дополнительные сведения см. в разделе «Установка типов данных с использованием помощника по типам данных» (Simulink).
Задайте тип выходных данных. Вы можете установить его на:
Правило, которое наследует тип данных, например Inherit: Same as accumulator
Встроенный тип данных, например int8
Объект типа данных, например, Simulink.NumericType
объект
Выражение, которое вычисляется как тип данных, например fixdt(1,16,0)
Нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant, которая помогает вам задать параметр Output.
Смотрите Типы Данных Управляющего Сигнала (Simulink) для получения дополнительной информации.
Задайте минимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Задайте максимальное значение, которое должен выдать блок. Значение по умолчанию []
(не определено). Программное обеспечение Simulink использует это значение для выполнения:
Проверка области значений симуляции (см. «Задание диапазонов сигнала» (Simulink))
Автоматическое масштабирование типов данных с фиксированной точкой
Выберите этот параметр, чтобы инструменты с фиксированной точкой не переопределяли типы данных, заданные в маске блока.
Задайте режим округления для операций с фиксированной точкой.
Действие | Причины для принятия этого действия | Что происходит для переполнений | Пример |
---|---|---|---|
Установите этот флажок. | Ваша модель имеет возможное переполнение, и вы хотите явную защиту от насыщения в сгенерированном коде. | Переполнения достигает минимального или максимального значения, которое может представлять тип данных. | Переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127. |
Не устанавливайте этот флажок. | Вы хотите оптимизировать эффективность вашего сгенерированного кода. Вы хотите избежать переопределения того, как блок обрабатывает сигналы вне области допустимого. Для получения дополнительной информации смотрите Поиск и устранение ошибок диапазона сигнала (Simulink). | Переполнения переходят к соответствующему значению, которое представимо типом данных. | Число 130 не помещается в знаковое 8-битное целое число и оборачивается к -126. |
Когда вы устанавливаете этот флажок, насыщение применяется к каждой внутренней операции на блоке, а не только к выходу или результату. В целом процесс генерации кода может обнаружить, когда переполнение невозможно. В этом случае генератор кода не производит код насыщения.
Плавающая точка двойной точности
Плавающая точка с одной точностью
Подписанная фиксированная точка
8-, 16- и 32-битные целые числа со знаком
Discrete FIR Filter (Simulink) | DSP System Toolbox |
Filter Realization Wizard | DSP System Toolbox |
filterDesigner | DSP System Toolbox |
fvtool | Signal Processing Toolbox |