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