Область значений и точность

Область значений чисел задаёт пределы представления, в то время как точность задает расстояние между последовательными числами в представлении. Области значений и точность числа с фиксированной точкой зависят от длины слова и масштабирования.

Примечание

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

Область значений

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

Область значений представимых чисел для дополнительного числа размера слова с фиксированной точкой wl, масштабирование S и смещение B иллюстрируется ниже, где значения wl, S, и B допускает как отрицательные, так и положительные числа.

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

Например, в дополнении двух отрицательные числа должны быть представлены, а также нули, поэтому максимальное значение равно 2wl -1 – 1. Поскольку существует только одно представление для нуля, существует неравное число положительных и отрицательных чисел. Это означает, что существует представление для 2wl1 но не для 2wl1:

Ограничения на область значений

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

В двоичной арифметике процессору может потребоваться взять n-битный номер с фиксированной точкой и хранить его в m битах, где mn. Если m < n, область значений числа был уменьшен, и операция может привести к условию. Некоторые процессоры идентифицируют это условие как Inf или NaN. Для других процессоров, особенно цифровых сигнальных процессоров (DSP), значение насыщается или оборачивается.

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

Когда вы создаете fi объект, любые переполнения насыщены. The OverflowAction свойство fimath по умолчанию saturate. Можно вести журнал переполнений и подтоков путем установки LoggingMode свойство fipref объект к on.

Если m > n, область значений числа был расширенная. Расширение области значений требует включения защитных бит, которые действуют, чтобы защитить от потенциального переполнения.

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

Точность

Точность числа с фиксированной точкой является различием между последовательными значениями, представимыми его типом данных и масштабированием. Значение наименее значимого бита, и, следовательно, точность числа, определяется количеством дробных бит. Значение с фиксированной точкой может быть представлено в пределах половины точности его типа данных и масштабирования.

Для примера представление с фиксированной точкой с четырьмя битами справа от двоичной точки имеет точность 2-4 или 0,0625, которое является значением его наименее значимого бита. Любое число в области значений этого типа данных и масштабирования может быть представлено в пределах (2-4)/2 или 0,03125, что вдвое меньше точности. Это пример представления числа с конечной точностью.

Ограничения на точность

Точность слова с фиксированной точкой зависит от размера слова и расположения двоичной точки. Например, предположим, что вы должны представлять реальное число 35.375 с номером с фиксированной точкой. Используя схему кодирования смещения наклона, представление является

VV˜=SQ+B=22Q+32,

где V = 35,375.

Двумя ближайшими приближениями к вещественному значению являются Q = 13 и Q = 14:

V˜=22(13)+32=35.25,V˜=22(14)+32=35.50.

В любом случае абсолютная ошибка одинаковая:

|V˜V|=0.125=S2=F2E2.

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

|V˜V|<F2E.

Расширение точности слова может быть достигнуто с большим количеством бит, но с этим подходом вы сталкиваетесь с практическими ограничениями. Вместо этого необходимо тщательно выбрать тип данных, размер слова и масштабирование, чтобы номера были точно представлены. Округление и заполнение с конечными нулями являются типичными методами, реализованными на процессорах, чтобы справиться с точностью двоичных слов.

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

Нижний предел, высокий предел и масштабирование только для двоичных точек по умолчанию для поддерживаемых типов данных с фиксированной точкой, обсуждаемое в Binary-Point-Only Scaling, приведены в следующей таблице.

Область значений типов данных с фиксированной точкой и масштабирование по умолчанию

Имя

Тип данных

Низкий предел

Высокий предел

Масштабирование по умолчанию (~ точность)

Целое число без знака

fixdt(0,ws,0)

0

2ws1

1

Целое число со знаком

fixdt(1,ws,0)

2ws1

2ws11

1

Беззнаковая двоичная точка

fixdt(0,ws,fl)

0

(2ws1)2fl

2fl

Подписанная двоичная точка

fixdt(1,ws,fl)

2ws1fl

(2ws11)2fl

2fl

Смещение без знака наклона

fixdt(0,ws,s,b)

b

s(2ws1)+b

s

Смещение наклона со знаком

fixdt(1,ws,s,b)

s(2ws1)+b

s(2ws11)+b

s

s = Уклон, b = Смещение, ws = WordLength, fl = FractionLength

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

Точности, область значений значений со знаком и область значений значений без знака для 8-битного обобщенного типа данных с фиксированной точкой с двоичным масштабированием только с точкой перечислены в следующей таблице. Обратите внимание, что первое значение масштабирования (21) представляет двоичную точку, которая не смежна со словом.

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

Точность

Область значений значений со знаком (низкий, высокий)

Область значений значений без знака (низкий, высокий)

21

2.0

-256, 254

0, 510

20

1.0

-128, 127

0, 255

2-1

0.5

-64, 63.5

0, 127.5

2-2

0.25

-32, 31.75

0, 63.75

2-3

0.125

-16, 15.875

0, 31.875

2-4

0.0625

-8, 7.9375

0, 15.9375

2-5

0.03125

-4, 3.96875

0, 7.96875

2-6

0.015625

-2, 1.984375

0, 3.984375

2-7

0.0078125

-1, 0.9921875

0, 1.9921875

2-8

0.00390625

-0.5, 0.49609375

0, 0.99609375

Область значений и точность 8-Bit типа данных с фиксированной точкой - масштабирование уклона и смещения

Точность и области значений значений со знаком и без знака для 8-битного типа данных с фиксированной точкой с использованием масштабирования наклона и смещения перечислены в следующей таблице. Уклон начинается со значения 1.25 с смещением 1.0 для всех склонов. Обратите внимание, что уклон совпадает с точностью.

Уклон

Уклон/точность

Область значений значений со знаком (низкий, высокий)

Область значений значений без знака (низкий, высокий)

1

1.25

-159, 159.75

1, 319.75

1

0.625

-79, 80.375

1, 160.375

1

0.3125

-39, 40.6875

1, 80.6875

1

0.15625

-19, 20.84375

1, 40.84375

1

0.078125

-9, 10.921875

1, 20.921875

1

0.0390625

-4, 5.9609375

1, 10.9609375

1

0.01953125

-1.5, 3.48046875

1, 5.98046875

1

0.009765625

-0.25, 2.240234375

1, 3.490234375

1

0.0048828125

0.375, 1.6201171875

1, 2.2451171875

Похожие темы