LINUX.ORG.RU

Сообщения BaRaGoZ

 

Выделение низких частот(2-6Гц) сигнала при помощи ДПФ

Форум — General

Есть задача: МК обрабатывает данные с акселерометра, сбор данных происходит каждые 2мс, отсчеты собираются в течении 1с, те 500(можно 512, если использовать БПФ) за 1 секунду. Далее необходимо найти уровни сигналов с частотами от 2-5 Гц, после чего принимается решение о превышении уровня сигналов допустимого значения. Делаю так: набираю массив данных в течение 1с, затем отсчеты скидываются по КОМ-порту на ПК в Матлаб. Затем полученные отсчеты прогоняю через FFT и на выходе должен увидеть спектр частот. Все прекрасно работает если частота воздействия на акселерометр от 100 Гц и выше(более 250Гц не проверял). Но если воздействую на акселерометр с частотой примерно 2-6 Гц, то в спектре эти частоты практически «не выделяются», вот картинка(1 график-исходный сигнал,2график-после FFT ф-ии): http://sb.uploads.ru/qsm8r.png Причем воздействие видно даже визуально+амплитуда сигнала воздейтсвия много выше уровня шума! Попробовал просто «вырезать» шум, те в коде программы просто делаю (если noise_min<=сигнал<=noise_max, то сигнал = 0), тогда ситуация улучшилась, и сигналы нужных частот стали видны в спектре, сделал я это как то интуитивно, из-за того что уровень амлитуды определенной частоты - это энергия сигнала данной частоты на 1ом графике, а там визуально видно, что воздействие хоть и отчетливое, но уж очень кратковременное и по сравнению с энергией шума, его энергия мала. Поэтому не знаю насколько такое решение правомерно и как оно будет работать в общем случае, те в разных условиях и не понятно какие границы шума обрезать и тд. В связи с этим появились вопросы: 1)Возможно ли при таком исходном сигнале выделить низкие частоты, если да то как? 2)Надо ли обрабатывать дополнительно исходный сигнал, до преобразований Фурье, если да, то как грамотно это сделать?

BaRaGoZ
()

RSS подписка на новые темы