Цитата(Make_Pic @ Nov 4 2010, 11:23)

Предложите ваши алгоритмы не зависящие от формы сетевого напряжения
Соглашусь с плавником, вопрос несколько некорректен. Но, как нистранно, мне понятен.
Сигнал нужно чистить - это полюбому.
Пишу вкраце чтобы суть раскрыть:
1) Сигнал поступает с ТТ на аналоговый фильтр невысокого порядка (2-3)
2) Оцифровывается с частотой порядка 50 кГц (у меня так было)
3) Затем децимация до частоты дискретизации порядка 5 кГц (несколько фильтров)
4) Фильтрация полосовым БИХ-фильтром
5) Находим пересечения нуля для сигнала с выхода полосового фильтра
5.1 интерполируем сигнал вблизи пересечений нуля, что позволит более точно локализовать пересечение
5.2 полученные точки позволяют чс нужной точностью оценить период
Ну а по периоду несложно и частоту найти.
У меня частота считалась раз в 2 периода. А затем усреднялась за более длинный интервал.
Для нахождения всех параметров алгаритма необходимо определится с диапазоном измеряемой частоты (что влияет на длинну массива для накопления 2 периодов) и точностью нахождения частоты(влияет на множитель интерполяции)
Кое-что возможно упустил. И термины возможно свои придумал))
Но этот алгоритм протестирован и работает.
P.S. Можно находить максимум фурье, интерпорировать вблизи максимума и точно находить частоту (этот метод я не пробовал, но он должен быть более помехоустойчив)