[DSP] Выбор метода синтеза КИХ-фильтра.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

fд будет 80 Гц. Аналоговый ФНЧ перед АЦП имеет частоту среза 30 Гц. Это значение, выше которого нам спектр неинтересен. После АЦП КИХ-фильтр программный, хочется подавить ложные составляющие на fN. Потом будет какой-то переход в частотную область. Скорее всего- Хартли, т. к. не требует комплексных вычислений.

Суть вопроса- обычно фильтр рассчитывал либо в MatLab, либо одной из программ прямого синтеза, благо их тоже хватает неплохих. Но есть ещё субоптимальный метод синтеза при помощи окна с косинусоидальным сглаживанием. Кто пробовал на практике и то, и то? Какие нюансы, плюсы-минусы? Будет восьмибитная ATmega, по времени успеваю, но по уровню- нет, мне нужно больше, чем 256 значений, так что будут 16-битные (реально 10-битные) целочисленные отсчёты.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

відмінність між 8-бітною математикою та 32-бітною/16-бітною на операціях множення/ділення. справа у часі...: о)

так, але коли ресурсів достатьно, а мережевий сервер додавати не плануеться — саме як у цьому випадку — Meg’и буде більш ніж достатньо.

завести на вхід АЦП землю і весело дивитися як стрибають 2 молодші розряди. Особливість мег — робота або у 10-бітному режимі, або у 8-бітному.
Я знаю як працює Mega. І те що ті розряди там стрибають. Так от як їх зрізати, Ви не отримаєте вирізання тих стрибків. На перший погляд це здається досить дивно, та коли декілька разів прочитати те що я наводив у пості вище у тихій кімнаті о вечірній годині — просвітлення прийде. Просто дійсно Mega це й для заміру напруги на батарейках — для цього й придумали режим 8 біт ADC. Але ж товариш далі щей блочну згорку нащось планує — це що до розрядів також — їх що 8 що 10 потрібно буде множити на тригонометрічну функцію, а потім іще після кожного множення — маштабувати. Виграш в бітах щезне (добуток функцій), а нелінійне перетворення буде досить чутливе для сигнала в пару розрядів.

... мммм... ну не знаю, здається я пояснив з двома незалежними величинами досить вдало, просто треба посидіти подумати, пригадати як працюють однобітні ADC, та суперечки на electronix’і раз тут усі свої.

економія ОЗП. нічого особистого — це бізнес©

так не буде її коли справді далі фільтри та перетворення — буде великий розмін на точність яку в свою чергу будуть якимось чином збільшувати.

Мосье!
Конечно намного интересней быть воинствующим философом, чем практикующим инженером

Ой, друже, не заздріть чужому щастю — у кожного свій шлях (те що Ви з electronix’у я вже здогадався:)

Собсно весь пост говорит о том, что вы батенька не разу не держали в руках, ни ATMega, ни ADuC, ни MSP. Да и в даташиты на них вряд ли заглядывали.

Сарказм — на жаль ще не ознака правоти. Хоча в чомусь Ви праві я майже не знайомий з — ADuC та MSP. А от з AVR колись був досить знайомий — у мене навіть документація російською на них є — DataSheets:). Щей перше в житті RealFFT я для нього писав:). Знайомий також з ARM7 LPC2xxx (нажаль не останніх «крутих» моделей) та BlackFin532 (теж перевертнем — хоч DSP, хоч крутий мікроконтроллер, а хоч процессор для мережевої OS). Та не в знайомстві діло — тут спочатку робиться принципова помилка -, а потім ретушуватиметься перетвореннями тому що автору захотілось поексперементувати.

Я вообще-то о методе синтеза фильтра спрашивал.

...з цього місця я не второпав. У Вас є АНАЛОГОВИЙ фільтр на вході? Якщо є — пршу вибачення, я просто тоді не зрозумів призначення цифрового...

Интересовался реальным опытом тех, кто пробовал и так, и так.

Є досить відома безплатна утіліта — для такого рівня проекту саме те (не сарказмую) Там навіть є режим — 8 біт. Можу підкинути ще фільтрСолюшен — 8-ий чи такий як на electronix’і. Це що до практики. Чи Ви збираєтесь його MatLAB’ом обраховувати?

В чём проблема с частотой среза?

незрозуміло як Ви з нею боретесь.

Чем пугает нелинейная обработка?

просто тут вона паразитна — недоречна.

Неужели желание попробовать интересный мне способ в разработке, выполняемой для меня и за мои деньги- такой уж большой грех?

Ну знаєте, я здається у Вас гроші не відбираю — просто даю поради в міру своїх скромних талантів. Потрібно все робити правильно — доречно, оптимально. Ато хто зна — заробите грошей на метирології та й гайда розробляти медичну аппаратуру для Києвських лікарнь, а я, після завітання до однієї з них, вже з того світу не зможу пояснити що обрізання 2-х бітів це не боротьба з завадами: -D.

К словам eugene_n могу добавить лишь то, что ЦОС- это не PHP и не фреймворк. Можно перелопатить кучу литературы, заучить сотню умных слов, но ни один Рабинер, даже в паре с Голдом не расскажет как пройти путь от мимолётной фантазии хотя бы до опытного образца.

eugene_n просто хотів таким чином привітатись. А про php це Ви даремно. Я «не пА этим делам»:). До тогож я не ботанік-теоретик — не стільки читав скільки «від фантазії до прототипа», почалось давно ще з короткохвильового радіоаматорства.

Вобщем это... Мы передумали. Извернулись, теперь два канала есть. Один по частоте, другой по уровню. Уже чуть легче.

фільтри ще потрібні?... Ну аналогові надіюсь є.

Я вообще-то о методе синтеза фильтра спрашивал. Интересовался реальным опытом тех, кто пробовал и так, и так. Попутно выслушал несколько интересных замечаний, всем спасибо. Но тема, как говорится, не раскрыта.
В чём проблема с частотой среза? Чем пугает нелинейная обработка? Неужели желание попробовать интересный мне способ в разработке, выполняемой для меня и за мои деньги- такой уж большой грех?
К словам eugene_n могу добавить лишь то, что ЦОС- это не PHP и не фреймворк. Можно перелопатить кучу литературы, заучить сотню умных слов, но ни один Рабинер, даже в паре с Голдом не расскажет как пройти путь от мимолётной фантазии хотя бы до опытного образца.

Вобщем это... Мы передумали. Извернулись, теперь два канала есть. Один по частоте, другой по уровню. Уже чуть легче.

druid 3
Мосье!

Конечно намного интересней быть воинствующим философом, чем практикующим инженером, но все-таки я повторю для вас свой изначальный тезис:

АЦП в ATMega все-таки не сигнальные, а для всякой там температуры, напряжения на батареях, аналоговых джойстиков итп.

Собсно весь пост говорит о том, что вы батенька не разу не держали в руках, ни ATMega, ни ADuC, ни MSP. Да и в даташиты на них вряд ли заглядывали.

поганий стиль вважати нібито якщо виробник не заявив що процессор сигнальний — то вже DSP на ньому ніяк. Тим більш радити MSP430...
відмінність між 8-бітною математикою та 32-бітною/16-бітною на операціях множення/ділення. справа у часі...: о)
от дивіться, припустимо є 2-і стохастичні (бо як що сигнал детермінований то то вже не сигнал — 2 крс РТФу) величини — завада та сигнал. Означимо їх як X та Y. З вашого твердження X-Y-4 = X (тобто Y завжди = 4?). Ніяк не здогадаюсь -, а з чогоб це... Не підкажете?
завести на вхід АЦП землю і весело дивитися як стрибають 2 молодші розряди. Особливість мег — робота або у 10-бітному режимі, або у 8-бітному.
Ще одне світило Києвського ЦОСу:)... До Вас таке само запитання...
Доречі, те що Ви радите — нелінійна обробка...

економія ОЗП. нічого особистого — це бізнес©
Як кажуть — в руках майстра й табуретка — смертоносна зброя...

ніхто не сперечається. але використання DSP тут більше обгрунтоване. *відома сцена з «Індіана Джонс»*; о))

2kned

у вас программний (?!) фільтр відфільтровує частоти по за Найквістом? бравіссімо! навчіть щей мене!

А может быть все-таки поменять платформу? ADuC там или MSP430, АЦП в ATMega все-таки не сигнальные, , а для всякой там температуры, напряжения на батареях, аналоговых джойстиков итп.

поганий стиль вважати нібито якщо виробник не заявив що процессор сигнальний — то вже DSP на ньому ніяк. Тим більш радити MSP430...

Если у вас меговское АЦП с аналоговым фильтром на входе — срежте два младших разряда и не мучтесь. Все равно там собственного шума больше, чем сигнала.

от дивіться, припустимо є 2-і стохастичні (бо як що сигнал детермінований то то вже не сигнал — 2 крс РТФу) величини — завада та сигнал. Означимо їх як X та Y. З вашого твердження X-Y-4 = X (тобто Y завжди = 4?). Ніяк не здогадаюсь -, а з чогоб це... Не підкажете?

срезать 2 бита — правильно решение, все равно информативности у них почти нет, а экономия ОЗУ — в тему.
Ще одне світило Києвського ЦОСу:)... До Вас таке само запитання...

Доречі, те що Ви радите — нелінійна обробка...

4. Печальный вариант. Хочу ДПХ в реальной жизни попробовать.
Та чи означає це, що це перетворення потрібно втулити кудись попри все?

На останок, дуже відома ссилка — саморобки одного японьця elm-chan.org/ Це до того що може MEGA як DSP. Як кажуть — в руках майстра й табуретка — смертоносна зброя... elm-chan.org/...m/report_e.html

а вы уверены что выбрали правильный контроллер?

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

1. До 12 В самых что ни на есть импульсов. На крыльчатке магнит, на корпусе геркон.

Вероятно я не совсем понимаю суть вопроса, но зачем фильтровать импульсы (к тому-же 12-ти вольтовые)? Да и зачем тут вообще АЦП нужен? Почему нельзя обойтись обычным таймером и мерять временные интервалы между импульсами?

1. До 12 В самых что ни на есть импульсов. На крыльчатке магнит, на корпусе геркон.
2. В пару метров не уложусь. Это только от рабочего места до подножия мачты пара метров. Разговор о 5−7 м
3. Со шлейфами пожарной и т. п. сигнализации они работают. Буду надеяться, что и тут прокатит. А если что- это ж макет. Вкинем внешний АЦП.

4. Печальный вариант. Хочу ДПХ в реальной жизни попробовать.

1. И на выходе напряжение? Не импульсы?
2. Какой длины кабель? Если пару метров то пожалуй допустимо. Если нет включайте АЦП в разрыв.
3. И все же — забудте об АЦП Меги, как об измерительном приборе. Оно там чисто индикативное — больше-меньше. В принципе у микрочипа есть целая линейка дешевых и мелких АЦП интегрированных с опорниками и прочей термокомпенсацией.

4. Альтернативный вариант — зарезать всю переменку на аналоговом ФНЧ и не связываться с ДСП в принципе.

Дело такое, что анемометр покупной и кабель у него в комплекте. Видимо как-то ж они справились с этой задачей без оцифровки возле вертушки. А обработка будет моя. Их коробка не подходит. Вобщем, макет уже собирают.

+1

Если датчик удаленный, надо не бороться с помехой, а передавать сигнал уже в цифре.

А вариант установить АЦП у датчиков (или Cygnal или ADuC) и соединить с *что нужно* шиной? Или у вас ограничение по цене?

Я прикину насчёт выноса АЦП, спасибо. 8-битная точность меня по-любому не устроит. Градусов-то 360 всё же. Atmel утверждает, что в их режиме понижения шумов процессор прям замирает в ожидании окончания преобразования в АЦП. Вот и посмотрим. Будь у меня побольше возможностей, я б после внешнего АЦП ещё и ПЛИС воткнул, но, увы, за неимением гербовой, пишем на чём есть.

Очень надеюсь что поскольку это СНЧ, то помех у меня особых не будет. Но длина кабеля до датчиков очень недетская, поэтому, боюсь, придётся и фильтровать в цифре, и ещё много всякого чего делать. Хорошо хоть реальное время не требуется.

mega — достаточно дешевое решение., а для скорости ветра — тем более: о)

срезать 2 бита — правильно решение, все равно информативности у них почти нет, а экономия ОЗУ — в тему.

Вам «Мивину» с соусом Бешамель или соусом Болоньез? Если у вас меговское АЦП с аналоговым фильтром на входе — срежте два младших разряда и не мучтесь. Все равно там собственного шума больше, чем сигнала. И не тратьте драгоценные МИПСы на фильтрацию — Мега на это не заточена. Если же нужна метрология — тогда вынесенное АЦП и ядро от 16 бит. Ну или перечисленные выше кристаллы — там приняты специальные меры для изоляции измерительных цепей от шума процессора. Кстати именно ARM и MSP430 ветки gcc живее всех живых, хорошо поддерживаются и документируются.

Вот мне как раз и нужно показания анемометра считать. И электронщик мой с ATmega лучше знаком. Да и что там особо морочиться, 80 Гц, 10 бит, не бог весть что. К тому же средства разработки доступнее. И температуру тоже надо будет получать, но эта часть у нас уже реально применяется.

Но в любом случае речь о выборе метода синтеза фильтра.

А может быть все-таки поменять платформу? ADuC там или MSP430, АЦП в ATMega все-таки не сигнальные, а для всякой там температуры, напряжения на батареях, аналоговых джойстиков итп.

Підписатись на коментарі