реклама на сайте
подробности

 
 
13 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Измерение частоты основной гармоники (50 Гц) с точностью 0.01 Гц
Pridnya
сообщение Sep 16 2015, 08:08
Сообщение #76


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(blackfin @ Sep 16 2015, 10:28) *
Эту задачу на форуме решали уже десятки раз..

См. например:

И там ещё в окрестностях есть что почитать.. wink.gif


Спасибо! rolleyes.gif В любом случае потребуется много экспериментов, чтобы понять, как измерять, какой метод применить.
Go to the top of the page
 
+Quote Post
EvgenyNik
сообщение Sep 18 2015, 13:33
Сообщение #77


Знающий
****

Группа: Свой
Сообщений: 597
Регистрация: 24-05-06
Из: г. Чебоксары
Пользователь №: 17 402



Pridnya, если с частотой семплирования и разрешающей способностью всё понятно, то на каком минимально допустимом интервале времени (в периодах основной гармоники) Вы бы хотели измерить частоту?


--------------------
Почему разработчики систем повышенной надёжности плохо справляются с простыми проектами? :)
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 21 2015, 06:30
Сообщение #78


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(EvgenyNik @ Sep 18 2015, 16:33) *
Pridnya, если с частотой семплирования и разрешающей способностью всё понятно, то на каком минимально допустимом интервале времени (в периодах основной гармоники) Вы бы хотели измерить частоту?

Хотелось бы измерять за 1, максимум за 5 периодов. Не знаю пока сколько достаточно и на сколько достоверно будет при большом интервале, а вдуруг там какое качание частоты, поэтому хотелось бы за один период.
Go to the top of the page
 
+Quote Post
Corner
сообщение Sep 21 2015, 09:08
Сообщение #79


Профессионал
*****

Группа: Участник
Сообщений: 1 072
Регистрация: 11-12-12
Пользователь №: 74 815



Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений.
Go to the top of the page
 
+Quote Post
serjj
сообщение Sep 21 2015, 09:36
Сообщение #80


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений.

Почитайте внимательно тему.
Фурье 8192 вы собрались на мк сделать?
На частоте дискретизации, обозначенной ТС'ом в 3200 Гц, 8192 точки это 2560 мс. 1 - 5 периодов 50 Гц сигнала это 20 - 100 мс.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 21 2015, 13:59
Сообщение #81


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Corner @ Sep 21 2015, 12:08) *
Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений.

Накидайте ка на Си, а я код прогоню на ARM и оценим:
а) реализуемость;
б) время выполнения кода в целевом устройстве;
в) глубину бездны знаний. rolleyes.gif

Сообщение отредактировал Pridnya - Sep 21 2015, 14:00
Go to the top of the page
 
+Quote Post
Tiro
сообщение Sep 22 2015, 00:00
Сообщение #82


Знающий
****

Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768



Цитата(Pridnya @ Sep 21 2015, 16:59) *
Накидайте ка на Си, а я код прогоню на ARM и оценим:
а) реализуемость;
б) время выполнения кода в целевом устройстве;
в) глубину бездны знаний. rolleyes.gif


Сколько можно уже фигней страдать. Вот сюда посмотрите база сигнала
А потом положите B=1, дельта F=0.01 и вычислите дельта t. Затем примите как данность, что Вы проектируете показометр и рассчитывайте значение частоты хоть по 3 точкам на период хоть до 10 знаков после запятой.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 22 2015, 06:52
Сообщение #83


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Tiro @ Sep 22 2015, 03:00) *
Сколько можно уже фигней страдать. Вот сюда посмотрите база сигнала
А потом положите B=1, дельта F=0.01 и вычислите дельта t. Затем примите как данность, что Вы проектируете показометр и рассчитывайте значение частоты хоть по 3 точкам на период хоть до 10 знаков после запятой.


Δ t = B/Δf = 1/0.01 = 100 (секунд?). Не мойму, что-ли 100 секунд предлагается ждать? wacko.gif Подобный метод уже предлагали (если на выходе биение 0,01 Гц, то частота 49,99 Гц).
Go to the top of the page
 
+Quote Post
Santik
сообщение Sep 22 2015, 06:57
Сообщение #84


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Цитата(Pridnya @ Sep 21 2015, 09:30) *
Хотелось бы измерять за 1, максимум за 5 периодов. Не знаю пока сколько достаточно и на сколько достоверно будет при большом интервале, а вдуруг там какое качание частоты, поэтому хотелось бы за один период.



Код
            М                  Погрешность, Гц
            1                               1
            3                               0.4
            5                               0.25
           10                              0.06
           15                              0.025
           20                              0.015
           30                              0.0065


Сигнал: синусоида f=50 Гц со случайной начальной фазой. fd=44100 Гц.
М- число периодов синусоиды.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 22 2015, 07:11
Сообщение #85


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Santik @ Sep 22 2015, 09:57) *
Код
            М                  Погрешность, Гц
            1                               1
            3                               0.4
            5                               0.25
           10                              0.06
           15                              0.025
           20                              0.015
           30                              0.0065


Сигнал: синусоида f=50 Гц со случайной начальной фазой. fd=44100 Гц.
М- число периодов синусоиды.

Не понятно, как вы получили результат (матлаб посчитал с помощью dll-ки или вы на С код написали)? Понимаю, что частота дискретизации для оцифровки звука. Хотелось бы попробовать ваш метод расчета на С или С++ при отклонении частоты.

Интервал 5 периодов сети 50 Гц - это 0,1 секунды. При частоте дискретизации 44100 Гц, получаем 4410 точек выборки на том интервале. А дальше что делать?

Сообщение отредактировал Pridnya - Sep 22 2015, 07:16
Go to the top of the page
 
+Quote Post
Santik
сообщение Sep 22 2015, 07:51
Сообщение #86


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Цитата(Pridnya @ Sep 22 2015, 10:11) *
Не понятно, как вы получили результат (матлаб посчитал с помощью dll-ки или вы на С код написали)? Понимаю, что частота дискретизации для оцифровки звука. Хотелось бы попробовать ваш метод расчета на С или С++ при отклонении частоты.

Интервал 5 периодов сети 50 Гц - это 0,1 секунды. При частоте дискретизации 44100 Гц, получаем 4410 точек выборки на том интервале. А дальше что делать?

Это скорее для иллюстрации, что на 5 периодах погрешность получится 0.25Гц, а вам надо 0.01 :-)
Алгоритм сложный, в МК точно не поместится.
Советую не заморачиваться, поставить 1-бит АЦП (0 - компаратор) и счётчик.
На этом принципе все протонные магнитометры работают. (Погрешность 0.005 Гц, частота 2-3 кГц, время 1-2 сек)
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 22 2015, 08:11
Сообщение #87


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Santik @ Sep 22 2015, 10:51) *
Это скорее для иллюстрации, что на 5 периодах погрешность получится 0.25Гц, а вам надо 0.01 :-)
Алгоритм сложный, в МК точно не поместится.

Да мне хотя бы 0,25 Гц программно получить, а там я бы посмотрел что дальше делать. Все говорят "возьмите...", а вот сколько точек на каком интервале взять и как дальше, вот что главное.
Хотя бы с пяти периодов начнем (сигнал на интервале 0,1 секунды). Частота выборки пока 3200 гц. Сколько точек БПФ брать на этом интервале?
И правильно ли я понимаю, что я получу разрешение по частоте 10 Гц? wacko.gif 64точки*5периодов = 320 точек. 3200Гц/320 = 10 Гц. Так?

Цитата(Santik @ Sep 22 2015, 10:51) *
Советую не заморачиваться, поставить 1-бит АЦП (0 - компаратор) и счётчик.
На этом принципе все протонные магнитометры работают. (Погрешность 0.005 Гц, частота 2-3 кГц, время 1-2 сек)

У меня использовался компаратор, модуль захват-сравнение, можно вытащить 0,01 Гц, с той же звуковой карты компа подаю и вижу 49.00 Гц, 50,00 Гц...Но мне интересно, как это сделать программно (без матлабов и прочих коммерческих продуктов для настольконго компа) для микроконтроллера.
Заодно и пойму, как получить высокое разрешение по частоте.

Сообщение отредактировал Pridnya - Sep 22 2015, 08:12
Go to the top of the page
 
+Quote Post
Santik
сообщение Sep 22 2015, 08:35
Сообщение #88


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Цитата(Pridnya @ Sep 22 2015, 11:11) *
64точки*5периодов = 320 точек. 3200Гц/320 = 10 Гц. Так?

Да так. При данной частоте дискретизации и N=320 получится именно такое разрешение по частоте.
Весьма наивно полагать, что проведя параболу через 3 точки, близкие к соответствующему максиммуму спектра, можно получить хорошее разрешение по частоте.
Go to the top of the page
 
+Quote Post
Pridnya
сообщение Sep 22 2015, 08:41
Сообщение #89


Частый гость
**

Группа: Свой
Сообщений: 142
Регистрация: 11-01-11
Из: Орел
Пользователь №: 62 159



Цитата(Santik @ Sep 22 2015, 11:35) *
Да так. При данной частоте дискретизации и N=320 получится именно такое разрешение по частоте.
Весьма наивно полагать, что проведя параболу через 3 точки, близкие к соответствующему максиммуму спектра, можно получить хорошее разрешение по частоте.

Уже лучше, можно смоделировать: задать чистую синусоиду 50Гц на интервале 0,1 сек, а потом от этого интервала взять 1024-х точечное ДПФ для нескольких частот, близких к искомой, а там посмотреть какая кривая получится.

А вот как считать? В смысле спектр будет симметричный относительно искомой частоты (чтобы парабола получилась), т.е. отрицательные и положительные частоты? Или от 0 до частоты выборки Fs.

Библиотека CMSIS_DSP для ARM выдает результат от 0 до Fs, т.е. спектр симметричный относительно Fs/2.

Сообщение отредактировал Pridnya - Sep 22 2015, 08:42
Go to the top of the page
 
+Quote Post
Santik
сообщение Sep 22 2015, 08:57
Сообщение #90


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Цитата(Pridnya @ Sep 22 2015, 11:41) *
Уже лучше, можно смоделировать: задать чистую синусоиду 50Гц на интервале 0,1 сек, а потом от этого интервала взять 1024-х точечное ДПФ для нескольких частот, близких к искомой, а там посмотреть какая кривая получится.
А вот как считать? В смысле спектр будет симметричный относительно искомой частоты (чтобы парабола получилась), т.е. отрицательные и положительные частоты? Или от 0 до частоты выборки Fs.
Библиотека CMSIS_DSP для ARM выдает результат от 0 до Fs, т.е. спектр симметричный относительно Fs/2.

Можно сразу задать частоты 49,50,51 Гц и найти значения спектра на этих частотах. Потом провести параболу и найти её максимум. Это будет первое приближение по частоте. Затем взять +-0.5 Гц от найденой частоты, снова найти значения спектра и снова проводить параболу, находить ее максимум, делить интервал на 2 (т.е. до 0.25 Гц) и т.д. Такая вот итерационная процедура... Но это долго получится.
Go to the top of the page
 
+Quote Post

13 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 18:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01503 секунд с 7
ELECTRONIX ©2004-2016