RuWorker2 0 16 сентября, 2015 Опубликовано 16 сентября, 2015 · Жалоба Эту задачу на форуме решали уже десятки раз.. См. например: И там ещё в окрестностях есть что почитать.. ;) Спасибо! :rolleyes: В любом случае потребуется много экспериментов, чтобы понять, как измерять, какой метод применить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EvgenyNik 0 18 сентября, 2015 Опубликовано 18 сентября, 2015 · Жалоба Pridnya, если с частотой семплирования и разрешающей способностью всё понятно, то на каком минимально допустимом интервале времени (в периодах основной гармоники) Вы бы хотели измерить частоту? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Pridnya, если с частотой семплирования и разрешающей способностью всё понятно, то на каком минимально допустимом интервале времени (в периодах основной гармоники) Вы бы хотели измерить частоту? Хотелось бы измерять за 1, максимум за 5 периодов. Не знаю пока сколько достаточно и на сколько достоверно будет при большом интервале, а вдуруг там какое качание частоты, поэтому хотелось бы за один период. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Corner 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 · Жалоба Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений. Почитайте внимательно тему. Фурье 8192 вы собрались на мк сделать? На частоте дискретизации, обозначенной ТС'ом в 3200 Гц, 8192 точки это 2560 мс. 1 - 5 периодов 50 Гц сигнала это 20 - 100 мс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 21 сентября, 2015 Опубликовано 21 сентября, 2015 (изменено) · Жалоба Делов то. Фурье на 8к. Самая яркая палка это она))). Если предварительно сузить полосу прикинув частоту и лисперсию с помощью какого-нибудь капчюр модуля МК. Можно сделать перенос на 0 вокруг, то можно понизить частоту дискретизации и Фурье станет менее требовательным к числу точек и скорости вычислений. Накидайте ка на Си, а я код прогоню на ARM и оценим: а) реализуемость; б) время выполнения кода в целевом устройстве; в) глубину бездны знаний. :rolleyes: Изменено 21 сентября, 2015 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Накидайте ка на Си, а я код прогоню на ARM и оценим: а) реализуемость; б) время выполнения кода в целевом устройстве; в) глубину бездны знаний. :rolleyes: Сколько можно уже фигней страдать. Вот сюда посмотрите база сигнала А потом положите B=1, дельта F=0.01 и вычислите дельта t. Затем примите как данность, что Вы проектируете показометр и рассчитывайте значение частоты хоть по 3 точкам на период хоть до 10 знаков после запятой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Сколько можно уже фигней страдать. Вот сюда посмотрите база сигнала А потом положите B=1, дельта F=0.01 и вычислите дельта t. Затем примите как данность, что Вы проектируете показометр и рассчитывайте значение частоты хоть по 3 точкам на период хоть до 10 знаков после запятой. Δ t = B/Δf = 1/0.01 = 100 (секунд?). Не мойму, что-ли 100 секунд предлагается ждать? Подобный метод уже предлагали (если на выходе биение 0,01 Гц, то частота 49,99 Гц). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Хотелось бы измерять за 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 Гц. М- число периодов синусоиды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 (изменено) · Жалоба М Погрешность, Гц 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 точек выборки на том интервале. А дальше что делать? Изменено 22 сентября, 2015 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Не понятно, как вы получили результат (матлаб посчитал с помощью dll-ки или вы на С код написали)? Понимаю, что частота дискретизации для оцифровки звука. Хотелось бы попробовать ваш метод расчета на С или С++ при отклонении частоты. Интервал 5 периодов сети 50 Гц - это 0,1 секунды. При частоте дискретизации 44100 Гц, получаем 4410 точек выборки на том интервале. А дальше что делать? Это скорее для иллюстрации, что на 5 периодах погрешность получится 0.25Гц, а вам надо 0.01 :-) Алгоритм сложный, в МК точно не поместится. Советую не заморачиваться, поставить 1-бит АЦП (0 - компаратор) и счётчик. На этом принципе все протонные магнитометры работают. (Погрешность 0.005 Гц, частота 2-3 кГц, время 1-2 сек) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 (изменено) · Жалоба Это скорее для иллюстрации, что на 5 периодах погрешность получится 0.25Гц, а вам надо 0.01 :-) Алгоритм сложный, в МК точно не поместится. Да мне хотя бы 0,25 Гц программно получить, а там я бы посмотрел что дальше делать. Все говорят "возьмите...", а вот сколько точек на каком интервале взять и как дальше, вот что главное. Хотя бы с пяти периодов начнем (сигнал на интервале 0,1 секунды). Частота выборки пока 3200 гц. Сколько точек БПФ брать на этом интервале? И правильно ли я понимаю, что я получу разрешение по частоте 10 Гц? 64точки*5периодов = 320 точек. 3200Гц/320 = 10 Гц. Так? Советую не заморачиваться, поставить 1-бит АЦП (0 - компаратор) и счётчик. На этом принципе все протонные магнитометры работают. (Погрешность 0.005 Гц, частота 2-3 кГц, время 1-2 сек) У меня использовался компаратор, модуль захват-сравнение, можно вытащить 0,01 Гц, с той же звуковой карты компа подаю и вижу 49.00 Гц, 50,00 Гц...Но мне интересно, как это сделать программно (без матлабов и прочих коммерческих продуктов для настольконго компа) для микроконтроллера. Заодно и пойму, как получить высокое разрешение по частоте. Изменено 22 сентября, 2015 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба 64точки*5периодов = 320 точек. 3200Гц/320 = 10 Гц. Так? Да так. При данной частоте дискретизации и N=320 получится именно такое разрешение по частоте. Весьма наивно полагать, что проведя параболу через 3 точки, близкие к соответствующему максиммуму спектра, можно получить хорошее разрешение по частоте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RuWorker2 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 (изменено) · Жалоба Да так. При данной частоте дискретизации и N=320 получится именно такое разрешение по частоте. Весьма наивно полагать, что проведя параболу через 3 точки, близкие к соответствующему максиммуму спектра, можно получить хорошее разрешение по частоте. Уже лучше, можно смоделировать: задать чистую синусоиду 50Гц на интервале 0,1 сек, а потом от этого интервала взять 1024-х точечное ДПФ для нескольких частот, близких к искомой, а там посмотреть какая кривая получится. А вот как считать? В смысле спектр будет симметричный относительно искомой частоты (чтобы парабола получилась), т.е. отрицательные и положительные частоты? Или от 0 до частоты выборки Fs. Библиотека CMSIS_DSP для ARM выдает результат от 0 до Fs, т.е. спектр симметричный относительно Fs/2. Изменено 22 сентября, 2015 пользователем Pridnya Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 22 сентября, 2015 Опубликовано 22 сентября, 2015 · Жалоба Уже лучше, можно смоделировать: задать чистую синусоиду 50Гц на интервале 0,1 сек, а потом от этого интервала взять 1024-х точечное ДПФ для нескольких частот, близких к искомой, а там посмотреть какая кривая получится. А вот как считать? В смысле спектр будет симметричный относительно искомой частоты (чтобы парабола получилась), т.е. отрицательные и положительные частоты? Или от 0 до частоты выборки Fs. Библиотека CMSIS_DSP для ARM выдает результат от 0 до Fs, т.е. спектр симметричный относительно Fs/2. Можно сразу задать частоты 49,50,51 Гц и найти значения спектра на этих частотах. Потом провести параболу и найти её максимум. Это будет первое приближение по частоте. Затем взять +-0.5 Гц от найденой частоты, снова найти значения спектра и снова проводить параболу, находить ее максимум, делить интервал на 2 (т.е. до 0.25 Гц) и т.д. Такая вот итерационная процедура... Но это долго получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться