[an error occurred while processing this directive]
|
Как я могу входной сигнал сдвигать, если он уже 16 битный приходит от АЦП? Любой сдвиг влево - уже потеря информации, т.к. все регистры тоже 16-разрядные (кроме аккумуляторов).
Показываю как сдвигать влево на 8 бит.
- У Вас есть число 0x7FB1
- Вы заносите в аккумулятор со сдвигом влево на 8 бит (команду забыл)и имеете в этом аккумуляторе 0x000007FB10. Для отрицательного числа додумаете сами.
- домножаете на то чего Вам надо и нормируете (или нет, как Вам удобнее)
И второе... Если умножать 2^10 на число с разрядностью 9 и менее, то да - фильтрации не будет, но ведь реально получается:
1 = FFFF
1-2^10 = FFBF
Неправильно. Во-первых, 0xFFFF это -1 и я говарил не о 1-2^10, а о 1-2^(-10). Попробуйте домножить -1 (или +100) на 1-2^(-10) и Вы получите после округления -1 (т.е. 0xFFFF) или 100 ( 0x0064). А вовсе не 0xFFBF.
E-mail: info@telesys.ru