|
|
  |
Как определить частоту сигнала, используя микроконтроллер MSP430F1611 |
|
|
|
Jul 15 2010, 09:16
|
Группа: Участник
Сообщений: 8
Регистрация: 15-07-10
Пользователь №: 58 460

|
Не могу определить частоту сигнала с датчика. Датчик мереет ускорение, на выходе у него цифровой сигнал. Максимальная частота дискретизации 3200 Гц. Полезный сигнал находится в диапазоне 0 - 80Гц. В схеме используется микроконтроллер MSP430F1611, который собственно и измеряет частоту. Раньше использовался аналоговый датчик сигнал с которого оцифровывался с частотой 10 кГц. Накапливался буфер с 2000 отсчетами, отфильтровывался и пропускался через компаратор который детектировал переходы через 0. Вобсчем то частоту определял достаточно верно, но с переходом на новый датчик такой алгоритм не устраивает. Из за малой частоты дискретизации возникает большие погрешности. Как более точно рассчитать частоту сигнала?
|
|
|
|
|
Jul 16 2010, 07:23
|
Группа: Участник
Сообщений: 8
Регистрация: 15-07-10
Пользователь №: 58 460

|
rezidentСпасибо за ответ, только я наверно неправильно задачу поставил, или вы меня не поняли. Сигнал с датчика приходит по интерфейсу SPI. В самом датчике Имеется АЦП с максимальной частотой дискретизации 3200Гц. Тоесть я накапливаю отсчеты некого сигнала (синусоида, с шумами, которая проходит простенький НЧ цифр. фильтр), а потом с помощью этого буфера надо рассчитать период этого сигнала. Дык вот тут то и вся загвоздка. Этот вопрос скорей всего к математике относится  . Так что таймер тут не поможет
|
|
|
|
|
Jul 16 2010, 09:04
|
Группа: Участник
Сообщений: 8
Регистрация: 15-07-10
Пользователь №: 58 460

|
MrYuranНу я так и делаю, ток опять же говорю, частота маловата, а увеличить не могу. Думаю может провести какую аппроксимацию в точках ближайших к 0.  . Ну а в системе нет ничего санного, к МК подключен акселерометр ADXL345, с целью измерения вибрации
|
|
|
|
|
Jul 16 2010, 12:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528

|
Цитата(EasenMan @ Jul 16 2010, 16:04)  MrYuran Ну я так и делаю, ток опять же говорю, частота маловата, а увеличить не могу. Думаю может провести какую аппроксимацию в точках ближайших к 0. А почему бы и нет? Вблизи нуля кусок синуса можно аппроксимировать вообще полиномом 1-й степени, путём минимизации среднеквадратичной ошибки. Для этого случая нужные формулы вообще на бумажке выводятся и насчитывать там, насколько помню нужно только сумму отсчётов и сумму квадратов отсчётов, дольше всё вычисляется. Нужно только для начала хотя бы грубо оценить период чтобы попасть в окрестность, далее медленные изменения частоты уже можно отслеживать системой типа ФАПЧ.
--------------------
Russia est omnis divisa in partes octo.
|
|
|
|
|
Jul 17 2010, 13:12
|
Участник

Группа: Участник
Сообщений: 29
Регистрация: 31-05-06
Пользователь №: 17 639

|
Цитата(rezident @ Jul 16 2010, 15:01)  EasenMan, действительно, ваш вопрос относится к методам обработки сигнала и MSP430 тут не при делах. Если только учитывать его ограниченные ресурсы при выборе методов фильтрации. Точно, можно и спектр посчитать. Хотя так и не понятно какая нужна погрешность. Если диапазон 5..95 Гц и погрешность 0.1 Гц, то Mega8 (ближайший из авр-ок к MSP430F1611) 12MГц считает ~2.5 сек, а LPC1114 считает ~0.3 сек
|
|
|
|
|
Jul 18 2010, 17:50
|
Группа: Участник
Сообщений: 8
Регистрация: 15-07-10
Пользователь №: 58 460

|
Диапазон в районе 10-80 Гц. Допустима погрешность 0.1 Гц. Скорость обработки критична, т.к. информация выводится на дисплей, с частотой 1 Гц (можно конечно и увеличить, но не желательно). Попробую использовать систему с ФАПЧ, дабы грубо определить период возможно. Можно конечно определить спектр, но сдесь опыта нет , придется книжки читать
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|