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

 
 
> Округление и отбрасываение разрядности
dak
сообщение Jun 14 2016, 17:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 2-02-16
Из: Санкт-Петербург
Пользователь №: 90 315



Всем привет.

Допустим, у меня есть вектор 48 бит, из которых мне надо только 16 бит. Известно, что вектор 48 бит получается из перемножения векторов 32 бита и 16 бит, при этом вектор 32 бита - беззнаковое число (максимум 32000, 2 в какой-то там степени), а 16 бит - число знаковое, и диапазон от -32000 до 32000 (та же степень двойки). Мне надо, чтобы оставляемый от 48 битного вектор в 16 бит был также в диапазоне от -32000 до 32000.

Идея в том, что тот 16 битный вектор, который умножается на 32 битный вектор - это отсчеты синуса, я не могу менять его амплитуду. Вектор 32 бита - амплитуда синуса, и хочу, чтобы выходной вектор (который также будет синусом) имел близкую амплитуду (близкую к тому значению, что записано в 32 битный вектор).

Рассматривал на таком примере: допустим,есть 4 битный вектор. Диапазон от -8 до 7. Если убрать младший разряд, то останется 3 бита, и диапазон будет от -4 до 3. То есть, убрать младший разряд - это практически эквивалентно тому, чтобы поделить записанное в вектор число на 2. Как я понимаю, удаление старшего бита будет иметь схожий эффект.

Я попробовал покрутить это все дело, но особо не вышло. Подскажите пожалуйста, как выбрать разрядность.

PS. Я знаю, что просто отбросить разряды нельзя и знаю что делать дальше, но вопрос сейчас именно в выборе разрядности.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GREGOR_812
сообщение Jun 14 2016, 18:45
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 26-04-14
Пользователь №: 81 523



Если Ваши числа записываются в дополнительном коде, то при сдвиге вправо нужно просто добавлять знаковый бит в старший разряд, например:
Положительное 0 1001001 сдвигаем на 3 разряда
0 0100100
0 0010010
0 0001001

Отрицательное 1 1001001
1 1100100
1 1110010
1 1111001

Не уверен, что это то, что нужно именно Вам, но всё же
Go to the top of the page
 
+Quote Post



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

 


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


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