Tim's site Это страничка Тима.

Измерение частоты сигнала генератора

Для измерения частоты генерации можно использовать звуковую карту компьютера.
  • Первое, что необходимо сделать это подключить генератор ко входу компьютера. Т.к. уровень сигнала генератора может быть достаточно велик необходимо поставить между выходом генератора и входом звуковой карты резисторный делитель напряжения.
  • Второе, это написать программу для измерения частоты сигнала. Провести измерение частоты сигнала можно разными способами. Ниже описан алгоритм дающий хорошую точность при невысокой сложности.
Допустим мы должны измерять частоту со скоростью N раз в секунду. Тогда мы должны анализировать сигнал на интервалах 1/N секунды. Этот интервал это размеры "скользящего окна". Окно движется вдоль сигнала, анализируются только данные попавшие в окно. Выделив полупериоды сигнала полностью попадающие в окно мы можем определить частоту по формуле:
f = 0.5 * n / dt     ( 1 ),
где f - частота сигнала, n - число полупериодов, dt - длительность полупериодов. Очевидно что
dt < 1 / N     ( 2 ) .
Грубая оценка частоты может быть получена по формуле
f = 0.5 * n * N     ( 3 )

Для постоянной частоты оцифровки t = t0 + i * h = ti . Обозначим уровень сигнала в момент времени ti как U(ti) = Ui, средний уровень сигнала Uср.
Тогда признаком начала/конца полупериода будет ( Ui * Ui + 1) <= 0

В принципе этим можно и ограничится. При определении момента начала/конца полупериода с точность до ti погрешность для формулы (1) составит:
fизм = fреальное  +- ( 2 * N * fреальное / fоцифровки )

Для формулы (3) погрешность:
fизм = fреальное  +- N

В случае когда этого недостаточно можно улучшить точность путем принятия следующих допущений:
  • Средний уровень сигнала является постоянным Uср = const
  • Уровень сигнала в промежутках между отчетами определяется линейной интерполяцией соседних точек.
Тогда момент начала/конца полупериода может быть уточнен по формуле:
t = ti + (Uср - Ui) * h / ( Ui + 1 - U i)     ( 4 )
Далее полученные значения t используют для вычисления dt и вычисляют частоту по формуле (1).

Пример сигнала
На графиках приведен пример уточненного расчета. Для простоты вычислений размер окна принят кратным шагу оцифровки (20 интервалов). Показано 2 положения окна (первое - границы показаны красным, второе - границы желтые - 5-ю отсчетами позже). Средний уровень сигнала - 10. Уточненное время начала/конца полупериода показано лазуревым.
В первом окне оказалось 6 полупериодов ( n = 6 ), и dt = 24.45 - 6.9 . Во втором 5 полупериодов (n = 5), и dt = 27.2 - 12.7.





Hosted by uCoz