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

 
 
5 страниц V   1 2 3 > »   
Closed TopicStart new topic
> AVR для геофизики / гидроакустики, кто применял
AndreyMS
сообщение Jan 12 2006, 16:19
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 30
Регистрация: 25-04-05
Из: г. Воронеж
Пользователь №: 4 484



Народ, кто пробовал применять AVR для геофизичесих / гидроакустических приложениий? Поделитесь нароботками. help.gif Или может AVR для этого не хватит? Там задача примерно следующая: проFIRить сигнал с частотой 1 kSPS и разрядностью 24 bit фильтром вроде того, что в прикреплении (выдран из промышленной сейсмостанции, построеной на 80386).
Прикрепленные файлы
Прикрепленный файл  FLTR50.ZIP ( 438 байт ) Кол-во скачиваний: 101
 
Go to the top of the page
 
+Quote Post
_artem_
сообщение Jan 12 2006, 17:13
Сообщение #2


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



На этой страничке для фильтра 8 порядка указано 41 циклов для одного порядка FIR фильтра при частоте 16 МГц что дает возможность 48к самплов в секунду .
http://atmel.com/dyn/resources/prod_documents/doc2527.pdf

код здесь
http://atmel.com/dyn/resources/prod_documents/AVR223.zip

но надо проверить


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

Go to the top of the page
 
+Quote Post
AndreyMS
сообщение Jan 12 2006, 19:05
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 30
Регистрация: 25-04-05
Из: г. Воронеж
Пользователь №: 4 484



Этот фильтр в данном контексте - фигня angry.gif . Нужен фильтр типа того, что в прикреплении - из дофига двухбайтных коэфициентов. И еще: код желателно компилящийся безплатными инструментами, все-таки гос. предприятие, на коммерческие денег нет, еле наскребли на 1 копию W2k.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 12 2006, 19:20
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(AndreyMS @ Jan 12 2006, 22:05) *
Этот фильтр в данном контексте - фигня angry.gif . Нужен фильтр типа того, что в прикреплении - из дофига двухбайтных коэфициентов. И еще: код желателно компилящийся безплатными инструментами, все-таки гос. предприятие, на коммерческие денег нет, еле наскребли на 1 копию W2k.
Простите, если не совсем понимаю суть происходящего, но, по-моему, Вы собираетесь решать задачу заведомо негодными средствами. Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени. Стоит задуматься о применении иной платформы. Я бы предложил ARM, если на DSP деньги тратить не хочется (впрочем, и другие варианты возможны). И не нужно говорить, что копеечная LPC-шка обойдется на 5 копеек дороже копеечной AVR-ки. Это несерьезный подход к серьезной задаче. Как вы уже правильно заметили, разрядность процессора должна соответствовать разрядности самых вычислительно напряженных операций. Соблюдение этого требования в задачах сигнальной обработки реального времени - обязательно.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mse
сообщение Jan 12 2006, 19:35
Сообщение #5


Знающий
****

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



Цитата
Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени.

Отчего-ж. 24Х16 - 28тактов. Значить 32-33 такта на МАС, ~2мкс. 100-tap FIR как с куста при 1ксемпл. ещё с запасом
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 12 2006, 20:17
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mse @ Jan 12 2006, 22:35) *
Цитата
Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени.

Отчего-ж. 24Х16 - 28тактов. Значить 32-33 такта на МАС, ~2мкс. 100-tap FIR как с куста при 1ксемпл. ещё с запасом
Боюсь, что Вы имеете неправильное представление о всех операциях, требуемых для получения хотя бы одного выходного отсчета КИХ-фильтра, отсюда и неправильность Вашей калькуляции. Но дело даже не в этом. Выполнение разработки с "вылизыванием" всех ресурсов - крайне порочный подход, не оставляющий возможностей ее развития в дальнейшем. Останется только путь переделки, со сменой платформы, средств разработки, специалистов и т.д. Что, в конечном итоге, обернется куда бОльшими затратами (или "загибанием" всей темы, а может статься, и предприятия).


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mse
сообщение Jan 12 2006, 20:23
Сообщение #7


Знающий
****

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



Цитата
Боюсь, что Вы имеете неправильное представление о всех операциях, требуемых для получения хотя бы одного выходного отсчета КИХ-фильтра, отсюда и неправильность Вашей калькуляции.

Не бойтесь ;О) Как раз на АВР(м48@16VUw) реализован переключаемый полосовой фильтр на 200 тапов(22р коэффициенты, ессно, 10р данные). И всго-то $3 за всё-про всё с обвязкой.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 12 2006, 20:30
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mse @ Jan 12 2006, 23:23) *
Цитата
Боюсь, что Вы имеете неправильное представление о всех операциях, требуемых для получения хотя бы одного выходного отсчета КИХ-фильтра, отсюда и неправильность Вашей калькуляции.

Не бойтесь ;О) Как раз на АВР(м48@16VUw) реализован переключаемый полосовой фильтр на 200 тапов(22р коэффициенты, ессно, 10р данные). И всго-то $3 за всё-про всё с обвязкой.
Вы условие еще раз прочтите. При чем здесь Ваши 10 разрядов? Кроме того, в условии есть также несоответствие разрядности данных и к-тов фильтра. Да и у Вас ерунда какая-то.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
_artem_
сообщение Jan 12 2006, 21:10
Сообщение #9


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Цитата(AndreyMS @ Jan 12 2006, 21:05) *
Этот фильтр в данном контексте - фигня angry.gif . Нужен фильтр типа того, что в прикреплении - из дофига двухбайтных коэфициентов. И еще: код желателно компилящийся безплатными инструментами, все-таки гос. предприятие, на коммерческие денег нет, еле наскребли на 1 копию W2k.



Я же не предлагаю использовать тот фильтр приведенный в ссылке. Я хотел указать вам на расчет производительности сделанный атмелом для FIR фильтра для определения количества ресурсов на порядок а вам остается его умножить на порядок вашего фильтра не так ли?

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

П.С. Насчет АРМ или АВР , лучше конечно все брать с запасом даже если АВР сможет перелопатить этот объем, свободная мошность никогда не помешает .


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

Go to the top of the page
 
+Quote Post
mse
сообщение Jan 12 2006, 21:11
Сообщение #10


Знающий
****

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



Цитата
Кроме того, в условии есть также несоответствие разрядности данных и к-тов фильтра. Да и у Вас ерунда какая-то.

Интересно, какое должно быть соответствие данных и коэффициентов? И в каком месте у меня ерунда? ;О)
ЗЫ 24х24 выполняется за 45 тактов, значить МАС будет под 60тактов. Не смертельное увеличение. Особенно, если ИХ фильтра симметричная.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 12 2006, 22:44
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(mse @ Jan 13 2006, 00:11) *
Цитата
Кроме того, в условии есть также несоответствие разрядности данных и к-тов фильтра. Да и у Вас ерунда какая-то.

Интересно, какое должно быть соответствие данных и коэффициентов?
Разрядность к-тов фильтра должна быть такой, чтобы не слишком ухудшать отношение С/Ш в интересующей полосе частот сигнала на выходе фильтра. Для хороших 24-х разрядных сигма-дельта АЦП это отношение может превышать 120 dBFS во всей рабочей полосе. При фильтрации "идеальным" КИХ-фильтром такой длины (140-й порядок, если не ошибся), и с такой полосой, каковы приведены в условии, реально получить на выходе >140 dBFS. В то же время, 16-разрядное представление к-тов может существенно ухудшить этот показатель, т.к. фильтр "нагребет" помех и шумов вне полосы пропускания, из-за того, что его внеполосное подавление будет недостаточным по причине усеченной точности представления к-тов.

Цитата(mse @ Jan 13 2006, 00:11) *
И в каком месте у меня ерунда? ;О)
У Вас же имеет место быть противоположная ситуация - разрядность к-тов явно избыточна, что приводит к лишним вычислениям. На мой взгляд, 16-ти разрядного представления к-тов для 200-го порядка при разрядности данных, равной 10, вполне достаточно, т.к.16-разрядной точности выходных данных от 10-битного АЦП Вы все равно не получите.

Цитата(mse @ Jan 13 2006, 00:11) *
ЗЫ 24х24 выполняется за 45 тактов, значить МАС будет под 60тактов. Не смертельное увеличение. Особенно, если ИХ фильтра симметричная.
Ваша методика расчета кол-ва операций способна меня удивить, ей-богу (если Вы ее, конечно, обнародуете). Мне все же кажется, что лучше вернуться к предмету обсуждения данной темы.


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
_artem_
сообщение Jan 12 2006, 23:27
Сообщение #12


учащийся
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 29-10-05
Из: города контрастов
Пользователь №: 10 249



Требуемая разрядность аккумулятора при 16 битовых коэффициентах (в соответствии со статьей)
16 + 24 + лог(141)/2 ~ 44 битов . Кстати коэффициенты из фильтра не превышают 16 битовый результат.

естественно что при умножении коэффициентов на входной сигнал (в статье 16 на 16) 16 * 24 нам требуется 6 операций 8 битного умножения против 4-х в статье и соответственно увеличится количество складываний . Думаю что если брать грубо то при 16 на 24 раскладе в самом худшем случае количество тактов на порядок КИХ фильтра может увеличиться в два раза по сравнению с данными приведенными в статье .

Если так то статья уыказывает что FIR 8 порядка реализуется со скоростью 48 кило самплов . В нашем случе если разрядность увеличивается то максимальная скорость снизится до 24 килосамплов . Так как требуемый фильтр - 140 порядка то 140 / 8 = ~18 раз то есть количество операций для 140-го порядка должно быть в 18 раз больше чем для фильтра 8 порядка , а это в свою очередь приводит к 24 / 18 = 1.3 килосамплов , что вроде бы предварительно удовлетворяет условиям поставленной задачи . Но много чего может вылезти в процессе проектирования .

Прошу указать на ошибки.

Сообщение отредактировал _artem_ - Jan 12 2006, 23:31


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

Go to the top of the page
 
+Quote Post
AndreyMS
сообщение Jan 13 2006, 07:30
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 30
Регистрация: 25-04-05
Из: г. Воронеж
Пользователь №: 4 484



Цитата(Stanislav @ Jan 12 2006, 22:20) *
Простите, если не совсем понимаю суть происходящего, но, по-моему, Вы собираетесь решать задачу заведомо негодными средствами. Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени. Стоит задуматься о применении иной платформы. Я бы предложил ARM, если на DSP деньги тратить не хочется (впрочем, и другие варианты возможны). И не нужно говорить, что копеечная LPC-шка обойдется на 5 копеек дороже копеечной AVR-ки. Это несерьезный подход к серьезной задаче. Как вы уже правильно заметили, разрядность процессора должна соответствовать разрядности самых вычислительно напряженных операций. Соблюдение этого требования в задачах сигнальной обработки реального времени - обязательно.

Я бы ARM или DSP использовал, если бы нашел таковой либо в корпусе DIP, либо в конструктиве вроде CRUMB128, а то какой-нибудь FBGA-512 с межвыводным рассоянием 0,4 мм распаять ручками невозможно. Подскажите, может плохо искал?
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Jan 13 2006, 07:39
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(_artem_ @ Jan 13 2006, 02:27) *
Требуемая разрядность аккумулятора при 16 битовых коэффициентах (в соответствии со статьей)
16 + 24 + лог(141)/2 ~ 44 битов . Кстати коэффициенты из фильтра не превышают 16 битовый результат.

естественно что при умножении коэффициентов на входной сигнал (в статье 16 на 16) 16 * 24 нам требуется 6 операций 8 битного умножения против 4-х в статье и соответственно увеличится количество складываний . Думаю что если брать грубо то при 16 на 24 раскладе в самом худшем случае количество тактов на порядок КИХ фильтра может увеличиться в два раза по сравнению с данными приведенными в статье .

Если так то статья уыказывает что FIR 8 порядка реализуется со скоростью 48 кило самплов . В нашем случе если разрядность увеличивается то максимальная скорость снизится до 24 килосамплов . Так как требуемый фильтр - 140 порядка то 140 / 8 = ~18 раз то есть количество операций для 140-го порядка должно быть в 18 раз больше чем для фильтра 8 порядка , а это в свою очередь приводит к 24 / 18 = 1.3 килосамплов , что вроде бы предварительно удовлетворяет условиям поставленной задачи . Но много чего может вылезти в процессе проектирования .

Прошу указать на ошибки.
Повторяю: учтите все операции (в т.ч. связанные с вводом-выводом данных и их буферизацией). СамомУ считать лень, но уверен, что возникнет "напряженка".


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
mse
сообщение Jan 13 2006, 07:51
Сообщение #15


Знающий
****

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



Цитата
Разрядность к-тов фильтра должна быть такой, чтобы не слишком ухудшать отношение С/Ш в интересующей полосе частот сигнала на выходе фильтра

Толково! Это как это? Соотношение С/Ш фильтр(FIR) способен уменьшить, либо на 0...1LSB, при усечении МАС, либо на 0...0,5LSB, при округлении. Во всей полосе. До Fs/2. И разрядность коэффициентов здесь ни при чём. Потренируйтесь на ФИР с коэффициентами 0х40,0х40,0х40,0х40. Или 1,1,1,1.
Может быть, конечно, вы имели в виду что-то из: "подавление в полосе заграждения", "неравномерность в полосе пропускания/заграждения", или ещё какой параметер АЧХ? ;О) Тут да, есть о чём поговорить.
Цитата
В то же время, 16-разрядное представление к-тов может существенно ухудшить этот показатель, т.к. фильтр "нагребет" помех и шумов вне полосы пропускания, из-за того, что его внеполосное подавление будет недостаточным по причине усеченной точности представления к-тов

Мил человек, нчего он не нагребёт свыше того, что там уже есть(см выше). ;О) Если мне нужно от фильтра "не хуже -10ДБ в полосе заграждения", и 8р коэффициенты(!) этому условию удовлетворяют, то на размерность данных можно и нужно забить. И точность с шумом не пострадают, поверьте, проверено электроникой. ;О) С/Ш, конечно упадёт. На 1/2LSB в полосе до..., бо я обычно округляю.
Цитата
У Вас же имеет место быть противоположная ситуация - разрядность к-тов явно избыточна, что приводит к лишним вычислениям.

Да нет. ;О) тут, как раз, вы не правы. Тоже проверено электроникой. Бо это были узкие BPF с максимально-возможной узкостью и подавлением, где не надо. И разницца с 20р коэффициентами была видна совершенно невооружённым взглядом. Тем более, что всё равно, умножение 16Х24, какая разница? На 16р коэффициентах там ваще смотреть было не на что, так что множить приходилось на 24.
Цитата
Ваша методика расчета кол-ва операций способна меня удивить, ей-богу (если Вы ее, конечно, обнародуете).

Лехко. Возьмём за основу мой текст FIR с беньчьчморков Сахары
http://www.caxapa.ru/benchmarks/source?23
Что мы там видим? Накладные на циклический буфер и загрузку коэфф./данных. Считаем. 18 тактов. Для 24Х24 поимеем, соотвецтвенно, 23. Остаёцца МАС. 45 на умножение, 7 на суммирование. 75 тактов. Ошибся, ошибся, с кем не бывает. Простите, люди. ;О) Итого на м48@20MHZ имеем меньше 4мкС на тап(со знаковыми величинами будет на копеечку больше). Пусть их 100, итого 400мкС на фильтер. Пусть их 200. Итого 800мкс на фильтер. Оставшиеся с 1мС 600 или 200мкс - курим. А это ни много-ни мало 12000 и 4000 тактов соответственно. Если-же подойти к коэффициентам и тапам творчески, то размерность того и другого вполне может упасть. А если задацца симметричной ИХ, то размер фильтера упадёт вдвое. Курим больше.
Замечу, мы говорим о МК ценой меньше бакса. В розницу. Жрущего 10-15мА на этой задаче. И занимающено 1см^2 на плате.
Go to the top of the page
 
+Quote Post

5 страниц V   1 2 3 > » 
Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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