Определение максимальной точности представления значения в фиксированной точке
out = fixptbestprec(RealWorldValue,TotalBits,IsSigned)
out = fixptbestprec(RealWorldValue,FixPtDataType)
out = fixptbestprec(RealWorldValue,TotalBits,IsSigned) определяет максимальную точность для представления в фиксированной точке реального значения, заданного RealWorldValue. Вы указываете количество битов для числа фиксированных точек с помощью TotalBits, и вы указываете, подписан ли номер с фиксированной точкой IsSigned. Если IsSigned является 1, номер подписан. Если IsSigned является 0, номер не подписан. Максимальная точность возвращается в out.
out = fixptbestprec(RealWorldValue,FixPtDataType) определяет максимальную точность на основе типа данных, указанного в FixPtDataType.
Следующая команда возвращает максимальную точность, доступную для действительного значения 4/3, используя 8-битное число со знаком:
out = fixptbestprec(4/3,8,1)
out = 0.015625
Кроме того, можно указать тип данных с фиксированной точкой:
out = fixptbestprec(4/3,sfix(8))
out = 0.015625
Это значение означает, что максимальная точность, доступная для 4/3, получается размещением шести битов справа от двоичной точки, так как 2-6 равно 0,015625:
01.010101
Можно использовать максимальную точность в качестве масштабирования в блоках с фиксированной точкой. Это позволяет использовать fixptbestprec для выполнения типа автоматического масштабирования, если требуется указать известный диапазон моделирования. Например, если ваш известный диапазон от -13 до 22 и вы используете запас прочности 30%:
knownMax = 22; knownMin = -13; localSafetyMargin = 30; slope = max( fixptbestprec( (1+localSafetyMargin/100)* ... [knownMax,knownMin], sfix(16) ) );
Переменная slope может затем использоваться в выражении, указанном для параметра типа данных Output в маске блока. Убедитесь, что в том же блоке установлен флажок Блокировать тип выходных данных с учетом изменений с помощью инструментов с фиксированной точкой, чтобы предотвратить переопределение масштабирования инструментом с фиксированной точкой. Если диапазон известен, можно использовать этот метод вместо использования моделирования модели для предоставления диапазона инструменту автоматического масштабирования, как описано в разделе autofixexp (Конструктор фиксированных точек).