Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сравнение точности float и fixed point
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Grizzzly
Есть алгоритм, который реализован на ARM с плавающей запятой и на TMS с фиксированной запятой. Как правильно оценить погрешность представления чисел во float и Q0.18? Правильно ли я понимаю, что float точнее, поскольку у него 7 значащих десятичных знаков после запятой, а для Q0.18 только 5?
Elex_MD
Цитата(Grizzzly @ Jun 19 2014, 18:15) *
для Q0.18 только 5?

почему 5? разве Q0.18 не подразумевает 0 разрядов для целой части и 18 разрядов для дробной.Кстати, какой-то весьма странный формат.
Grizzzly
18 двоичных разрядов, что примерно составляет 5 десятичных. Развет не так?
Тот, кто писал код, выбрал LSB = 2^-18. Целую часть число не содержит. Поэтому такой вот формат. Я хочу разобраться, на сколько точность данного числа меньше, чем у float. Просто на float'ах всё устраивает. А к алгоритму с фиксированной точке появились вопросы. Есть некоторая ошибка в полученных выходных данных. Вот я и хочу понять, это из-за точности представления чисел, или что-то другое влияет.
menzoda
Да, точность меньше. В IEEE754 на мантиссу отводится 23 (вроде?) бита, а тут 18, кроме того у плавающей точки динамический диапазон больше. Влияет ли это на вычисления? Неизвестно. Нужно брать подозрительные арифметические операции алгоритма и тщательно проверять на возникновение переполнения/ограничения при заданных входных данных. Если влияет, то можно отвести под дробную часть больше битов, Q0.31 например, или еще больше.
Grizzzly
Спасибо. Да, так и есть, под мантиссу во float отводится 23 бита.
Попробую перейти на Q0.31 и сравнить результаты.
menzoda
Вообще, в Simulink (это который с Matlab'ом вместе идет) есть такая штука, как автоматический подбор нужных форматов фиксточки. Рисуем алгоритм, задаем для блоков предельные входные значения, ???, профит! Он сам подбирает нужные форматы и при необходимости переводит из одного в другой. Однако, как и все остальное в Simulink, эта штука имеет очень корявый интерфейс, я так и не разобрался как заставить ее работать.
Grizzzly
Спасибо. Про Simulink знаю. Приходилось очень много рабоать с ним. А мне нравится его интерфейс sm.gif Не хотелось тратить время на создание модели. Может быть, попробую, если без этого не удастся исправить.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.