|
|
  |
AVR для геофизики / гидроакустики, кто применял |
|
|
|
Jan 12 2006, 16:19
|

Участник

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

|
Народ, кто пробовал применять AVR для геофизичесих / гидроакустических приложениий? Поделитесь нароботками.  Или может AVR для этого не хватит? Там задача примерно следующая: проFIRить сигнал с частотой 1 kSPS и разрядностью 24 bit фильтром вроде того, что в прикреплении (выдран из промышленной сейсмостанции, построеной на 80386).
|
|
|
|
|
Jan 12 2006, 19:20
|

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

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

|
Цитата Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени. Отчего-ж. 24Х16 - 28тактов. Значить 32-33 такта на МАС, ~2мкс. 100-tap FIR как с куста при 1ксемпл. ещё с запасом
|
|
|
|
|
Jan 12 2006, 20:17
|

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

|
Цитата(mse @ Jan 12 2006, 22:35)  Цитата Ну не предназначен AVR для обработки сигнала, да еще такой разрядности, в реальном времени. Отчего-ж. 24Х16 - 28тактов. Значить 32-33 такта на МАС, ~2мкс. 100-tap FIR как с куста при 1ксемпл. ещё с запасом Боюсь, что Вы имеете неправильное представление о всех операциях, требуемых для получения хотя бы одного выходного отсчета КИХ-фильтра, отсюда и неправильность Вашей калькуляции. Но дело даже не в этом. Выполнение разработки с "вылизыванием" всех ресурсов - крайне порочный подход, не оставляющий возможностей ее развития в дальнейшем. Останется только путь переделки, со сменой платформы, средств разработки, специалистов и т.д. Что, в конечном итоге, обернется куда бОльшими затратами (или "загибанием" всей темы, а может статься, и предприятия).
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 12 2006, 20:23
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата Боюсь, что Вы имеете неправильное представление о всех операциях, требуемых для получения хотя бы одного выходного отсчета КИХ-фильтра, отсюда и неправильность Вашей калькуляции. Не бойтесь ;О) Как раз на АВР(м48@16VUw) реализован переключаемый полосовой фильтр на 200 тапов(22р коэффициенты, ессно, 10р данные). И всго-то $3 за всё-про всё с обвязкой.
|
|
|
|
|
Jan 12 2006, 20:30
|

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

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

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

|
Цитата(AndreyMS @ Jan 12 2006, 21:05)  Этот фильтр в данном контексте - фигня  . Нужен фильтр типа того, что в прикреплении - из дофига двухбайтных коэфициентов. И еще: код желателно компилящийся безплатными инструментами, все-таки гос. предприятие, на коммерческие денег нет, еле наскребли на 1 копию W2k. Я же не предлагаю использовать тот фильтр приведенный в ссылке. Я хотел указать вам на расчет производительности сделанный атмелом для FIR фильтра для определения количества ресурсов на порядок а вам остается его умножить на порядок вашего фильтра не так ли? Во вторых , зачем гневаться если вам код не подходит и вам неохота этот код под бесплатный компайлер менять - у меня вроде бы с вами котракта на поставку бесплатноого кода нет.) П.С. Насчет АРМ или АВР , лучше конечно все брать с запасом даже если АВР сможет перелопатить этот объем, свободная мошность никогда не помешает .
--------------------
Зачем лаять на караван , когда на него можно плюнуть?
|
|
|
|
|
Jan 12 2006, 21:11
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата Кроме того, в условии есть также несоответствие разрядности данных и к-тов фильтра. Да и у Вас ерунда какая-то. Интересно, какое должно быть соответствие данных и коэффициентов? И в каком месте у меня ерунда? ;О) ЗЫ 24х24 выполняется за 45 тактов, значить МАС будет под 60тактов. Не смертельное увеличение. Особенно, если ИХ фильтра симметричная.
|
|
|
|
|
Jan 12 2006, 22:44
|

Гуру
     
Группа: Свой
Сообщений: 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тактов. Не смертельное увеличение. Особенно, если ИХ фильтра симметричная. Ваша методика расчета кол-ва операций способна меня удивить, ей-богу (если Вы ее, конечно, обнародуете). Мне все же кажется, что лучше вернуться к предмету обсуждения данной темы.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Jan 13 2006, 07:30
|

Участник

Группа: Свой
Сообщений: 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 мм распаять ручками невозможно. Подскажите, может плохо искал?
|
|
|
|
|
Jan 13 2006, 07:51
|
Знающий
   
Группа: Свой
Сообщений: 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 на плате.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|