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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Конвертация числа, О том как из слона сделать ёжика
Atashi
сообщение Jul 11 2006, 17:57
Сообщение #16


Участник
*

Группа: Новичок
Сообщений: 66
Регистрация: 30-04-05
Пользователь №: 4 630



вынужден сам себя поправить.
в примере с 3-мя пальцами ввиду того, что пи умножается (вместе с дельтой) на диаметр, для того, чтоб ошибка из-за округления пи была не более ошибки измерения (1/256), нужно задавать (пи/256/диаметр); а чтобы ошибка, вносимая пи-ем, была пренебрежимо малой, двигаем запятую левее.
еще раз подчеркну: я "разрешил" отбрасывать младшие зн. цифры не потому, что не боюсь потери точности, а потому, что в описанном случае они УЖЕ неточны.
Go to the top of the page
 
+Quote Post
mcheb
сообщение Jul 14 2006, 08:44
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Цитата(kanzler @ Jun 23 2006, 07:31) *
Использую полосовой фильтр 16 порядка, параметры которого:
1. разрядность входных данных - 16 бит.
2. разрядность коэффициентов - 8 бит.
3. каскадны фильтр с количеством каскадов 2-го порядка - 8.

Результат получается разрядностью 24 бита, как преобразовать результат в число с разрядностью 16 бит без потери младших разрядов?

Я применяю следующий метод при умножении 8*8=>16 . Если результат больше 255 то результат == 255, если нет , беру младший байт. То есть амплитудное ограничение.
Go to the top of the page
 
+Quote Post
Doka
сообщение Jul 14 2006, 08:57
Сообщение #18


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



Цитата(mcheb @ Jul 14 2006, 12:44) *
Цитата(kanzler @ Jun 23 2006, 07:31) *

Использую полосовой фильтр 16 порядка, параметры которого:
1. разрядность входных данных - 16 бит.
2. разрядность коэффициентов - 8 бит.
3. каскадны фильтр с количеством каскадов 2-го порядка - 8.

Результат получается разрядностью 24 бита, как преобразовать результат в число с разрядностью 16 бит без потери младших разрядов?

Я применяю следующий метод при умножении 8*8=>16 . Если результат больше 255 то результат == 255, если нет , беру младший байт. То есть амплитудное ограничение.


круто a14.gif
только непонятно зачем вам такие "дорогие":rolleyes: 8битные шины держать, ведь уже при 16^2=256, вам и 4битных шин хватит за глаза.


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Pathfinder
сообщение Aug 1 2006, 11:19
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 29-06-05
Пользователь №: 6 400



Atashi, вы путаете два совершенно разных понятия - погрешность входных данных и погрешность, возникающую при преобразовании.
Вы совершенно правы в том, что погрешность произведения или суммы двух величин будет больше наибольшей собственной погрешности. Но об этом в данном случае речь не идет вообще.
8-битные коэффициенты - фиксированы, поэтому можно считать, что они заданы с бесконечной точностью, ибо их погрешность скажется только на частотной характеристике и динамике фильтра. Эта погрешность вводится в коэффициенты фильтра специально, чтобы снизить разрядность и упростить умножители и сумматоры.
Про собственную погрешность 16-битных входных данных вообще ничего не известно.
Что касается преобразования, в результате обработки описанным фильтром разрядность увеличится до 28 бит, при этом преобразование выполняется с бесконечной точностью, отбрасывание младших бит эту точность ограничит некоторой величиной. Насколько это допустимо зависит от задачи.


--------------------
ADC / DAC LC Filter Designer — Удобный инструмент проектирования LC-фильтров для ЦАП и АЦП
Go to the top of the page
 
+Quote Post

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

 


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


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