Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: какие есть алгоритмы измерения частоты?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Sneg_87
Из книг я узнал, что есть дискретный метод (или средних значений),собственно который реализовал на МК, и при неизменной/малоизменной длительности он точно измеряет частоту сигнала.
Сигнал с генератора идет на АЦП практический идеальный, но когда я тот же алгоритм применяю для реального сигнала с датчика он показывает плохие результаты. Дело в том, что сигнал с датчика меняется как по амплитуде, так и по длительности. В результате чего частот просто "плывет" и неточна.
Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах.

Заранее спасибо!
Microwatt
Цитата(Sneg_87 @ Dec 29 2009, 20:21) *
Дело в том, что сигнал с датчика меняется как по амплитуде, так и по длительности. В результате чего частот просто "плывет" и неточна.
Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах.

Заранее спасибо!

Если Вы измеряете частоту, то при чем тут амплитуда или длительность сигнала, его форма вообще?
SPACUM
Цитата(Sneg_87 @ Dec 29 2009, 20:21) *
Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах.

Каких?
Задача крайне расплывчата, единого решения нет. Попытайтесь сузить ее для Вашего случая.
Вариант 1: Полностью опишите Вашу систему - датчик, ацп, МК, и что Вы с ними делаете.
Вариант 2: Математически опишите Вашу проблему - спектр Вашего сигнала (форма сигнала?, частота у Вас меняется?), спектр или вид аддитивной помехи(если есть), спектр или вид мультипликативной помехи(вероятно есть, если сигнал меняется).
И, конечно, диапазон изменения измеряемой частоты и желаемую точность.
А что показывает промышленный частотомер, вот в Москве на Царицынском рынке 1500р китайский стоит (HC-F2400L до 2.4GHz).
Чем подробнее описание, тем более правильный ответ получите.
sevstels
>> Сигнал с генератора идет на АЦП практический идеальный
Вероятно есть смысл избавится от АЦП и подать через ограничитель прямо на порт таймера. wink.gif
Sneg_87
Цитата(Microwatt @ Dec 29 2009, 23:08) *
Если Вы измеряете частоту, то при чем тут амплитуда или длительность сигнала, его форма вообще?

частота измеряется как среднее по длительности нескольких периодов сигнала
Амплитуда (значения оцифрованных данных с датчика) используются для определения среднего значения или постоянной составляющей, потому что она не равна 0.
Принцип измерения частоты подобен компаратору: при значении с АЦП выше среднего МК начинает считать длительность импульса
Для генератора среднее значение не меняется, как и длительность. Для данных с датчкиа меняется и то, и другое.
AsJohnAs
Вообще имеется куча способов измерения. А используют они обычно два принципа, вместе или по отдельности:
1. Частота является производной от полной фазы (http://ru.wikipedia.org/wiki/Частота)
2. Метод максимального правдоподобия (http://ru.wikipedia.org/wiki/Метод_максимального_правдоподобия)
Gyga
Амплитуду можно обрезать. вычесть постоянную составляющую. А нареальном сигнале может присутствовать несколько синусоид одновременно?
mdmitry
Существуют различные методы измерения частоты и периода сигнала.Частоту низко- и высокочастотных сигналов измеряют разными методами. Посмотрите идею работы электронно-счетного частотомера. В книгах по радиоизмерениям можно посмотреть. Например, Б.В. Дворяшин. Метрология и радиоизмерения. Гл.9.
sevstels
Цитата
при значении с АЦП выше среднего МК начинает считать длительность импульса

Странный у Вас метод измерения.
Обычно измеряют длительность периода следования, например от фронта до фронта следующего...
SPACUM
Цитата(Sneg_87 @ Dec 30 2009, 12:24) *
Для генератора среднее значение не меняется, как и длительность. Для данных с датчика меняется и то, и другое.


Это означает присутствие аддитивного шума(суммирующегося с сигналом). Если спектр этого шума не совпадает со спектром сигнала проще его отфильтровать. Если диапазон изменения сигнала и спектр шума сильно пересекаются - задача сложнее и может быть неразрешима теоретически.
Если шум случайный может помочь увеличение времени измерения. Во всех случаях надо измерять весь период, может быть этого будет достаточно. Для точного ответа данных нечватает. Например если Вы имеете мощный процессор и много времени на измерение, то сделайте БПФ на 20000 точек и выберите частоту с максимальной амплитудой.
blackfin
Цитата(Sneg_87 @ Dec 29 2009, 20:21) *
Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах.

Real_Freq_Est
SPACUM
Цитата(blackfin @ Dec 30 2009, 23:50) *
Real_Freq_Est

Если необходима высокая точность оценки частоты, а для применения оптимальных методов из Real_Freq_Est явно нехватает вычислительных ресурсов, может помочь следующий метод.
1. Взять выборку сигнала не менее 5 периодов и не менее 64 сэмплов.
2. Применить окно Гаусса.
3. Получить спектр в логарифмическом масштабе.
4. Найти частоту с максимальной амплитудой.
5. Взять 2 - 4 значения спектра около найденной частоты, интерполировать участок спектра многочленом, найти максимум.
У Меня получалась точность порядка 2*10-4. И можно добиться любой точности одновременно увеличивая чмсло периодов и количество сэмплов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.