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

 
 
> Как маштабируем результат фильтра ?, Результат 16-битной рутины фильтра в Acc
Саша Z
сообщение Jun 3 2007, 22:00
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Не могу сообразить что-то: есть FIR в ассемблере 16-битного процессора (fixed point), результат каждого последующего sample записывается в аккумуляторе который скажем 32 бит, из которого его нужно сохраняет в буфер результатов. Не догоняю как правильно маштабировать результат, т.е. как брать только старшие знАчимые 16 бит. Нужно-ли определять или старшие 16 бит аккумулятора = 0, то брать нижнее слово, если-же есть значимые биты в старшем слове аккумулятора то сдвигат его влево пока старший знАчимый бит не станет битом 31 и затем брать старшее слово из аккумлятора ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
el34
сообщение Jun 3 2007, 22:29
Сообщение #2


инженер
****

Группа: Свой
Сообщений: 717
Регистрация: 4-03-05
Пользователь №: 3 064



если данные напр. 12бит коэфф. 12бит... произведение 24 ...
считаем в 32 битах
(считаем весь фильтр без округления)
точка округления - отбрасывания зависит от длины фильтра
(надо помнить, что одно сложение может добавить 1 бит)
напр при длине фильтра 64 -в худшем случае добавляется 6 бит
итого 30 бит значащих....
что не надо отбрасываем(округляем ) снизу....
старшие тоже убиваем....оставляем сколько надо значащих....
(надо помнить, что в старших битах аккумулятора живет расширение знака
и поэтому там может быть напр. 0x0 или 0xF)

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


--------------------
........поужинали вяленой рыбой, кот лежал рядом, молчали.......
Go to the top of the page
 
+Quote Post
Саша Z
сообщение Jun 4 2007, 05:45
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 921
Регистрация: 6-04-07
Из: Israel
Пользователь №: 26 822



Цитата(el34 @ Jun 4 2007, 02:29) *
если данные напр. 12бит коэфф. 12бит... произведение 24 ...
считаем в 32 битах
(считаем весь фильтр без округления)
точка округления - отбрасывания зависит от длины фильтра
(надо помнить, что одно сложение может добавить 1 бит)
напр при длине фильтра 64 -в худшем случае добавляется 6 бит
итого 30 бит значащих....
что не надо отбрасываем(округляем ) снизу....
старшие тоже убиваем....оставляем сколько надо значащих....
(надо помнить, что в старших битах аккумулятора живет расширение знака
и поэтому там может быть напр. 0x0 или 0xF)

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


Спасибо.
У меня на данный момент 10 бит коэфф. и 10 бит данные, длинна фильтра = 150 (точнее порядок = 150, значит 151 коэффициент). Значит на основании сказанного вами: произведение 20 бит + 8 бит на сложение (worst case) и того имеем до 28 бит не учитывая старший бит знака, так ? Если это правильно, то нужно видимобрать старший бит аккумулятора (знаковый), к нему пристыковывать 15 верхних бит из тех 28и, остальное отбрасывать, я ошибаюсь ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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