Q-ti

Прошу помощи в обработке сигнала в реальном времени avr

12 сообщений в этой теме

Q-ti    3

Всем добрый день . Есть такой сигнал который подаю на ацп 32атмеги . Нужно измерять частоту от 20 до 150Гц этого сигнала в реальном времени и выводить на lcd . Помогите с реализацией этой задачи .
Я так понимаю надо рыть в сторону быстрого преобразования Фурье или есть другие способы ?

3.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    624

Так тебе надо частоту измерять или частотный спектр? Чуть усилить, подать на вход таймера и измерять уже без проблем цифровым способом. И ещё зависит от того насколько быстро и точно надо выдавать результат - если 1Гц и 1с времени на измерение достаточно, тогда можно просто считать количество импульсов за период, если надо быстрее - тогда измерять период и выполнять деление 1/T потом пропустить через простейший оконный усредняющий фильтр и хоть на стрелочный прибор подавай.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость MagicianT   
Гость MagicianT

Альтернативный вариант для БПФ - кросскореляция. Обеспечивает максимальную точность (кстати требования надо сразу указывать), но он ресурсоёмкий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559
4 часа назад, Q-ti сказал:

Нужно измерять частоту от 20 до 150Гц этого сигнала

"Этот сигнал" - 1 Кгц. Что значит частота 20...150 Гц ЭТОГО сигнала ? Какого "этого" и причём тут 20...150 ?
И что в Вашем понятии "реальное время" ? Это как ?

По подробнее можете описать задачу ? Из Ваших слов вообще ничего не понятно. Какие то отрывки мыслей, а не описание задачи...

 

PS: Ну и, собственно, самый главный вопрос - какую помощь от нас ждёте ? Чем конкретно помочь ?
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Q-ti    3

На картинке да частота 1кГц но она может быть и меньше например 100Гц.

Допустим есть микрофон подключённый к ацп который может измерять ~ от 0 и до 20кГц .

А мне нужно измерять частоту в приделах от 20 до 150Гц и выводить на lcd .

Из этого всего как я понимаю нужно отфильтровать всё что выше 150Гц , а всё что ниже выводить на lcd с частой обновления 1с.

Прошу может кто писал подобный проект поделится исходником .

На просторах интернета я нашел то что мне нужно но там передача по uart , возможно кто то поможет править код так как для меня  в нем трудно разобраться .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Загрузка...
Alex    559

Вам нужен обычный частотомер, на входе которого лог. уровни (без АЦП). Ищите примеры или проекты с кодом.
А синус в прямоугольники, как уже сказали выше, переводите обычным усилителем. Хотя бы на том же ОУ. На нём, заодно, и фильтр сделаете.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexeyslav    624

Боюсь не всё так просто. Во-первых, одна только задача вырезать всё начиная со 150Гц довольно трудно будет реализовать. Обычный фильтр что RC что LC даёт ослабление только 6дб/октаву, а чтобы достаточно хорошо отфильтровать "ненужное" понадобится фильтр не менее 6-7 порядка а там уже схема довольно громоздкая выходит на операционниках.

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

Но что-то мне подсказывает что не измерять частоту вам надо, а выводить спектральное распределение в указанном диапазоне частот. Ибо к примеру сигнал с микрофона нифига не одночастотный и что там частотомер намеряет за секунду... А если там будет двойной сигнал на 50Гц и 86Гц... что счетный частотомер покажет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Q-ti    3

А вот мне тоже интересно что покажет . Пока буду без фильтров пробовать , а там будет видно ибо БПФ для меня тёмный лес .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    559
51 минуту назад, Q-ti сказал:

А вот мне тоже интересно что покажет

Ерунду он вам покажет. Ибо мы так и не услышали ничего ни о форме входного сигнала, ни что вы собрались измерять в нём, ни .... Одни только догадки...
Боюсь, Вы сами с трудом понимаете, что Вам нужно. Отсюда и объяснить нормально не можете.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Q-ti    3

Совершенно верно , таким образом ничего толком не получилось .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гость MagicianT   
Гость MagicianT

И не удивительно что не получилось. Я предлагал метод кросс-кореляции, математика предельно проста

for(i=0; i < len; i++)
  {
    sum = 0;
    for(k=0; k < len-i; k++) sum += (rawData[k]-128)*(rawData[k+i]-128)/256;
  }

Тут называется авто-корреляция, наверно правильнее, но разницы особой нету как называть.  

http://www.akellyirl.com/reliable-frequency-detection-using-dsp-techniques/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сообщения

    • Разбираюсь с входами подскажите подтяжка к + и - это с внутренним резистором или нет? //вход с подтяжкой к + GPIOA->CRL &= ~GPIO_CRL_CNF0; GPIOA->CRL |= GPIO_CRL_CNF0_1; GPIOA->ODR |= GPIO_ODR_ODR0;   //вход с подтяжкой к - GPIOA->CRL &= ~GPIO_CRL_CNF1; GPIOA->CRL |= GPIO_CRL_CNF1_1; GPIOA->ODR &= ~GPIO_ODR_ODR1;
    • Гость иван
      у меня еще два кольца вместе склеенных лежит, Методом подбора витков, оно затребовало 15+ 15,,, мотал я его заводским жгутом от петли размагничивания монитора Там ооочень плотно скручена жила, Я его испытывал,  осцилограмма чистейшая,,,, но хх у него 400ма Зараза Вот и думаю, может хрен с ним с этим хх? да поставить лучше кольцо? инвертор то, на 1,5киловатта
    • А конденсатор сетевого выпрямителя поменяли? Может он просто высох, вот и держит напругу стабилизация только на верхушках синусоиды сети, а в ямах проваливается, не хватает запаса на кондёре?
    • В общем разобрался со всеми проблемами: 1 которая была раньше (контролер прошивается но не стартует) решилась заменой STM. 2 неработал генератор - капелька припоя закотилась под 5 и 6 ножку контролера и зекоротила кварц.
    • просто широким жалом "отвертка" прогревается все 4 пина с одной стороны, с торца - скальпель или тонкую отвертку, приподнял одну сторону, взял пинцетом ИС - с другой стороны только коснуться "отверткой-жалом" и соик-8 снят ... сколько так ЕЕПРОМ-ок 24-х в свое время снято было без фена и т.п. ...
    • Гость иван
      Если разбить перевичку, то вторая плечо будет длиннее провод, несиметрия получится, А вот намотать ее между двух половин вторички, ,,  хмм, Это более реально, Хотя плохая связь между обмотами, может быть изза микрозазора в сердечнике Я то его на краску посадил
    • Нам - и даром не нужно ... тебе - сказали куда ходить!