Данные с фиксированной точкой в MATLAB и Simulink

Данные с фиксированной точкой в Simulink

Вы можете использовать fixdt функция в Simulink® для задания типа данных с фиксированной точкой. fixdt функция создает Simulink.NumericType объект.

Тип данных с фиксированной точкой и масштабирование обозначения

Имена типов данных Simulink должны быть допустимыми MATLAB® идентификаторы длиной менее 128 символов. Имя типа данных предоставляет информацию о типе контейнера, кодировании номеров и масштабировании.

Следующая таблица предоставляет ключ для различных символов, которые появляются в продуктах Simulink, чтобы указать тип данных и масштабирование значения с фиксированной точкой.

Символ

Описание

Пример

Тип контейнера

ufix

Неподписанный тип данных с фиксированной точкой

ufix8 является 8-битным беззнаковым типом данных с фиксированной точкой

sfix

Тип данных с фиксированной точкой со знаком

sfix128 является 128-битным типом данных с фиксированной точкой со знаком

fltu

Масштабированное двойное переопределение неподписанного типа данных с фиксированной точкой (ufix)

fltu32 является масштабированным двойным переопределением ufix32

flts

Масштабированное двойное переопределение типа данных с фиксированной точкой со знаком (sfix)

flts64 является масштабированным двойным переопределением sfix64

Кодирование чисел

e

10^

125e8 равен 125*(10^(8))

n

Отрицательный

n31 равен -31

p

Десятичная точка

1p5 равен 1.5

p2 равен 0.2

Масштабирование кодирования

S

Наклон

ufix16_S5_B7 является 16-битным беззнаковым типом данных с фиксированной точкой с Slope от 5 и Bias от 7

B

Уклон

ufix16_S5_B7 является 16-битным беззнаковым типом данных с фиксированной точкой с Slope от 5 и Bias от 7

E

Фиксированная экспонента (2 ^)

Отрицательная фиксированная экспонента описывает длину дроби

sfix32_En31 - 32-битный тип данных с фиксированной точкой со знаком с долей 31

F

Коэффициент корректировки уклона

ufix16_F1p5_En50 является 16-битным беззнаковым типом данных с фиксированной точкой со SlopeAdjustmentFactor от 1.5 и a FixedExponent от -50

C, c, D или d

Сжатая кодировка для смещения

Примечание

Если вы передаете этот вектор символов в slDataTypeAndScale функция возвращает допустимое fixdt тип данных.

Нет доступного примера. Только для обратной совместимости.

Идентификация и замена вызовов на slDataTypeAndScale, используйте проверку на наличие вызовов slDataTypeAndScale Model Advisor.

T или t

Сжатая кодировка для наклона

Примечание

Если вы передаете этот вектор символов в slDataTypeAndScaleвозвращает допустимое fixdt тип данных.

Нет доступного примера. Только для обратной совместимости.

Идентификация и замена вызовов на slDataTypeAndScale, используйте проверку на наличие вызовов slDataTypeAndScale Model Advisor.

Данные с фиксированной точкой в MATLAB

Чтобы назначить тип данных с фиксированной точкой числу или переменной в 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 применяет информацию масштабирования к сохраненному двойному значению с плавающей точкой для получения реального значения. Хранение значения в двойке почти всегда устраняет проблемы переполнения и точности.

См. также

Функции