Документация Engee

Data Type Conversion

Изменение типа данных сигнала.

data type conversion

Описание

Блок Data Type Conversion преобразует входной сигнал любого типа данных, поддерживаемого Engee, в указанный тип данных.

Порты

Вход

Port_1 — входной сигнал
скаляр | вектор | матрица | массив

Входной сигнал в виде скаляра, вектора, матрицы или массива.

Входным сигналом может быть любой вещественный или комплексный сигнал. Если входной сигнал вещественный, то выходной сигнал вещественный. Если входной сигнал комплексный, то выходной сигнал комплексный. Блок преобразует входной сигнал к указанному в параметре Output data type типу данных.

При преобразовании типов данных с фиксированной точкой используйте параметр Input and output to have equal, чтобы задать метод преобразования Real World Value (RWV) или Stored Integer (SI).

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool, Fixed

Поддержка комплексных чисел: Да

Выход

Port_1 — выходной сигнал
скаляр | вектор | матрица | массив

Входной сигнал, преобразованный к заданному типу данных, с теми же размерами, что и входной сигнал.

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Fixed

Поддержка комплексных чисел: Да

Параметры

Input and output to have equal — ограничение для преобразования типов данных с фиксированной точкой
Real World Value (RWV) (по умолчанию) | Stored Integer (SI)

Укажите, какой тип входа и выхода должен быть в контексте представления данных с фиксированной точкой:

  • Real World Value (RWV) — преобразовать сигнал из одного типа данных в другой, пытаясь сохранить исходное значение входного сигнала. Блок учитывает ограничения, накладываемые масштабированием входного и выходного сигналов, и пытается сгенерировать выходной сигнал, равный исходному значению.

  • Stored Integer (SI) — изменить исходное значение входного сигнала, выполнив масштабирование сохраненного целочисленного значения. В пределах заданных типов данных блок пытается сохранить сохраненное целочисленное значение сигнала во время преобразования.

Программное использование

Параметр блока

ConvertRealWorld

Значение

Real World Value (RWV) | Stored Integer (SI)

По умолчанию

Real World Value (RWV)

Integer rounding mode — режим округления для операций с фиксированной точкой
Floor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Zero

Выберите режим округления для операций с фиксированной точкой. Вы можете выбрать:

  • Floor — округляет как положительные, так и отрицательные числа в меньшую сторону (в сторону отрицательной бесконечности).

  • Ceiling — округляет как положительные, так и отрицательные числа в большую сторону (в сторону положительной бесконечности).

  • Convergent — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется до ближайшего четного целого числа.

  • Nearest — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, число округляется в большую сторону (в сторону положительной бесконечности).

  • Round — округляет число до ближайшего представимого значения. В случае если дробная часть числа оканчивается на 5, положительные числа округляются в большую сторону (в сторону положительной бесконечности), а отрицательные – в меньшую (в сторону отрицательной бесконечности).

  • Zero — округляет число в сторону нуля.

Параметры блока всегда округляют до ближайшего представимого значения.

Программное использование

Параметр блока

RndMeth

Значения

Ceiling | Convergent | Floor | Nearest | Round | Zero

По умолчанию

Floor

Output data type — тип выходных данных
Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed

Укажите тип выходных данных.

Тип может быть указан напрямую или выражен как объект типа данных.

Программное использование

Параметр блока

OutDataTypeStr

Значение

Float16 | Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128 | Fixed

По умолчанию

Float64

Saturate on integer overflow — насыщение до целого при переполнении
выключено (по умолчанию) | включено

Флажок, при установке которого используется арифметика насыщения для целых чисел и чисел с фиксированной точкой: при переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Действие Обоснование Влияние на переполнение Пример

Флажок Saturate on integer overflow установлен (включен).

Для вашей модели возможно переполнение, и вы хотите, чтобы в сгенерированном коде была явная защита от переполнения.

При переполнении результат автоматически заменяется максимально возможным (по модулю) для типа данных значением.

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. При установленном флажке выходной сигнал блока насыщается до 127. Аналогично, выходной сигнал блока насыщается при минимальном выходном значении -128.

Флажок Saturate on integer overflow не установлен (выключен).

Вы хотите оптимизировать эффективность вашего сгенерированного кода.

Вы хотите избежать чрезмерного определения того, как блок обрабатывает сигналы, находящиеся вне диапазона.

Переполнения переносятся в соответствующее значение, которое может быть представлено типом данных.

Максимальное значение, которое может представлять тип данных Int8 (знаковое, 8-битное целое), равно 127.

Любой результат операции с блоком, превышающий это максимальное значение, приводит к переполнению 8-битного целого числа. Если флажок снят, программное обеспечение интерпретирует значение, вызывающее переполнение, как Int8, что может привести к непреднамеренному результату. Например, результат блока 130 (двоичный код 1000 0010), выраженный как Int8, равен -126.

Когда вы устанавливаете этот флажок, насыщение применяется ко всем внутренним операциям в блоке, а не только к входным/выходным данным или результату.

Программное использование

Параметр блока

SaturateOnIntegerOverflow

Значения

выключено | включено

По умолчанию

выключено

Дополнительные возможности

Генерация Си кода: Да