Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: мат. операция, "как ФАПЧ"
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Stas-
Есть генератор с частотой 0-100 Гц, частоту которого нужно измерять с точностью до 0.001 Гц. Это выход перемножителя гетеродина и генератора, собранного на температурозависимом кварце плюс НЧ фильтр (измеритель температуры, в общем). Выход генератора оцифровывается с частотой дискретизации 2 кГц. Сейчас частота измеряется тупо - берем окно нужной для заданной точности длины, делаем БПФ, выделяем максимум-палку-полку. В итоге получается не очень честно, т.к. температура оказывается "размазанной" по этому не очень маленькому времени (оттого и "полка" иногда). Если бы делали по честному, то надо было бы ставить не перемножитель и гетеродин, а ФАПЧ, который "знает" в любой момент времени, какова текущая частота. Но имеем то, что имеем.

Посоветуйте пожалуйста какую-нибудь математику на этот счет, заменитель ФАПЧ, чтобы так же знать частоту в любой момент времени. Ведь у нас есть полностью (ну почти, частота дискретизации вмешалась wink.gif) прописанный процесс, неужели ничего нельзя сделать?
Alex11
ФАПЧ Вас тоже не спасет: генетатор будет "знать" про изменение частоты после устаканивания фильтра, а на таких частотах этот процесс не быстрый. Считать по Фурье достаточно эффективно. Можно использовать оконную функцию и аппроксимацию, после этого требования к размеру окна можно снизить и увеличить скорость измерений. Какая все-таки минимальная частота генератора, которую нужно измерять? Частоту 0 вообще невозможно измерить с нужной точностью (нужно бесконечное окно), и от постоянки крайне неудобно считать по Фурье, т.к. "размазанная" палка будет сначала обрезана по 0, а затем окажется двусторонней. Алгоритм аппроксимации придется корректировать в зависимости от положения максимума. Для хорошей точности достаточно 5-10 периодов сигнала.
Stas-
Да, совсем не обязательно измерять частоту от 0 Гц, ведь температура ведет себя достаточно предсказуемо в смысле верхнего и нижнего предела и я всегда смогу сдвинуть частоту гетеродина так, чтобы было удобно измерять. А можно по-подробнее про аппроксимацию в данном случае? Что тут имеется в виду?

И пару слов в защиту ФАПЧ. Ну и пусть фильтр устаканивается "долго", но ведь когда он устаканится - все идет как по маслу. Никто не заставляет измерять температуру сразу в момент включения, можно потормозить, главное потом чтобы в процессе она (частота) была привязана ко времени как можно более точно.

ПС: гм, я тут похоже затупил sm.gif Что-то мозги не в ту сторону поехали. Ведь, как ни странно, если хочешь ФАПЧ - ну так и сделай ФАПЧ sm.gif XOR (перемножение) с какой-нибудь теперь вообще любой частотой, интегратор и VCO (текущее значение интеграла, по сути). Юмор в том, что теперь нафиг не надо что-то подстраивать, достаточно просто знать разбег частот, прямо пропорциональный интегралу. Но вопрос, тем не менее не снимаю. Нет ли каких-нибудь более совершенных методов под это дело?
MaslovVG
Цитата(Stas- @ May 18 2012, 12:38) *
Есть генератор с частотой 0-100 Гц, частоту которого нужно измерять с точностью до 0.001 Гц.

Не забудте фундаментальное соотношение dF*dT=1. где dT время измерения dF точность определения частоты. Для до 0.001 Гц требуется время измерения более 1000сек.
scifi
Цитата(MaslovVG @ May 18 2012, 17:51) *
Не забудте фундаментальное соотношение dF*dT=1. где dT время измерения dF точность определения частоты. Для до 0.001 Гц требуется время измерения более 1000сек.

У периодического сигнала можно просто измерить период (с достаточной точностью, конечно), и будет совсем не так долго.
MaslovVG
Цитата(scifi @ May 18 2012, 18:07) *
У периодического сигнала можно просто измерить период (с достаточной точностью, конечно), и будет совсем не так долго.

Шумы просто не дадут обнаружить переход через ноль для такой точности.
scifi
Цитата(MaslovVG @ May 18 2012, 18:16) *
Шумы просто не дадут обнаружить переход через ноль для такой точности.

По-видимому, вы с автором вместе работаете и знаете, какой у него уровень шумов. Так и скажите, чтобы не вводить людей в заблуждение.
Alex11
Цитата
И пару слов в защиту ФАПЧ. Ну и пусть фильтр устаканивается "долго", но ведь когда он устаканится - все идет как по маслу. Никто не заставляет измерять температуру сразу в момент включения, можно потормозить, главное потом чтобы в процессе она (частота) была привязана ко времени как можно более точно.

Если Ваша температура изменяется очень медленно, то все так и будет. Но если, теоретически, температура изменится скачком, то ФАПЧ примет новое правильное значение с постоянной времени фильтра.
Если сместить частоту из 0 хотя бы до 50 Гц, то можно сделать следующее. Накладываете оконную функцию Гаусса. Параметры нужно будет подобрать в зависимости от размера окна. Далее делаете Фурье. Форма линии будет тоже Гауссом. Далее делаете аппроксимацию по методу наименьших квадратов или любым другим способом. Полезное соотношение - логарифм от Гаусса - квадратичная функция. Еще очень полезно использовать веса при аппроксимации - точки ближе к вершине должны иметь вес, больший, чем на краях. Если этого не сделать - слабые шумы приводят к сильному сдвигу вершины. На модели при окне 8192 точки, частоте дискретизации 25600 Гц при измерении частоты около 50 Гц получается точность порядка 1е-8 Гц. Реально при наличии небольших шумов будет хуже, но не сильно. Где-то 1е-6 Гц.
MaslovVG
Цитата(Alex11 @ May 18 2012, 18:34) *
Если этого не сделать - слабые шумы приводят к сильному сдвигу вершины. На модели при окне 8192 точки, частоте дискретизации 25600 Гц при измерении частоты около 50 Гц получается точность порядка 1е-8 Гц. Реально при наличии небольших шумов будет хуже, но не сильно. Где-то 1е-6 Гц.

Если вычислять интеграл Фурье чистой синусоиды за время Т то получим в частотной области всплеск вида (Sinx)/x c шириной главного лепестка лепестка 1/T Определение положения вершины этого лепестка при наличии шумов с точностью более половины его ширины при наличии шумов дело безнадежное. Добавте сюда нестабильность частоты гетеродина
alex_os
Цитата(MaslovVG @ May 18 2012, 20:05) *
Если вычислять интеграл Фурье чистой синусоиды за время Т то получим в частотной области всплеск вида (Sinx)/x c шириной главного лепестка лепестка 1/T Определение положения вершины этого лепестка при наличии шумов с точностью более половины его ширины при наличии шумов дело безнадежное. Добавте сюда нестабильность частоты гетеродина

При благоприятном стечении обстоятельств , совсем не безнадежное sm.gif. Мильон раз уже обсуждалось интерполяция DFT, вот например http://electronix.ru/forum/index.php?s=&am...st&p=995269
Stas-
Alex11
Спасибо за рецепт. Это мне и нужно было для начала sm.gif
AlexeyW
Цитата(scifi @ May 18 2012, 18:07) *
У периодического сигнала можно просто измерить период (с достаточной точностью, конечно), и будет совсем не так долго.

Источником является кварц - т.е. резонатор. Он сам по себе имеет задержку порядка период*добротность (добротность кварца, ясное дело, велика).
mihalevski
Цитата(scifi @ May 18 2012, 21:07) *
У периодического сигнала можно просто измерить период (с достаточной точностью, конечно), и будет совсем не так долго.


Может сместить опорную частоту так, чтобы разностная частота менялась не 0...100 Гц, а допустим, 50…150Гц. Тогда суммарная
частота с выхода умножителя может быть подавленна ФНЧ. Это позволит измерять частоту обычным частотомером и вообще
уменьшить время измерения. Для уменьшения среднеквадратической погрешности квантования цифрового частотомера
(уменьшения времени измерения) используют ступенчатые оконные функции. Эти функции отличаются от применяемых в
Фурье для уменьшения боковых лепестков.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.