Следующие примеры показывают, как создать данные фиксированной точки с помощью fi Fixed-Point Designer™ объект.
Вызов fi на номере производит номер фиксированной точки со словом по умолчанию и со знаком по умолчанию и дробными длинами.
fi(pi)
ans =
3.1416
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 16
FractionLength: 13Можно задать со знаком (1 для со знаком, 0 для без знака) и слово и фракционировать длины.
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: 0fi(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Для полного примера, показывающего реализацию этого метода, см. КИХ-Алгоритм Фильтра Реализации для С плавающей точкой и броска использования Фиксированных точек и нулей.