|
Измерение частоты сигнала генератора
Для измерения частоты генерации можно использовать звуковую карту компьютера.
-
Первое, что необходимо сделать это подключить генератор ко входу компьютера. Т.к. уровень сигнала генератора может быть достаточно велик необходимо поставить между выходом генератора и входом звуковой карты резисторный делитель напряжения.
-
Второе, это написать программу для измерения частоты сигнала. Провести измерение частоты сигнала можно разными способами. Ниже описан алгоритм дающий хорошую точность при невысокой сложности.
Допустим мы должны измерять частоту со скоростью 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.
|