Q

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

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

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

3.jpg

0

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


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

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

0

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


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

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

0

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


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

Мне нужна частота , достаточно обновления 1раз в секунду .

0

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


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

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

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

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

 

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

0

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


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

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

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

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

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

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

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

0

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


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

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

0

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


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

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

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

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

0

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


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

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

0

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


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

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

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

 

0

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


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

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

0

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


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

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

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/

0

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


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

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

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

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

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

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

Загрузка...

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • Сообщения

    • С чего вы взяли!? До 100000000 легко получаем любое напряжение.
    • Ну так обратного никто не говорил. Я говорил что достаточно сравнить питание и выход - этого будет достаточно и просто.
    • @KRAB, по-моему, грех - не понимать принцип действия щупа с выносным делителем и его назначение (что мы и наблюдаем в случае@dimanaviator), т.е. не понимать базовые принципы работы с осциллографом и более-менее высокочастотными цепями. Если же ты всё это знаешь и понимаешь, то спаять электронную часть щупа самому, действительно, не проблема. Однако, проблема возникает с изготовлением корпусов, с поиском подходящих деталей и т.д. и т.п. И все эти проблемы по стоимости могут оказаться существенно больше, чем 300 рублей, за которые готовый щуп с делителем можно купить на Али или Ебэе. Входная ёмкость осциллографа с таким щупом составляет пару сотен пикофарад. Проще говоря, прикасаясь к измеряемой цепи, вы всякий раз шунтировали её указанной ёмкостью на землю.
    • Плюс тембр блок на  CXA1352SA  Колонки буду потом собирать , надо что то одно сначала собрать , потом остальное , и в колонках особых приколюх нет, выбрал по мощности и купил вот и готово, ну или купил ещё фанеру сделал закрытый ящик набил  его стекловатой и провода хорошие все, больше там замарочек нет, тут же с блоком питания ппц, кстати 500 это запас так как потери и т.д. микруха жрет 110 ватт максимум но её КПД около 60% т.е. на выходе я буду иметь порядка 60-70 ватт это не чертовски много но очень хорошо по сравнению с тем что я имею ... А именно простую авто магнитолу подключенную  к блоку питания от компа , и на ней 4 колонки которые она вообще не раскачивает или если делать звук громче то кооэфициент нелинейных искажений ппц какой и часть звука срезается так как основная микросхема не может дать больше 4x40 хоть и написанной 4x45 , поэтому хочу собрать хорошую музыку и чтоб усилитель не выкручивать на 100% а на 70% так как звук будет но будет просто орать дудуть и ...все остальное, возможно я возьму 2 транса по 250, у меня нет опыта в номотке,транса возможно я буду искать в своём городе может конечно буду пробовать сам, но у меня есть желание от которого я не могу сидеть на месте ,  Чтобы пробить стену лбом надо ,много лбов , или разбег по больше ,  Я по первой конечно думал что размеры будут куда скромнее , и хотел сделать как бы переносную акустику и тоскать за собой, но это уже не критично , будет стоять в зале (зал на 27 квадратов )  и длинные провода к динамикам  чтоб по ближе к окну можно протащить  Спасибо за понимание и помощь всем, просто мне нужен блок пининия , я не понимаю , ну или мало что понимаю, по этому прошу вас помочь , 
    • Сами возим и растомаживаем. Мы хотим сделать доступный магазин компонентов, где любой сможет купить от 1 штуки в забугорье, или если нужно у наших партнёров в России.
    • Резистор не менее чем 0,5Вт.