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

 
 
> Формат представления чисел, в алгоритмах ЦОС
Anton2
сообщение Aug 18 2014, 05:35
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 13-01-14
Пользователь №: 80 010



Добрый день.

Нужен совет по следующей проблеме.
Допустим необходимо реализвать на ПЛИС некоторый алгоритм ЦОС, который состоит в последовательном выполнении простых операций (умножение, дифференцирование, фильтрация и т.д).
На входе - целые числа (скажем 18 разрядов). В процессе математических вычислений разрядность результата растет очень быстро. Соответственно встает вопрос об округлении промежуточных результатов.
То есть или использовать фиксированную точку или числа с плавающей точкой.
Если использовать Xilinx IP cores, то фильтры на вход принимают числа с фиксированной точкой.
Все остальные операции можно производить в формате с фиксированной точкой. Таким образом максимальная тоность вычислений будет в том случае, если в определенных местах переводить числа fixed_point -> floating_point и обратно?
Собственно основной вопрос вот в чем. Можно ли найти хороший вариант по вычислительной_сложности/точности без построения моделей в Matlab (при условии что алгоритм не сложный, т.е. посчитать "на бумажке")?
Что самое интересное, в интернете крайне мало информации по этой теме. Быть может кто встречал книжку, где описаны расчеты точности при таких вычислениях.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bve
сообщение Aug 18 2014, 06:37
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 316
Регистрация: 20-02-05
Из: Ленинградская обл.
Пользователь №: 2 765



Плавающая точка даёт расширение динамического диапазона, а вот точность определяется
длиной мантиссы, которая, при одинаковой с целочисленным представлением длине слова,
имеет меньше разрядов, чем целое. А про точность:
Представьте себе, что Ваши данные имеют общий множитель 2**(-n), где n - разрядность
числа. Т.е. Ваши числа лежат в диапазоне ]-1;1[. Множители фильтров можно рассматривать
аналогично. Поэтому, умножение двух чисел, меньших единицы, в результате даёт число,
также меньшее единицы. Следовательно, разрядами, меньшими чем меньшие во входном сигнале, можно пренебречь и отбросить. Хуже со сложением - но в этом случае рост разрядности равен двоичному логарифму от количества сложений, т.е 2 сложения <=> 1 разряд, 4 сложения <=> 2 разряда и т.д.. Мысленные множители можно учесть на выходе
алгоритма ( или вообще не учитывать ). Так что варианты нарисовать можно!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 11:24
Рейтинг@Mail.ru


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