Следующие примеры показывают, как создать данные с фиксированной точкой с помощью Fixed-Point Designer™ fi объект.
Вызывающие 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: 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Примечание
Полный пример, показывающий реализацию этого метода, см. Конечную импульсную характеристику реализации алгоритма фильтра для с плавающей точкой и Фиксированными точками с использованием приведения и нулей.