Дискретное время, прямая форма я фильтрую
hd = dfilt.df1
hd = dfilt.df1
возвращает дискретное время по умолчанию, прямая форма I объектов фильтра, которые используют арифметику с двойной точностью. По умолчанию числитель и коэффициенты знаменателя b и установлены в 1. С этими коэффициентами фильтр передает вход выходу без изменений.
Сделайте этот фильтр фиксированной точкой или фильтром с одинарной точностью путем изменения значения Arithmetic
свойство для фильтра hd
можно следующим образом:
Чтобы превратиться в фильтрацию с одинарной точностью, войти
set(hd,'arithmetic','single');
Чтобы превратиться в фильтрацию фиксированной точки, войти
set(hd,'arithmetic','fixed');
Для получения дополнительной информации о свойстве Arithmetic
, обратитесь к Арифметике.
Примечание
a(1)
, ведущий коэффициент знаменателя, не может быть 0. Позволить вам изменять арифметические настройки к fixed
или single
, a(1)
должно быть равно 1.
Следующий рисунок показывает поток сигналов для прямой формы, которую я фильтрую реализованный dfilt.df1
. Чтобы помочь вам видеть, как фильтр обрабатывает коэффициенты, вход, выход, и состояния фильтра, а также числовые операции, фигура включает местоположения арифметики и элементов формата типа данных в потоке сигналов.
Чтобы помочь вам изучить, где и как фильтр выполняет вычисления с фиксированной точкой во время фильтрации, рисунок показывает различные метки, сопоставленные с элементами данных и функциональными элементами в фильтре. Следующая таблица описывает каждую метку в потоке сигналов и связывает метку со свойствами фильтра, которые сопоставлены с ним.
Метки используют распространенный формат — префикс, сопровождаемый словом “формат”. В этом использовании “формат” означает размер слова и дробную длину, сопоставленную с частью фильтра, упомянутой префиксом.
Например, метка InputFormat относится к размеру слова, и дробная длина раньше интерпретировала ввод данных к фильтру. Свойства формата InputWordLength
и InputFracLength
(как показано в таблице), хранят размер слова и дробную длину в битах. Или рассмотрите NumFormat, который обращается к слову и дробным длинам (CoeffWordLength
, NumFracLength
) сопоставленный с представлением коэффициентов числителя фильтра.
Метка потока сигналов | Соответствующее свойство размера слова | Соответствующее дробное свойство длины | Related Properties |
---|---|---|---|
DenAccumFormat |
|
|
|
DenFormat |
|
|
|
DenProdFormat |
|
|
|
'InputFormat' |
|
| 'none' |
NumAccumFormat |
|
|
|
NumFormat |
|
|
|
NumProdFormat |
|
|
|
'OutputFormat' |
|
|
|
Самый важный положение метки в схеме, которая идентифицирует, где формат применяется.
Как один пример, посмотрите на метку DenProdFormat, которая всегда следует за содействующим элементом умножения знаменателя в потоке сигналов. Метка указывает, что коэффициенты знаменателя оставляют элемент умножения с размером слова и дробной длиной сопоставленным с операциями продукта, которые включают коэффициенты знаменателя. От рассмотрения таблицы вы видите, что DenProdFormat обращается к свойствам ProdWordLength
, ProductMode
и DenProdFracLength
это полностью задает формат знаменателя после того, как умножат (или продукт) операции.
В этой таблице вы видите свойства, сопоставленные с df1 реализациями dfilt
объекты.
Примечание
Таблица приводит все свойства, которые может иметь фильтр. Многие свойства являются динамическими, означая, что они существуют только в ответ на настройки других свойств. Вы не можете видеть все перечисленные свойства все время. Чтобы просмотреть все свойства для фильтра в любое время, используйте get(hd)
где hd
фильтр.
Для получения дополнительной информации о свойствах этого фильтра или любого dfilt
возразите, обратитесь к Свойствам фильтра Фиксированной точки.
PropertyName | Краткое описание |
---|---|
| Определяет, как аккумулятор выходные параметры сохранил значения. Выберите из полной точности ( |
| Устанавливает размер слова, используемый, чтобы хранить данные в аккумуляторе/буфере. |
| Задает арифметику использование фильтра. Дает вам опции |
| Задает, бросить ли числовые данные к соответствующему формату аккумулятора (как показано в схемах потока сигналов) прежде, чем выполнить операции суммы. |
| Задает, выбирает ли фильтр автоматически длину правильной дроби, чтобы представлять коэффициенты фильтра без переполнения. Выключение этого путем устанавливания значения к |
| Задает размер слова, чтобы применяться к коэффициентам фильтра. |
| Задает дробную длину использование алгоритма фильтра, чтобы интерпретировать результаты операций продукта включающие коэффициенты знаменателя. Можно изменить значение для этого свойства, когда вы устанавливаете |
| Установите дробную длину использование фильтра интерпретировать коэффициенты знаменателя. |
| Хранит коэффициенты знаменателя для БИХ-фильтра. |
| Задает, как алгоритм фильтра интерпретирует результаты операций продукта включающие коэффициенты знаменателя. Можно изменить это значение свойства, когда вы устанавливаете |
| Описывает поток сигналов для объекта фильтра, включая все активные элементы, которые выполняют операции во время фильтрации — усиления, задержки, суммы, продукты и ввод/вывод. |
| Задает дробную длину использование фильтра, чтобы интерпретировать входные данные. |
| Задает размер слова, примененный, чтобы интерпретировать входные данные. |
| Задает, как алгоритм фильтра интерпретирует результаты операций сложения включающие коэффициенты числителя. Можно изменить значение этого свойства после того, как вы установите |
| Содержит содействующие значения числителя для фильтра. |
| Устанавливает дробную длину, используемую, чтобы интерпретировать значение коэффициентов числителя. |
| Задает, как алгоритм фильтра интерпретирует результаты операций продукта включающие коэффициенты числителя. Доступный, чтобы быть измененным, когда вы устанавливаете |
| Определяет, как фильтр интерпретирует выходные данные фильтра. Можно изменить значение |
| Определяет размер слова, используемый для выходных данных. |
| Устанавливает режим, используемый, чтобы ответить на условия переполнения в вычислениях с фиксированной точкой. Выберите из любого |
| Определяет, как фильтр обрабатывает выход операций продукта. Выберите из полной точности ( |
| Задает размер слова, чтобы использовать для результатов операции умножения. Это свойство становится перезаписываемым (можно изменить значение), когда вы устанавливаете |
| Задает, сбросить ли состояния фильтра и память перед каждой операцией фильтрации. Позволяет вам решить, сохраняет ли ваш фильтр состояния от предыдущих запусков фильтрации. |
| Устанавливает режим использование фильтра квантовать числовые значения, когда значения находятся между представимыми значениями для формата данных (слово и дробные длины).
Выбор, который вы делаете, влияет только на аккумулятор и выходную арифметику. Коэффициент и входная арифметика всегда вокруг. Наконец, продукты никогда не переполняются — они обеспечивают полную точность. |
| Задает ли использование фильтра подписанные или коэффициенты фиксированной точки без знака. Только коэффициенты отражают эту установку свойства. |
| Это свойство содержит состояния фильтра прежде, во время, и после работы фильтра. Состояния действуют как память фильтра между фильтрацией запусков или сеансов. Состояния используют |
Задайте прямую форму второго порядка, которую я структурирую для dfilt
объект, hd
, со следующим кодом:
b = [0.3 0.6 0.3]; a = [1 0 0.2]; hd = dfilt.df1(b,a); % Convert hd to fixed-point filter set(hd,'arithmetic','fixed')
dfilt
| dfilt.df1t
| dfilt.df2
| dfilt.df2t