В следующих примерах показано, как создавать данные с фиксированной точкой с помощью Designer™ Fixed-Point fi объект.
Запрос fi для числа создает число с фиксированной точкой со значением по умолчанию signedness и значениями длины слов и дробей по умолчанию.
fi(pi)
ans =
3.1416
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13Можно указать значение signedness (1 для signed, 0 для unsigned) и длину слова и дроби.
fi(pi,1,15,12)
ans =
3.1416
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 15
FractionLength: 12Чтобы создать целочисленные значения с фиксированной точкой, укажите длину дроби, равную 0.
fi(1:25,0,8,0)
ans =
Columns 1 through 13
1 2 3 4 5 6 7 8 9 10 11 12 13
Columns 14 through 25
14 15 16 17 18 19 20 21 22 23 24 25
DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 8
FractionLength: 0
fi(rand(4),0,12,8)
ans =
0.1484 0.8125 0.1953 0.3516
0.2578 0.2422 0.2500 0.8320
0.8398 0.9297 0.6172 0.5859
0.2539 0.3516 0.4727 0.5508
DataTypeMode: Fixed-point: binary point scaling
Signedness: Unsigned
WordLength: 12
FractionLength: 8При написании кода иногда требуется проверить различные типы данных для переменных. Разделение типов данных переменных и алгоритма значительно упрощает тестирование. Создание таблицы определений типов данных позволяет программно переключать функции между типами данных с плавающей и фиксированной точками. В следующем примере показано, как использовать этот метод и создать массив нулей.
T.z = fi([],1,16,0);
z = zeros(2,3,'like',T.z)z =
0 0 0
0 0 0
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 0Примечание
Полный пример реализации этого метода см. в разделе Реализация алгоритма фильтра FIR для типов с плавающей и фиксированной точками с использованием литья и нулей.