exponenta event banner

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

Что такое масштабированные двойники?

Масштабированные двойники - это гибрид между числами с плавающей и фиксированной точками. Программа Fixed-Point Designer™ сохраняет их как двойные с сохранением информации о масштабировании, знаке и длине слова. Например, контейнер хранения для типа данных с фиксированной точкой sfix16_En14 является int16. Контейнер хранения эквивалентного масштабированного типа данных удваивается, flts16_En14 является плавающей точкой double. Программа Fixed-Point Designer применяет информацию масштабирования к запомненной двойке с плавающей запятой для получения реального значения. Сохранение значения в двойном формате почти всегда устраняет проблемы переполнения и точности.

В чем разница между масштабированными двойными и двойными типами данных?

Контейнер хранения как для масштабированных двойных, так и для двойных типов данных является контейнером с плавающей запятой double. Поэтому оба типа данных переопределяют параметры, Double и Scaled double, обеспечивают преимущества диапазона и точности двойников с плавающей запятой. Масштабированные двойники сохраняют информацию об указанном типе данных и масштабировании, но двойники не сохраняют эту информацию. Поскольку масштабированные двойники сохраняют информацию об указанном масштабировании, их также можно использовать для обнаружения переполнения.

Рассмотрим пример, в котором требуется сохранить значение 0.75001 градусы Цельсия в типе данных sfix16_En13. Для этого типа данных:

  • Наклон S = 2 − 13.

  • Смещение B = 0.

Используя уравнение масштабирования V≈V~=SQ+B, где V - действительное значение, а Q - сохраненное целое значение:

  • B = 0.

  • V ~ = START= 2 − 13Q = 0,75001.

Поскольку контейнер хранения типа данных sfix16_En13 равно 16 битам, сохраненное целое число Q может быть представлено только как целое число в пределах этих 16 битов. Следовательно, идеальное значение Q квантуется до 6144, вызывая потерю точности.

При переопределении типа данных sfix16_En13 с Double, тип данных изменяется на Double и вы теряете информацию о масштабировании. Сохраненное значение равно реальному значению 0.75001.

При переопределении типа данных sfix16_En13 с Scaled Double, тип данных изменяется на flts16_En13. Масштабирование по-прежнему задается _En13 и идентичен типу исходных данных. Единственным отличием является контейнер хранения, используемый для хранения сохраненного значения, которое теперь double таким образом, сохраненное значение равно 6144.08192. Этот пример показывает одно преимущество использования масштабированных двойников: виртуальное устранение ошибок квантования.

Когда использовать масштабированные двойники

Инструмент Fixed-Point Tool позволяет выполнять различные переопределения типов данных для сигналов Fixed-Point в моделировании. Используйте масштабированные двойники для переопределения типов данных с фиксированной точкой и масштабирование с использованием чисел с двойной точностью, чтобы избежать эффектов квантования. Переопределение типов данных с фиксированной запятой обеспечивает эталонный тест с плавающей запятой, который представляет собой идеальный выход.

Масштабированные двойники полезны для:

  • Тестирование и отладка

  • Обнаружение переполнений

  • Применение переопределений типов данных к отдельным подсистемам

    Если переопределение типа данных применяется к подсистемам модели, а не ко всей модели, масштабированные двойные значения предоставляют информацию о том, что части модели с фиксированной точкой необходимы для согласованного распространения типа данных.

Связанные темы