Область значений номера дает пределы представления, в то время как точность дает расстояние между последовательными числами в представлении. Область значений и точность номера фиксированной точки зависят от длины слова и масштабирования.
Необходимо обратить внимание на точность и область значений типов данных с фиксированной точкой и масштабирований, которые вы выбираете для того, чтобы знать, будет ли округление методов вызвано или если переполнение или потери значимости произойдут.
Область значений является промежутком чисел, которые могут представлять тип данных с фиксированной точкой и масштабирование. Область значений ограничивается, потому что слова фиксированной точки ограничили размер.
Область значений представимых чисел для дополнительного количества фиксированной точки two размера слова Масштабирование и смещение проиллюстрирован ниже, где значения , , и допускайте и отрицательные и положительные числа.
И для подписанных и для количеств фиксированной точки без знака любого типа данных, количество различных комбинаций двоичных разрядов 2wl.
Например, в дополнении two, отрицательные числа должны быть представлены, а также нуль, таким образом, максимальное значение 2wl-1 – 1. Поскольку существует только одно представление для нуля, существует неравное количество положительных и отрицательных чисел. Это означает, что существует представление для но не для :
Поскольку тип данных с фиксированной точкой представляет числа в конечной области значений, переполнение и потери значимости могут произойти, если результат операции больше или меньше, чем числа в той области значений.
В двоичной арифметике процессор может должен быть взять n-bit номер фиксированной точки и сохранить ее в m битах, где . Если m <n, область значений номера уменьшалась, и операция может произвести условие переполнения. Некоторые процессоры идентифицируют это условие как Inf
или NaN
. Для других процессоров, особенно цифровых сигнальных процессоров (DSPS), значение насыщает или переносится.
Программное обеспечение Fixed-Point Designer™ позволяет вам или насыщать или переносить переполнение. Насыщение представляет положительное переполнение как самое большое положительное число в области значений, используемой и отрицательное переполнение как самое большое отрицательное число в используемой области значений. Перенос использования арифметика по модулю, чтобы бросить переполнение назад в представимую область значений типа данных.
Когда вы создаете fi
объект, любое переполнение насыщается. OverflowAction
свойством значения по умолчанию fimath является saturate
. Можно регистрировать переполнение и потери значимости путем установки LoggingMode
свойство fipref
возразите против on
. Обратитесь к LoggingMode для получения дополнительной информации.
Если m> n, область значений номера была расширена. Расширение области значений слова требует включения "сторожевых" разрядов, которые действуют, чтобы принять меры против потенциального переполнения.
Программное обеспечение Simulink® поддерживает насыщение и переносящийся для всех типов данных с фиксированной точкой, в то время как "сторожевые" разряды поддерживаются только для дробных типов данных.
Точность номера фиксированной точки является различием между последовательными значениями, представимыми его типом данных и масштабированием. Значение младшего значащего бита, и поэтому точность номера, определяются количеством дробных битов. Значение фиксированной точки может быть представлено в половине точности его типа данных и масштабирования.
Например, представление фиксированной точки с четырьмя битами справа от двоичной точки имеет точность 24 или 0.0625, который является значением ее младшего значащего бита. Любой номер в области значений этого типа данных и масштабирования может быть представлен в (2-4)/2 или 0.03125, который является половиной точности. Это - пример представления номера с конечной точностью.
Точность слова фиксированной точки зависит от местоположения размера и двоичной точки слова. Например, предположите, что необходимо представлять реальный номер 35.375 с номером фиксированной точки. Используя наклонную схему кодирования смещения, представление
где V = 35.375.
Двумя самыми близкими приближениями к реальному значению является Q = 13 и Q = 14:
В любом случае абсолютная погрешность является тем же самым:
Для значений фиксированной точки в ограниченном диапазоне это представляет ошибку худшего случая, если раунд-к-самому-близкому используется. Если другие режимы округления используются, ошибка худшего случая может быть вдвое более большой:
Расширение точности слова может быть выполнено с большим количеством битов, но вы сталкиваетесь с практическими ограничениями с этим подходом. Вместо этого необходимо тщательно выбрать тип данных, размер слова и масштабирование таким образом, что числа точно представлены. Округление и дополнение конечными нулями являются типичными методами, реализованными на процессорах, чтобы иметь дело с точностью двоичных слов.
Низкий предел, высокий предел и единственное двоичной точкой масштабирование по умолчанию для поддерживаемых типов данных с фиксированной точкой, обсужденных в Единственном двоичной точкой Масштабировании, даны в следующей таблице.
Область значений типа данных с фиксированной точкой и масштабирование по умолчанию
Имя | Тип данных | Низкий предел | Высокий предел | Значение по умолчанию, масштабирующееся (~Precision) |
---|---|---|---|---|
Целое число без знака |
| 0 | 1 | |
Целое число со знаком |
| 1 | ||
Двоичная точка без знака |
| 0 | ||
Двоичная точка со знаком |
| |||
Наклонное смещение без знака |
|
| s | |
Наклонное смещение со знаком |
| s |
s = наклон, b = смещение, ws = WordLength, fl = FractionLength
Точность, область значений значений со знаком и область значений значений без знака для 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-битного типа данных с фиксированной точкой с помощью наклона и масштабирования смещения перечислены в следующей таблице. Наклон запускается в значении 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 |