Вы можете использовать fixdt
функция в Simulink® для задания типа данных с фиксированной точкой. fixdt
функция создает Simulink.NumericType
объект.
Имена типов данных Simulink должны быть допустимыми MATLAB® идентификаторы длиной менее 128 символов. Имя типа данных предоставляет информацию о типе контейнера, кодировании номеров и масштабировании.
Следующая таблица предоставляет ключ для различных символов, которые появляются в продуктах Simulink, чтобы указать тип данных и масштабирование значения с фиксированной точкой.
Символ | Описание | Пример |
---|---|---|
Тип контейнера | ||
| Неподписанный тип данных с фиксированной точкой |
|
| Тип данных с фиксированной точкой со знаком |
|
| Масштабированное двойное переопределение неподписанного типа данных с фиксированной точкой ( |
|
| Масштабированное двойное переопределение типа данных с фиксированной точкой со знаком ( |
|
Кодирование чисел | ||
| 10^ |
|
| Отрицательный |
|
| Десятичная точка |
|
Масштабирование кодирования | ||
| Наклон |
|
| Уклон |
|
| Фиксированная экспонента (2 ^) Отрицательная фиксированная экспонента описывает длину дроби |
|
| Коэффициент корректировки уклона |
|
C, c, D или d | Сжатая кодировка для смещения Примечание Если вы передаете этот вектор символов в | Нет доступного примера. Только для обратной совместимости. Идентификация и замена вызовов на |
T или t | Сжатая кодировка для наклона Примечание Если вы передаете этот вектор символов в | Нет доступного примера. Только для обратной совместимости. Идентификация и замена вызовов на |
Чтобы назначить тип данных с фиксированной точкой числу или переменной в MATLAB, используйте fi
конструктор (Fixed-Point Designer). Получившееся значение с фиксированной точкой называется a fi
объект. Для примера следующее создает fi
объекты a и b с атрибутами, показанными на отображении, все из которых мы можем задать, когда будут созданы переменные. Обратите внимание, что когда FractionLength
свойство не задано, оно автоматически устанавливается на «лучшую точность» для заданного размера слова, сохраняя наиболее значимые биты значения. Когда WordLength
свойство не задано, оно по умолчанию равняется 16 битам.
a = fi(pi)
a = 3.1416015625 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
b = fi(0.1)
b = 0.0999984741210938 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 18
Используйте блок From Workspace, чтобы считать данные с фиксированной точкой из рабочего пространства MATLAB в модель Simulink. Для этого данные должны быть в формате структуры с fi
объект в values
поле. В формате массива блок From Workspace принимает только действительные, с двойной точностью данные.
Можно записать выход с фиксированной точкой из модели в рабочее пространство MATLAB через блок To Workspace в формате массива или структуры. Данные с фиксированной точкой, записанные блоком To Workspace в рабочую область в формате структуры, могут быть считаны в модель Simulink в формате структуры блоком From Workspace.
Масштабированные двойки являются гибридом между числами с плавающей точкой и с фиксированной точкой. Fixed-Point Designer™ сохраняет их как двойные с сохраненной информацией о масштабировании, знаке и размере слова. Например, контейнер хранения для типа данных с фиксированной точкой sfix16_En14
является int16
. Контейнер хранения с эквивалентным масштабом удваивает тип данных, flts16_En14
- с плавающей точкой double
. Fixed-Point Designer применяет информацию масштабирования к сохраненному двойному значению с плавающей точкой для получения реального значения. Хранение значения в двойке почти всегда устраняет проблемы переполнения и точности.
fixdt
| Simulink.NumericType
| fi
(Fixed-Point Designer) | fimath
(Fixed-Point Designer)