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

 
 
 
Reply to this topicStart new topic
> округление
dsp85
сообщение Jul 6 2010, 18:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 5-06-10
Пользователь №: 57 761




Подскажите, как по-научному правильно округлять?

Вход: I/Q (12 разрядов на квадратуру)
Выход: I'/Q' (7 разрядов на квадратуру)

чувствую, что просто использовать старшие 7 неверно. как нужно учитывать при округлении младшие 5 или не нужно?

Go to the top of the page
 
+Quote Post
SPACUM
сообщение Jul 6 2010, 19:14
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531



Нужно прибавить к округляемому число с единичкой в 8-м разряде и отбросить от суммы младшие пять.


--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
Go to the top of the page
 
+Quote Post
dsp85
сообщение Jul 6 2010, 19:23
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 5-06-10
Пользователь №: 57 761



Цитата(SPACUM @ Jul 6 2010, 23:14) *
Нужно прибавить к округляемому число с единичкой в 8-м разряде и отбросить от суммы младшие пять.

это верно, если и I и Q в доп коде?

все разобрался.

если X>0, то +
Цитата
число с единичкой в 8-м разряде


если X<0, то -
Цитата
число с единичкой в 8-м разряде


Сообщение отредактировал dsp85 - Jul 6 2010, 19:35
Go to the top of the page
 
+Quote Post
EvgenyV
сообщение Jul 6 2010, 20:54
Сообщение #4


Участник
*

Группа: Validating
Сообщений: 22
Регистрация: 10-11-09
Пользователь №: 53 528



А еще можно noise shaping использовать http://en.wikipedia.org/wiki/Noise_shaping

Для этого используется feedback loop, где в петлю обратной связи подается ошибка округления e[n-1].


Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jul 7 2010, 10:22
Сообщение #5


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(dsp85 @ Jul 6 2010, 22:35) *
Подскажите, как по-научному правильно округлять?

Вход: I/Q (12 разрядов на квадратуру)
Выход: I'/Q' (7 разрядов на квадратуру)

чувствую, что просто использовать старшие 7 неверно. как нужно учитывать при округлении младшие 5 или не нужно?

надо добавить половину цены деления и отбросить младшую часть. С отрицательными числами идея таже, как сделать решайте сами.
Go to the top of the page
 
+Quote Post
qxov
сообщение Jul 12 2010, 11:50
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 86
Регистрация: 22-03-07
Из: Санкт-Петербург
Пользователь №: 26 406



Цитата(dsp85 @ Jul 6 2010, 22:35) *
Подскажите, как по-научному правильно округлять?

Вход: I/Q (12 разрядов на квадратуру)
Выход: I'/Q' (7 разрядов на квадратуру)

чувствую, что просто использовать старшие 7 неверно. как нужно учитывать при округлении младшие 5 или не нужно?

output = (input + (1 << (12 - 7 - 1))) >> (12 - 7)
Go to the top of the page
 
+Quote Post
анатолий
сообщение Jul 13 2010, 10:51
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Уточнение к округлению по-научному:
если в отбрасываемом коде попадется комбинация 10000,
то округлять прибавлением 1 нельзя.
Go to the top of the page
 
+Quote Post
alex_os
сообщение Jul 13 2010, 10:54
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 12-05-06
Пользователь №: 17 030



Цитата(анатолий @ Jul 13 2010, 22:51) *
Уточнение к округлению по-научному:
если в отбрасываемом коде попадется комбинация 10000,
то округлять прибавлением 1 нельзя.

Почему?!!


--------------------
ну не художники мы...
Go to the top of the page
 
+Quote Post
Oldring
сообщение Jul 13 2010, 22:03
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(alex_os @ Jul 13 2010, 22:54) *
Почему?!!


Потому что их нужно округлять к ближайшему четному, иначе ошибка округления будет иметь ненулевое среднее. Но на такие блохи в DSP алгоритмах обычно плюют.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
fontp
сообщение Jul 13 2010, 23:41
Сообщение #10


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (Oldring @ Jul 14 2010, 10:03) *
Но на такие блохи в DSP алгоритмах обычно плюют.


Плюют не всегда.
Это если алгоритм проприетарный или сделан для себя. Или такой, что небольшое смещение не имеет значения.
Если алгоритм стандартный и сделан на продажу, приходится считаться.
Иначе не пройдет тестирование на тестовых векторах, которые есть часто часть стандарта
Поэтому во многих современных DSP есть аппаратная поддержка того и другого режима округления.
Go to the top of the page
 
+Quote Post
анатолий
сообщение Jul 21 2010, 06:38
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 221
Регистрация: 10-12-05
Из: Украина
Пользователь №: 12 052



Вот здесь http://kanyevsky.kpi.ua/okruglenie.html
описано как на VHDL делать 8 способов округления
и что они дают, и что стоят.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 23:08
Рейтинг@Mail.ru


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