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