реклама на сайте
подробности

 
 
> Сравнение точности float и fixed point
Grizzzly
сообщение Jun 19 2014, 14:15
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Есть алгоритм, который реализован на ARM с плавающей запятой и на TMS с фиксированной запятой. Как правильно оценить погрешность представления чисел во float и Q0.18? Правильно ли я понимаю, что float точнее, поскольку у него 7 значащих десятичных знаков после запятой, а для Q0.18 только 5?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Elex_MD
сообщение Jun 19 2014, 16:47
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 27-04-11
Пользователь №: 64 659



Цитата(Grizzzly @ Jun 19 2014, 18:15) *
для Q0.18 только 5?

почему 5? разве Q0.18 не подразумевает 0 разрядов для целой части и 18 разрядов для дробной.Кстати, какой-то весьма странный формат.
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Jun 19 2014, 17:17
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



18 двоичных разрядов, что примерно составляет 5 десятичных. Развет не так?
Тот, кто писал код, выбрал LSB = 2^-18. Целую часть число не содержит. Поэтому такой вот формат. Я хочу разобраться, на сколько точность данного числа меньше, чем у float. Просто на float'ах всё устраивает. А к алгоритму с фиксированной точке появились вопросы. Есть некоторая ошибка в полученных выходных данных. Вот я и хочу понять, это из-за точности представления чисел, или что-то другое влияет.

Сообщение отредактировал Grizzzly - Jun 19 2014, 17:35
Go to the top of the page
 
+Quote Post
menzoda
сообщение Jun 20 2014, 05:25
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530



Да, точность меньше. В IEEE754 на мантиссу отводится 23 (вроде?) бита, а тут 18, кроме того у плавающей точки динамический диапазон больше. Влияет ли это на вычисления? Неизвестно. Нужно брать подозрительные арифметические операции алгоритма и тщательно проверять на возникновение переполнения/ограничения при заданных входных данных. Если влияет, то можно отвести под дробную часть больше битов, Q0.31 например, или еще больше.

Сообщение отредактировал menzoda - Jun 20 2014, 10:31
Go to the top of the page
 
+Quote Post
Grizzzly
сообщение Jun 20 2014, 06:37
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748



Спасибо. Да, так и есть, под мантиссу во float отводится 23 бита.
Попробую перейти на Q0.31 и сравнить результаты.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 05:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.013 секунд с 7
ELECTRONIX ©2004-2016