|
|
  |
какие есть алгоритмы измерения частоты? |
|
|
|
Dec 29 2009, 17:21
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
Из книг я узнал, что есть дискретный метод (или средних значений),собственно который реализовал на МК, и при неизменной/малоизменной длительности он точно измеряет частоту сигнала. Сигнал с генератора идет на АЦП практический идеальный, но когда я тот же алгоритм применяю для реального сигнала с датчика он показывает плохие результаты. Дело в том, что сигнал с датчика меняется как по амплитуде, так и по длительности. В результате чего частот просто "плывет" и неточна. Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах.
Заранее спасибо!
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 29 2009, 20:04
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sneg_87 @ Dec 29 2009, 20:21)  Уважаемые формурчане, подскажите методы//алгоритмы по измерению частоты при таких сигналах. Каких? Задача крайне расплывчата, единого решения нет. Попытайтесь сузить ее для Вашего случая. Вариант 1: Полностью опишите Вашу систему - датчик, ацп, МК, и что Вы с ними делаете. Вариант 2: Математически опишите Вашу проблему - спектр Вашего сигнала (форма сигнала?, частота у Вас меняется?), спектр или вид аддитивной помехи(если есть), спектр или вид мультипликативной помехи(вероятно есть, если сигнал меняется). И, конечно, диапазон изменения измеряемой частоты и желаемую точность. А что показывает промышленный частотомер, вот в Москве на Царицынском рынке 1500р китайский стоит (HC-F2400L до 2.4GHz). Чем подробнее описание, тем более правильный ответ получите.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Dec 30 2009, 08:24
|

Участник

Группа: Участник
Сообщений: 41
Регистрация: 12-10-09
Пользователь №: 52 882

|
Цитата(Microwatt @ Dec 29 2009, 23:08)  Если Вы измеряете частоту, то при чем тут амплитуда или длительность сигнала, его форма вообще? частота измеряется как среднее по длительности нескольких периодов сигнала Амплитуда (значения оцифрованных данных с датчика) используются для определения среднего значения или постоянной составляющей, потому что она не равна 0. Принцип измерения частоты подобен компаратору: при значении с АЦП выше среднего МК начинает считать длительность импульса Для генератора среднее значение не меняется, как и длительность. Для данных с датчкиа меняется и то, и другое.
--------------------
coding, кодинг, koDinГ, copyriting, printing ....
|
|
|
|
|
Dec 30 2009, 16:14
|

Знающий
   
Группа: Участник
Сообщений: 626
Регистрация: 3-12-07
Пользователь №: 32 910

|
Цитата при значении с АЦП выше среднего МК начинает считать длительность импульса Странный у Вас метод измерения. Обычно измеряют длительность периода следования, например от фронта до фронта следующего...
--------------------
|
|
|
|
|
Dec 30 2009, 19:20
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(Sneg_87 @ Dec 30 2009, 12:24)  Для генератора среднее значение не меняется, как и длительность. Для данных с датчика меняется и то, и другое. Это означает присутствие аддитивного шума(суммирующегося с сигналом). Если спектр этого шума не совпадает со спектром сигнала проще его отфильтровать. Если диапазон изменения сигнала и спектр шума сильно пересекаются - задача сложнее и может быть неразрешима теоретически. Если шум случайный может помочь увеличение времени измерения. Во всех случаях надо измерять весь период, может быть этого будет достаточно. Для точного ответа данных нечватает. Например если Вы имеете мощный процессор и много времени на измерение, то сделайте БПФ на 20000 точек и выберите частоту с максимальной амплитудой.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
Dec 31 2009, 07:01
|
Частый гость
 
Группа: Участник
Сообщений: 161
Регистрация: 22-06-09
Из: Москва
Пользователь №: 50 531

|
Цитата(blackfin @ Dec 30 2009, 23:50)  Real_Freq_Est Если необходима высокая точность оценки частоты, а для применения оптимальных методов из Real_Freq_Est явно нехватает вычислительных ресурсов, может помочь следующий метод. 1. Взять выборку сигнала не менее 5 периодов и не менее 64 сэмплов. 2. Применить окно Гаусса. 3. Получить спектр в логарифмическом масштабе. 4. Найти частоту с максимальной амплитудой. 5. Взять 2 - 4 значения спектра около найденной частоты, интерполировать участок спектра многочленом, найти максимум. У Меня получалась точность порядка 2*10-4. И можно добиться любой точности одновременно увеличивая чмсло периодов и количество сэмплов.
--------------------
Ты можешь знать все что угодно, но пока ты не доказал это на практике, ты не знаешь ничего!© Ричард Бах
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|