kkobru 0 16 мая, 2018 Опубликовано 16 мая, 2018 · Жалоба Добрый день! Передо мной стоит такая задача - MSP430 с тактовой частотой 20МГц собирает данные с трёх оптических каналов со скоростью 1000Гц. Данные имеют выраженную наводку 50Гц и высокочастотные шумы. Сбор данных производится в прерывании. Мне нужно получить сигнал на выходе с частотой 10Гц, из которого убраны все помехи. С алгоритмами ЦОС я не знаком, вычислительная мощность слабая. Что посоветуете? Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 5 16 мая, 2018 Опубликовано 16 мая, 2018 · Жалоба Советую вам промоделировать в матлабе , заодно уточнив такие нужные параметры как подавление за полосой, сама полоса сигнала и т.д. http://www.dsplib.ru/contentfilters.html (и вам нужен ФНЧ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kkobru 0 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба К сожалению, мне там ничего не понятно. Есть ли пример кода? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kovigor 6 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба К сожалению, мне там ничего не понятно. Есть ли пример кода? Лет 10 назад попал в такую же ситуацию, что и вы - нужен ЦФ, а я никогда этим не занимался. Я сделал вот что: - Почитал книжку Сергиенко, ту часть, где пишут про ЦФ. Мне хватило КИХ - фильтра. И еще, у него очень приятно описано, как работать с МатЛаб'ом и строить в нем ЦФ, и как их затем моделировать. Начать советую именно с Сергиенко - почитайте теорию, синтезируйте посредством МатЛаб пару-тройку ЦФ и в этом же МатЛаб их поисследуйте, и тогда вам станет понятно, как их программировать. http://www.studmed.ru/sergienko-ab-cos-cif...248baaee64.html - Почитал вот этот апп.ноут: http://www.electroscheme.ru/datasheet/ATME...0with%20AVR.pdf - И вот этот материал: http://www.analog.com/en/analog-dialogue/a...simplified.html Там есть пример ЦФ на Си, правда, БИХ, а не КИХ. Была еще статейка каких-то индийских специалистов по обработке кардиограммы с помощью ЦФ. Там был очень удачный пример и код на Си. Но это было давно, я не могу вспомнить название. Сегодня вечером буду дома и попробую порыться в архивах, если будет время. И еще апп. ноут, там внутри ссылочка на исходники: http://www.ti.com/lit/an/slaa486a/slaa486a.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 77 22 мая, 2018 Опубликовано 22 мая, 2018 · Жалоба 20МГц на 3 канала по 1кГц это 6666 тактов на каждый отсчёт, за это время сделать с сигналом что угодно можно. даже преобразование Фурье, зануление всех частот выше 10Гц и преобразование обратно. хотя начать надо с требований к фильтру, "убраны все помехи" - не годится. потом можно попробовать простые бих фильтры первого порядка: y += (x-y)/K или простое усреднение по 20 точкам, чтобы 50Гц заодно задавить, этого может и хватит. если нет, потом можно почитать про cic фильтры, они довольно простые, несколько сложений/вычитаний. https://github.com/EsonJohn/CIC-filter - не самый удачный пример для msp430, но уж какой под руку попался, динамическое выделение памяти, произвольную длину фильтра и вообще плюсы убрать, останется несколько сточек. у аналоговых девайсов вроде неплохой букварь был "Mixed signal and dsp design techniques" ну ещё есть вариант взять какой-нибудь qedesign, задать в него параметры фильтра, и получить готовые коэффициенты, он там вроде даже какой-то C код генерить умел, если вылечить от жадности, не помню только как там насчёт целочисленной арифметики. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться