Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: три частоты на АТмегу 128 с использованием таймеров
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5
=GM=
Цитата(add @ Jul 23 2008, 07:12) *
Теперь есть: /upload/Books/Dvoryashin, Kuznecov. Radiotexnicheskie izmereniya (Sov.Radio, 1978)(ru)(L)(T)(181s)_EE_.djvu

Там же появились ещё две книжки по списку из поста #105. Всего книг: номер1 (спасибо add'у), номер 2 и 50 первых страниц номера 3. Если у кого есть полная электронная копия номера 3, дайте мне знать, буду очень благодарен.
singlskv
Цитата(=GM= @ Jul 24 2008, 01:35) *
Ну раз так, предскажите положение N2, зная N1, если они зависимы, покажите формулу для расчёта или хотя бы алгоритм. Такие измерения БУДУТ независимыми, поскольку входная частота и опорная частота асинхронны, т.е. НЕЗАВИСИМЫ.

Начинать можно было бы и на следующем периоде, если бы контроллер справился с таким потоком.

Вы немного не поняли что я имею в виду под независимостью отсчетов в Вашем последнем методе.
Давайте будем считать чуть по-другому, пусть n1,n2,... это будут не моменты времени а разница
времен меджу соседними засечками (~1мс), а m1,m2,... это будет количество импульсов которые
произошли между нашими засечками.
Это те исходные данные которые мы РЕАЛЬНО получаем от таймеров.
А теперь объясните мне как рассчет по Вашему алгоритму может дать на большом интервале(~1сек)
точность лучше чем просто скользящее среднее на этом же интервале.

ИМХО, Вы просто заново открыли скользяшее среднее... smile.gif

Если Вы так не считаете, покажите численный пример в котором результат Вашего
алгоритма будет лучше чем у простого скользящего среднего...
=GM=
Вы неправильно понимаете предложенное мною для метода захвата и затем дефунктом для метода ворот. n1,n2,... это не разница времен между соседними засечками (~1мс), это разница времён конца и начала наших окон (длительностью порядка 1с), поэтому никакого скользящего среднего, это именно честное усреднение результатов 1000 измерений частоты, каждое из которых честно взято на 1с интервале.

Попробуйте перечитать мой пост #101, попробуйте его приложить всего к ДВУМ измерениям со сдвигом на 1 мс, ну или на 500мс, неважно, после этого можем продолжить обсуждение.
defunct
Цитата(singlskv @ Jul 24 2008, 21:54) *
ИМХО, Вы просто заново открыли скользяшее среднее... smile.gif

Не совсем. Скользящее среднее останется скользящим средним независимо от того пересекаются интервалы измерений или не пересекаются.

Суммарная точность при использовании скользящего среднего зависит от двух составляющих - точности единичного измерения, и количества выборок. Если имеется возможность увеличить или то или другое, то очевидно суммарная точность возрастет. Согласны?
(что мы сделаем 100 измерений с точнотью X, что мы сделаем одно измерение со стократной точностью - суммарная точность не изменится).

Теперь возврящаясь к нашим баранам, точность единичного измерения , как было показано ранее, зависит от интеравала измерения T, для обоих методов точность определяется |k* 1/T| Гц (k - коэффициент конкретного метода). т.о. если интервал измерения будет больше, то скользящее среднее одного и того же количества выборок даст более точный результат.

=GM= предложил сделать уплотнение выборок не меняя интервала измерения, за счет пересечения интервалов. см. иллюстацию:

Код
Уплотнение предложенное =GM=
1111
-2222
--3333
---4444
----------> t

обычное скользящее среднее на этом же интервале:
1
-2
--3
---4
----5
-----6
------7
где цифра соответствует номеру выборки


Такие измерения можно назвать независимыми только с натяжкой, ведь если на интервале одного измерения будет присутсвовать помеха, то она затронет сразу несколько измерений - и может отразиться на результате. Но если принебреч внешней помехой, то за счет асинхронности частот, измерения будут независимыми.

В итоге интервал измерения увеличен многократно (на русунке в 4 раза), а количество выборок уменьшается всегда на константу (вдвое).
Что это дает? Плюсы (одно из двух):
- сокращение времении измерения без потерь в точности
- увеличение суммарной точности не меняя времени измерения.

минусы:
- высокая сложность
- ресурсоемкость
- неустойчивость к внешним помехам.
=GM=
defunct, вы меня удивляете, ну какая сложность в методе defunct'а? Делать выборки из таймера не каждую секунду, а каждую миллисекунду? Да разве это сложность? Зато погрешность можно снизить в 100 раз.

Вот вы говорите "неустойчивость к внешним помехам". Ну а какой метод будет устойчив? Да никакой, все они дадут неверное значение.
defunct
Цитата(=GM= @ Jul 25 2008, 01:15) *
Делать выборки из таймера не каждую секунду, а каждую миллисекунду? Да разве это сложность?

Реализовать может быть и не сложно, а как для проца - сложнее ровно в 1000 раз.
Да и в реализации сложнее, например, уже нельзя просто остановить таймер и прочитать его значение.

Кстати, я подправил пост, перечитайте еще раз если не затруднит ;>

Цитата
Вот вы говорите "неустойчивость к внешним помехам". Ну а какой метод будет устойчив? Да никакой, все они дадут неверное значение.

классический - там где каждое измерение будет действительно независимым, где однократная помеха воздействует только на одну выборку из 1000. В нашем же случае однократная помеха может задеть 999 выборок и 1000.
=GM=
Цитата(defunct @ Jul 24 2008, 21:22) *
Реализовать может быть и не сложно, а как для проца - сложнее ровно в 1000 раз

Что такое сложнее для проца в 1000 раз? Что-то новенькое.
Цитата(defunct @ Jul 24 2008, 21:22) *
Да и в реализации сложнее, например, уже нельзя просто остановить таймер и прочитать его значение

Да зачем его останавливать? Его дело железное - считать до посинения. Для считывания у вас есть ICR.
Цитата(defunct @ Jul 24 2008, 21:22) *
классический - там где каждое измерение будет действительно независимым, где однократная помеха воздействует только на одну выборку из 1000. В нашем же случае однократная помеха может задеть 999 выборок и 1000.

Классический тоже выдаёт результат на дисплей раз в секунду, как и в нашем случае, только с гораздо меньшей точностью. Так что, вследствие помехи показания на дисплее изменятся и в первом и во втором случае.
defunct
Цитата(=GM= @ Jul 25 2008, 01:34) *
Что такое сложнее для проца в 1000 раз? Что-то новенькое.

отвечу вопросом на вопрос, сложность какого цикла выше:
Код
1).
for(i = 0; i < 1; i++)
    do_f(i);

2).
for (i = 0; i < 1000; i++)
   do_f(i);


Цитата
Да зачем его останавливать? Его дело железное - считать до посинения. Для считывания у вас есть ICR.

По правде, не задумывался о применении ICR в методе ворот.
Это в захвате есть ICR, а тут ... гм. на досуге рассмотрю такую возможность.

Цитата
Классический тоже выдаёт результат на дисплей раз в секунду, как и в нашем случае, только с гораздо меньшей точностью. Так что, вследствие помехи показания на дисплее изменятся и в первом и во втором случае.

Не факт что в классическом изменится (особенно если усреднение сделано грамотно - отбрасывать несколько локальных минимумов и несколько локальных максимумов, то помеха будет отфильтрована полностью), а вот в нашем случае как не фильтруй точно изменится т.к. 99.9% выборок задето, и это минус.
singlskv
Цитата(defunct @ Jul 25 2008, 02:05) *
Суммарная точность при использовании скользящего среднего зависит от двух составляющих - точности единичного измерения, и количества выборок.
Согласен.
Цитата
Если имеется возможность увеличить или то или другое, то очевидно суммарная точность возрастет. Согласны?
смотря что считать единичным измерением
Цитата(=GM= @ Jul 25 2008, 02:01) *
Вы неправильно понимаете предложенное мною для метода захвата и затем дефунктом для метода ворот.
Цитата
=GM= предложил сделать уплотнение выборок не меняя интервала измерения, за счет пересечения интервалов. см. иллюстацию:
Понял я все как раз правильно
Цитата
Такие измерения можно назвать независимыми только с натяжкой, ведь если на интервале одного измерения будет присутсвовать помеха, то она затронет сразу несколько измерений - и может отразиться на результате.
вот это уже ближе, по крайней мере Вы уже начали понимать о том что измерения зависымы
Цитата
Но если принебреч внешней помехой, то за счет асинхронности частот, измерения будут независимыми.
частоты не совсем асинхронны...

Цитата
n1,n2,... это не разница времен между соседними засечками (~1мс), это разница времён конца и начала наших окон (длительностью порядка 1с)

я специально обозвал их маленкими n а не большими N, но Вы намека не поняли...
Хорошо давайте по-порядку
-есть таймер который считает время N и есть счетчик M который считает импульсы
-таймер и счетчик считают непрерывно
-таймер и счетчик имеют достаточную разрядность
-тк рассматриваем метод захвата, все события в нашей системме привязанны к началу имульса
-старт каждого нового интервала ~1мс
-окончание через ~1сек от старта
-рассматриваем 3 секундный промежуток от начала измерений
-для каждой стартовой пары (Ni,Mi) через примерно 1сек получаем финишную пару (Ti,Ki)
-получив наборы пар (Ni,Mi) и (Ti,Ki) отсортируем их так чтобы время возрастало
-получим набор пар (Xj,Yj) таких что для k>j Xk>=Xj и Yk>=Yj
-если получим соседние одинаковые пары, выкинем повторы из списка
-для каждой пары (X(j+1),Y(j+1)) вычтем из нее пару (Xj,Yj)
(X(j+1)-Xj,Y(j+1)-Yj) и обзовем новые пары (ni,mi) где ni - время между соседними засечками а
mi - количество импульсов между соседними засечками
Это наш исходный набор данных, для ni гарантируется соотношение ni<=(~1мс)
те мы имеем набор данных о коротких промежутках ~1мс и количестве импульсов между ними

А вот теперь раскажите каким образом при таких промежутках измерения мы будем получать
точность не относительно этого промежутка а относительно более длинных
и вот это:
Цитата
(что мы сделаем 100 измерений с точнотью X, что мы сделаем одно измерение со стократной точностью - суммарная точность не изменится).
тут как нельзя кстати...

Кстати, сразу замечу что при преобразовании наборов пар (Ni,Mi) и (Ti,Ki) к парам (ni,mi)
точность я нигде не потерял, и запросто можно сделать обратное преобразование
=GM=
singlskv частоты не совсем асинхронны...

Конечно! Не совсем! Меняем входную частоту, и от этого немного меняется опорная частота. Мило! Называется затягивание частоты в автогенераторах, к нашему случаю никакого отношения не имеет.

singlskv А вот теперь раскажите, каким образом при таких промежутках измерения мы будем получать точность не относительно этого промежутка, а относительно более длинных.

Ну вы всё же не путайте длину интервала наблюдения и статистическую обработку. На более длинном интервале наблюдения вы гарантированно уменьшите погрешность, а с помощью статистики вы уменьшите standard deviation, СКО по-нашему. Почувствуйте разницу.

singlskv Это наш исходный набор данных, для ni гарантируется соотношение ni<=(~1мс)
те мы имеем набор данных о коротких промежутках ~1мс и количестве импульсов между ними

Можно и таким подходом воспользоваться, составить систему из 1000 уравнений, и решать ее каким-нибудь экзотическим способом, минимизируя невязки. Почти уверен, что матрица будет тёплицевой. Всё это хорошо для диссертации, но слабо применимо к микроконтроллерам.

Теперь общие замечания об измерении частоты методом захвата. Мы используем один фронт входной частоты, через 1с мы используем другой фронт и больше ничего, а все фронты, которые лежат между ними и несут потенциальную информацию о нашей частоте мы просто-напросто пропускаем. Предложенная мною модификация метода захвата является попыткой использовать потенциальную информацию, скрытую в промежуточных фронтах входного сигнала.

Ну что ж, следующая модификация приведёт к измерению каждого периода входной частоты нахождением времени пересечения нуля и измерению частоты таким способом (:-). Кстати, на этом мой коллега защитил диссертацию.
singlskv
Цитата(=GM= @ Jul 25 2008, 13:39) *
Теперь общие замечания об измерении частоты методом захвата. Мы используем один фронт входной частоты, через 1с мы используем другой фронт и больше ничего, а все фронты, которые лежат между ними и несут потенциальную информацию о нашей частоте мы просто-напросто пропускаем. Предложенная мною модификация метода захвата является попыткой использовать потенциальную информацию, скрытую в промежуточных фронтах входного сигнала.
Метод у Вас правильный !
Не верна только оценка погрешности этого метода измерения.

По сути Ваш метод это и есть скользящее среднее по неравномерной шкале времени.
есть пары (n1,m1),(n2,m2),.....
считаем суммы Sn1 и Sm1 начиная от пары (n1,m1) и пока Sn1 не станет больше 1сек
получаем первый результат Sm1/Sn1
считаем суммы Sn2 и Sm2 начиная от пары (n2,m2) и пока Sn2 не станет больше 1сек
получаем второй результат Sm2/Sn2
итд.

понятно что считать каждый раз суммы заново не нужно,
достаточно например для получения второго результата

если (Sn1-n1 > 1сек) то Sn2=Sn1-n1 Sm2=Sm1-m1 результат Sm2/Sn2
иначе Sn2=Sn1-n1+Sum(nj,...,nk) где j следующее значение ni не вошедшее в Sn1,
а k такое чтобы Sn2>1сек
тогда Sm2=Sm1-m1+Sum(mj,...,mk)
и результат соответственно Sm2/Sn2

как видите это и есть скользящее среднее на интервале в 1сек
и именно это Вы и получаете в своем методе

так же можно было бы привести неравномерную шкалу к равномерной
для этого каждую пару (ni,mi) условно говоря заменим на ni пар (1, mi/ni)
и дальше будем суммировать эти пары на интервале ровно 1сек
но это конечно уже только теоритически, практический выигрыш от этого небольшой
а затраты ....
defunct
Цитата(singlskv @ Jul 25 2008, 13:19) *
как видите это и есть скользящее среднее на интервале в 1сек

Естественно мы усредняем несколько измерений. Никто этого не отрицает. И используется скользящее среднее.

Только скажите, если мы будем сразу учитывать разность смежных пар без промежуточных сумм (без перекрытия интервалов), разве это не останется тем же самым скользящим средним по неравномерной шкале времени?

Иллюстрацию в #154 смотрели? В обоих вариантах - скользящее среднее.

А про то, где будет выше точность я уже писал выше, с чем Вы не согласны? С тем что точность измерения на 1с интервале будет выше чем на интервале 1ms?
singlskv
Цитата(defunct @ Jul 25 2008, 14:32) *
Только скажите, если мы будем сразу учитывать разность смежных пар без промежуточных сумм (без перекрытия интервалов), разве это не останется тем же самым скользящим средним по неравномерной шкале времени?
конечно оно им и будет, причем эти два метода тождественно равны
в одном посте я показал как не теряя точности перейти от секундных интервалов к
интервалам длительностью ~1мс
в другом наоборот от интервалов ~1мс к секундным интервалам
эти два подхода тождественны и по получаемой точности тоже...
Цитата
А про то, где будет выше точность я уже писал выше, с чем Вы не согласны? С тем что точность измерения на 1с интервале будет выше чем на интервале 1ms?

Я не согласен только с трактовкой точности для метода GM.
У нас есть от 1000 до 2000 интервалов на каждую секунду и каждый
из интервалов не более 1мс
(меньше 2000 тк некоторые старты совпадут с финишами)

то есть изначально мы имеем ТОЛЬКО эти интервалы, все остальное мат. обработка

Что предложил GM сначала, а давайте говорит GM сделаем скользящее среднее по этим
коротеньким интервалам и улучшим точность.
Сделали, все здорово точность улучшилась...
Но тут вдруг захотелось ее еще улучшить, и возникла идея, а давайте с небольшим сдвигом
запустим скользящее среднее еще раз по данным полученным после первой итерации...
Запустили и объявили что вот, тк мы сделали небольшой сдвиг в данных (1мс),
теперь у нас все данные стали независимыми и поэтому мы считаем что
точность опять выросла в 1000 раз несмотря на то что диапазон увеличился всего в 2 раза.

Ну и я так понимаю что этот процесс можно продолжать до бесконечности... smile.gif

Вот собственно это, такое отношение к рассчету точности, мне и не нравится...
=GM=
To singlskv Ваша теория хороша, но никакого отношения к действительности не имеет, хотя бы потому, что в реале сумма коротких интервалов НЕ РАВНА одному большому интервалу N(1000)-N(1).

Фронты входной частоты надо рассматривать как дискретную случайную величину эргодического процесса.
singlskv
Цитата(=GM= @ Jul 28 2008, 14:03) *
To singlskv Ваша теория хороша, но никакого отношения к действительности не имеет, хотя бы потому, что в реале сумма коротких интервалов НЕ РАВНА одному большому интервалу N(1000)-N(1).
Вы все-таки невнимательно читаете...
для примерно секундного интервала будет не ровно 1000 маленьких интервальчиков из которых
он состоит, их будет от 1000 до 2000, но каждый из них будет не более ~1мс длительностью

Цитата
Фронты входной частоты надо рассматривать как дискретную случайную величину эргодического процесса.
В том то и вся "фишка", все события жестко привязанны к фронтам сигнала,
поэтому мы и можем так легко разбить наш секундный интервал на интервалы не более ~1мс...

На самом деле для варианта с воротами это было бы не так, и там действительно события
были ассинхронны с входной частотой, в методе же захвата, все строго (+-0,5 такта) синхронно
с входным сигналом.
=GM=
Цитата(singlskv @ Jul 28 2008, 19:58) *
для примерно секундного интервала будет не ровно 1000 маленьких интервальчиков из которых он состоит, их будет от 1000 до 2000, но каждый из них будет не более ~1мс длительностью

Не важно сколько их будет, не важно, какова длительность...Проблема у вас в том, что имея n1, n2,..,n1000 и суммируя их, вы не получите сумму, равную N1001-N1. Значит, ваше преобразование в мелкие интервальчики и ОБРАТНО неправомочно, а следовательно и вся ваша теория несостоятельна.

Вот здесь вы говорите
Цитата(singlskv @ Jul 28 2008, 19:58) *
Кстати, сразу замечу что при преобразовании наборов пар (Ni,Mi) и (Ti,Ki) к парам (ni,mi) точность я нигде не потерял, и запросто можно сделать обратное преобразование

Очевидно, что вы теряете точность, и очевидно, что нельзя сделать обратного преобразования. То есть ваша основная аксиома не работает.

Цитата(singlskv @ Jul 28 2008, 19:58) *
все события жестко привязаны к фронтам сигнала, поэтому мы и можем так легко разбить наш секундный интервал на интервалы не более ~1мс...

Если бы рассматриваемая система была детерминированной, ну скажем, входной и опорный сигналы были кратны, и фронты входных импульсов совпадали бы с опорными импульсами, то ваша теория как-то работала бы.
singlskv
Цитата
Вот здесь вы говорите:
Кстати, сразу замечу что при преобразовании наборов пар (Ni,Mi) и (Ti,Ki) к парам (ni,mi) точность я нигде не потерял, и запросто можно сделать обратное преобразование
Очевидно, что вы теряете точность, и очевидно, что нельзя сделать обратного преобразования. То есть ваша основная аксиома не работает.
Единственное почему нельзя сделать обратное преобразование, это потому
что я забыл сказать что нужно запомнить абсолютные показания N и M на начало
измерения, но тк и у Вас все результаты имеют значение не по абсолютной велечине,
это мое упущение в стройности прямого и обратного преобразования не имеет никакого значения...
Цитата(=GM= @ Jul 29 2008, 01:18) *
Не важно сколько их будет, не важно, какова длительность...Проблема у вас в том, что имея n1, n2,..,n1000 и суммируя их, вы не получите сумму, равную N1001-N1. Значит, ваше преобразование в мелкие интервальчики и ОБРАТНО неправомочно, а следовательно и вся ваша теория несостоятельна.

Вот никак Вы не можете понять что интервалов будет не ровно 1000, те
N1000-N1 будет равно Sum ni где i=1..j ; 1000=< j =< 2000
Хорошо просто приведу пример на числовой оси,
рассматриваем только временнУю составляющую наших засечек:
для счетчика импульсов все по аналогии
Код
N1      N2      N3      N4  T1  N5  T2  N6  T3  N7  T4  N8  T5  N9  T6

здесь Ni - начало "большого" интервала, Ti - конец
порядок Ni и Ti не обязательно такой, это только пример

тогда пусть
n1 = T1 - N4
n2 = N5 - T1
n3 = T2 - N5
n4 = N6 - T2
n5 = T3 - N6
n6 = N7 - T3
n7 = T4 - N7
n8 = N8 - T4
n9 = T5 - N8
n10= N9 - T5
n11= T6 - N9

Тогда имеем

T4 - N4 = n1+n2+...+ n7
T5 - N5 = n3+n4+...+n9
T6 - N6 = n5+n6+...+n11
итд

Как видите все очень легко разбиваеться на отрезки меньшего размера.
=GM=
Цитата(singlskv @ Jul 29 2008, 19:54) *
Тогда имеем

T4 - N4 = n1+n2+...+ n7
T5 - N5 = n3+n4+...+n9
T6 - N6 = n5+n6+...+n11 и т.д.

Как видите все очень легко разбивается на отрезки меньшего размера

Было бы легко, если бы не было погрешностей. Как вы понимаете, погрешности каждого измерения Ni или Ti равны 0 или 1, т.е. каждое измерение может отличаться от ИСТИННОГО времени на 1. Теперь для примера рассмотрим первую строчку T4 - N4. Представьте себе, что попали такие частоты или такие начальные условия, что все погрешности для n1, n2, ..., n7 оказались максимальны и сложились, в итоге вместо суммы n1+n2+...+ n7 мы получим n1+n2+...+ n7±7. Для 1000 слагаемых будет ещё хуже.

А с другой стороны, левая часть T4 - N4 отличается от ИСТИННОЙ разности времён только на ±1, мы с вами отлично это знаем. Как вы понимаете, правая часть должна быть равна левой, ну с учетом погрешности в 1 по модулю, а этого нет, налицо противоречие, которое не позволяет делать разбивку на мелкие интервалы вашим способом. Отсюда следует вывод, что ваша теория не работает. Об этом я вам и толкую всю страницу, а вы не хотите слушать.
singlskv
Цитата(=GM= @ Jul 30 2008, 01:36) *
Было бы легко, если бы не было погрешностей. Как вы понимаете, погрешности каждого измерения Ni или Ti равны 0 или 1, т.е. каждое измерение может отличаться от ИСТИННОГО времени на 1. Теперь для примера рассмотрим первую строчку T4 - N4. Представьте себе, что попали такие частоты или такие начальные условия, что все погрешности для n1, n2, ..., n7 оказались максимальны и сложились, в итоге вместо суммы n1+n2+...+ n7 мы получим n1+n2+...+ n7±7. Для 1000 слагаемых будет ещё хуже.
А я и не спорил с этими рассчетами, я уже давно, смотрим например пост №161 согласился
что в принципе Ваш метод правильный, и здесь Вы просто делаете скользящее среднее
на диапазоне примерно 1сек.
Я спорю только с Вашим постом #101 насчет того что все измерения на перекрывающихся интервалах
будут НЕЗАВИСИМЫМИ.

А так, если брать только одну итерацию скользящего среднего по "маленьким" отрезкам,
то все будет с точностью в порядке...
=GM=
Ну слушайте, уже не смешно. Давайте ещё раз, последний.

Ваши равенства, типа T4 - N4 = n1+n2+...+ n7, это не равенства, а не понятно что, поскольку для 1000 слагаемых разница между правой и левой частями может достигать ±1000, а это совсем НЕ РАВЕНСТВО. Ну а раз НЕТ РАВЕНСТВА, то ваша теория не работает, ДОЛЖНО быть РАВЕНСТВО, поэтому НЕЛЬЗЯ разбивать на мелкие отрезки, и поэтому НЕЛЬЗЯ приводить пример скользящего среднего, ну нет никакого скользящего среднего, как вы не поймёте.

Давайте рассмотрим две модели множественного измерения - последовательную и параллельную.

1) Последовательная. На первой секунде меряем частоту на 1с интервале, запоминаем, на второй секунде меряем частоту на 1с интервале, запоминаем, и т.д. всего 1000 измерений за 1000с.

2) Параллельная. Входную частоту подключаем к 1000 МК с НЕЗАВИСИМЫМИ опорниками, через 1с получаем 1000 измерений.

Усредняем по первому варианту и по второму. Будет ли отличие? Нет, с точностью до погрешности не будет.

3) Рассмотрим третий вариант. Берём 1000 МК с НЕЗАВИСИМЫМИ опорниками и запускаем, но не все сразу, а поочерёдно по очередному фронту входной частоты.

4) Четвёртый вариант. Берём 1000 МК с общим опорником и делаем как в п.3.

Усредняем по третьему варианту и по четвёртому. Будет ли отличие? Нет, с точностью до погрешности не будет.

5) Заменяем 1000 МК с общим опорником по четвёртому варианту на один МК, который успевает сделать всю работу. Усредняем. Будет отличаться от первых 4-х вариантов? Нет, не будет. Q.E.D.

Для входной частоты 1000 Гц будет только 1000 фронтов и будет только 1000 независимых измерений, больше сделать нельзя. По-видимому, это фундаментальное ограничение метода захвата.
singlskv
Цитата(=GM= @ Jul 30 2008, 02:36) *
Ваши равенства, типа T4 - N4 = n1+n2+...+ n7, это не равенства, а не понятно что, поскольку для 1000 слагаемых разница между правой и левой частями может достигать ±1000, а это совсем НЕ РАВЕНСТВО. Ну а раз НЕТ РАВЕНСТВА, то ваша теория не работает, ДОЛЖНО быть РАВЕНСТВО, поэтому НЕЛЬЗЯ разбивать на мелкие отрезки, и поэтому НЕЛЬЗЯ приводить пример скользящего среднего, ну нет никакого скользящего среднего, как вы не поймёте.

Ni и Ti это ЦЕЛЫЕ числа полученные от схеммы захвата таймера.
+- там просто нет, +- получаются только после мат обработки с учетом того факта что
каждое измерение(N или T) мы получаем с точностью +-0,5такта

увеличив интервал до 1сек Вы просто получаете скользящее среднее по ~ 1000 милисекундных
"маленьких" интервальчиках, и при этом Вы получаете точность в ~1000 раз лучше,
НО, если Вы пытаетесь сделать 1000 независимых интервалов на двухсекундном отрезке
для дальнейшего улучшения точности, то это как раз и не сработает,
тк все числа получаемые от схеммы захвата ЦЕЛЫЕ, такие интервалы уже не будут независимыми,
фактически Вы просто делаете вторую итерацию, те скользящее среднее на данных
полученных от первого скользящего среднего, и получить на таких данных увеличение опять
в 1000 раз невозможно...

Но если Вы все еще не поняли... smile.gif
Предлагаю Вам оценить точность которую Вы сможете получить на 4секундном(3 итерация),
8,16,32... секундных интервалах... smile.gif
=GM=
singlskv, у вас, что, есть план, как меня свести с ума (:-)?
Цитата(singlskv @ Aug 3 2008, 21:48) *
Ni и Ti это ЦЕЛЫЕ числа, полученные от схемы захвата таймера.+- там просто нет, +- получаются только после мат обработки с учетом того факта что каждое измерение (N или T) мы получаем с точностью +-0,5такта

Никак вы не уймётесь. + и - там действительно нет, но писать равенства типа T4 - N4 = n1+n2+...+ n7 вы неправомочны и вот почему, в десятый раз пишу, между прочим. Пусть при измерении все ваши промежуточные Ni и Ti отмерены с ошибкой в +1 каждое, ну что поделаешь, ну так частоты легли. Относительно чего ошибка? Относительно истинного времени, например, в реале N1=101.99, а вы получите N1=101 и т.д. В итоге, ваши маленькие интервалы будут превышать действительное значение на 1 каждое, а в сумме будет любое число от 0 до 1000. В тоже время разность T4 - N4 отличается от истинного значения всего на ±1. В посте #167 вы пишете, "Тогда имеем T4 - N4 = n1+n2+...+ n7", ну откуда вы взяли такое равенство, если на самом деле T4 - N4 = n1+n2+...+ n7 +ЧИСЛО(в диапазоне 0..1000). Ну сложите, 101+201+301+401=401-101, равенства ведь нет, то есть налицо противоречие, значит так писать нельзя.
Цитата(singlskv @ Aug 3 2008, 21:48) *
Вы просто получаете скользящее среднее по ~ 1000 милисекундных "маленьких" интервальчиках, и при этом Вы получаете точность в ~1000 раз лучше

В среднеквадратическом смысле, не забывайте. Да, получше, но не в 1000 раз. А за одно 1с измерение вы гарантированно получите 1 Гц погрешность. Так что, для увеличения точности лучше увеличивать интервал наблюдения, а не усреднение соответствующего количества измерений.

И давайте заканчивать, упрямство хорошая вешь, но не в больших дозах, мы уже всем надоели. Мы с вами, как слепой с глухим. Посмотрите мой пост #170, там есть пять пунктов. Вы согласны с этими пунктами? Если не согласны, аргументируйте, почему не согласны. Не хотите отвечать, значит больше говорить не о чем.

И ещё почитайте, что ли, похожую ветку "Увеличение разрешения по частоте", более общий подход, может это вам поможет. Я и сам примерно так делаю, меряю радиоимпульсы 450 МГц с точностью до 1 Гц, причём длительность этих импульсов не более 20 мкс, и они зашумлены.
defunct
Цитата(=GM= @ Aug 4 2008, 15:32) *
Пусть при измерении все ваши промежуточные Ni и Ti отмерены с ошибкой в +1 каждое, ну что поделаешь, ну так частоты легли. Относительно чего ошибка? Относительно истинного времени, например, в реале N1=100.99, а вы получите N1=101 и т.д. В итоге, ваши маленькие интервалы будут превышать действительное значение на 1 каждое, а в сумме будет любое число от 0 до 1000. В тоже время разность T4 - N4 отличается от истинного значения всего на ±1.

+1
singlskv
Цитата(=GM= @ Jul 30 2008, 02:36) *
И давайте заканчивать, упрямство хорошая вешь, но не в больших дозах, мы уже всем надоели. Мы с вами, как слепой с глухим. Посмотрите мой пост #170, там есть пять пунктов. Вы согласны с этими пунктами? Если не согласны, аргументируйте, почему не согласны.
Ok, думаю что мы никому не наскучили, всем ведь интересно чем закончится это обсуждение smile.gif, давайте последовательно, обсудим пост №170:
Цитата(=GM= @ Jul 30 2008, 02:36) *
1) Последовательная. На первой секунде меряем частоту на 1с интервале, запоминаем, на второй секунде меряем частоту на 1с интервале, запоминаем, и т.д. всего 1000 измерений за 1000с.
Согласен
Цитата
2) Параллельная. Входную частоту подключаем к 1000 МК с НЕЗАВИСИМЫМИ опорниками, через 1с получаем 1000 измерений.
Усредняем по первому варианту и по второму. Будет ли отличие? Нет, с точностью до погрешности не будет.
Согласен
Цитата
3) Рассмотрим третий вариант. Берём 1000 МК с НЕЗАВИСИМЫМИ опорниками и запускаем, но не все сразу, а поочерёдно по очередному фронту входной частоты.
Согласен, и ключевое слово здесь НЕЗАВИСИМЫМИ опорниками...
Цитата
4) Четвёртый вариант. Берём 1000 МК с общим опорником и делаем как в п.3.
Усредняем по третьему варианту и по четвёртому. Будет ли отличие? Нет, с точностью до погрешности не будет.
А вот здесь уже фиг, независимость измерений в вариантах 1-3 как раз и обеспечивали
НЕЗАВИСИМЫЕ опорники/или получение НОВЫХ данных(вариант 1)
Цитата
5) Заменяем 1000 МК с общим опорником по четвёртому варианту на один МК, который успевает сделать всю работу. Усредняем. Будет отличаться от первых 4-х вариантов? Нет, не будет. Q.E.D.
Тот же результат что и в пункте 4, измерения перестали быть независимыми...

Давайте рассмотрим переход от путкта 3 к пункту 4
Пусть у нас все 1000 MK работают от одного тактового генератора,
будут ли эти МК получать разные данные от схеммы захвата, да будут,
только разница между соседними "захватами" будет для всех МК одинаковой,
при одном и том же тактовом генераторе разница обусловленна только начальным значением...

Цитата(=GM= @ Aug 4 2008, 16:32) *
Никак вы не уймётесь. + и - там действительно нет,
Хорошо что с этим вы уже не спорите... smile.gif
Цитата
но писать равенства типа T4 - N4 = n1+n2+...+ n7 вы неправомочны и вот почему, в десятый раз пишу, между прочим. Пусть при измерении все ваши промежуточные Ni и Ti отмерены с ошибкой в +1 каждое, ну что поделаешь, ну так частоты легли. Относительно чего ошибка? Относительно истинного времени, например, в реале N1=100.99, а вы получите N1=101 и т.д. В итоге, ваши маленькие интервалы будут превышать действительное значение на 1 каждое, а в сумме будет любое число от 0 до 1000. В тоже время разность T4 - N4 отличается от истинного значения всего на ±1.
Вот Вы полную ерунду написали, если истинное время 1 периода = 100.99, то
схемма захвата даст 100 раз интервал 101 и 1 раз интервал 100 и в итоге скользящеее среднее
будет правильным, оно ни разу не будет отличаться от просто измерения за ~1сек
Цитата
В посте #167 вы пишете, "Тогда имеем T4 - N4 = n1+n2+...+ n7", ну откуда вы взяли такое равенство, если на самом деле T4 - N4 = n1+n2+...+ n7 +ЧИСЛО(в диапазоне 0..1000). Ну сложите, 101+201+301+401=401-101, равенства ведь нет, то есть налицо противоречие, значит так писать нельзя.
Давайте четко определимся, Ti и Ni это целые числа полученные от схеммы захвата,
nj - это разница между соседними срабатываниями схеммы захвата.
Если:
Цитата
101..201..301..401..
это времена когда сработала схемма захвата, то
(201-101)+(301-201)+(401-301) = (401-101) вполне такое валидное равенство,
видимо Вы так и не прочитали "правила" преобразования из моих предыдущих постов...
Цитата
Так что, для увеличения точности лучше увеличивать интервал наблюдения, а не усреднение соответствующего количества измерений.
Согласен на 100%, я уже давно сказал, смотрим например пост №161, что Ваш метод
по фиксации показаний на ~1 секундном интервале - правильный,
только этот метод эквивалентен скользящему среднему на неравномерной временной оси.

Спор только в том, что Вы можете получить 1000 НЕЗАВИСИМЫХ интервалов на 2x секундном интервале, поэтому я и показал как Ваши секундные интервалы разбиваются на "кусочки",
и как эти кусочки составляют те самые "независимые" интервалы...
bzx
Цитата(=GM= @ Jul 30 2008, 02:36) *
3) Рассмотрим третий вариант. Берём 1000 МК с НЕЗАВИСИМЫМИ опорниками и запускаем, но не все сразу, а поочерёдно по очередному фронту входной частоты.
4) Четвёртый вариант. Берём 1000 МК с общим опорником и делаем как в п.3.
Усредняем по третьему варианту и по четвёртому. Будет ли отличие? Нет, с точностью до погрешности не будет.

Это нечто иное как интегрирование по частоте. Т.е. аналитически это можно записать так:
Код
Fизм(t)=(1/T)*интеграл[0:T](F(t)*dt)

Как я понимаю, из постов выше T=1с и dt=1мс. F(t) – собственно, тики микроконтроллера, т.е. ni, i=1...1000

Данный метод измерения можно сравнить с движением автомобиля со скоростью v(t) за интервал следования T. Пройденный петь: S(t)= интеграл[0:T](v(t)*dt), средняя скорость на пути следования: V(t)=S(t)/T=(1/T)*интеграл[0:T](v(t)*dt).

Попутно, интегрирование по скорости, понятно, - путь, а интегрирование по частоте, что за физическая величина?

Как я понимаю, точность интегрирования будет определяться (dt/T). При (dt/T)->o (о-малое) рядом стоящие измерения никак нельзя считать независимыми, ну и обратное, измерения, стоящие на расстоянии T-(dt/T) можно считать независимыми.
singlskv
Цитата(bzx @ Aug 5 2008, 01:58) *
, интегрирование по скорости, понятно, - путь, а интегрирование по частоте, что за физическая величина?
Ну вроде как интегрируем ускорение и получаем моментальную скорость... smile.gif
=GM=
singlskv Согласен, и ключевое слово здесь НЕЗАВИСИМЫМИ опорниками...

Ну, никакое оно не ключевое, для 2-го варианта (параллельного) слово НЕЗАВИСИМЫЕ было взято только потому, чтобы в дальнейшем не придирались к одинаковым результатам.

singlskv А вот для 4-го варианта уже фиг

А вот здесь фигвам уже вам (:-). Давайте посмотрим по-пристальнее, что мы получаем в регистре захвата, поскольку вопрос достаточно тонкий. Мы там можем получить либо некоторое число N, либо N+1. То есть, отличие может быть на случайную δ, которая принимает значения 0 или 1 случайным образом.

Теперь давайте посмотрим, какая будет величина N1 для 1-го измерения с 1-м МК, если мы начнём с некоторого фронта под номером 1. Будет N1+ δ1. Надеюсь, согласны?

Теперь давайте на время забудем про это измерение и перескочим к другому фронту под номером 2. Какая будет величина N2 для 2-го измерения с тем же МК для фронта 2? Будет N2+ δ2. Вспомним про число N1+ δ1, оно хоть как-то зависит от числа N2+ δ2? Нет, никак не зависит. Теперь сами можете продолжить эти рассуждения для каждого измерения из 1000.

Пример. Пусть ваши мелкие интервалы равны 100, 200, 300, 400 и они покрывают время от 0 до 1000. Просуммируем их (100+δ)+(200+δ)+(300+δ)+(400+δ), в соответствии с вашей теорией эта сумма должна быть равна большому интервалу (1000-0)+2δ. Предположим, что это так. Представьте себе, что все δ встали в 1, тогда с левой стороны равенства будет 1004, а с правой 1002. Ну и что делать с разницей в 2 единицы? Куда её приписывать? Для суммы из 1000 членов разница может быть в 1000 (вообще, любое число от 0 до 1000), а с ней что делать? Выходит ваше предположение было неверно, и так разделять на интервалы, а потом суммировать нельзя. Кстати вот, равенство двух частей будет в одном частном случае, когда все δ=0, но это детерминированная задача, в жизни всё не так, правда ведь?
singlskv
Цитата(=GM= @ Aug 5 2008, 03:07) *
А вот здесь фигвам уже вам (:-). Давайте посмотрим по-пристальнее, что мы получаем в регистре захвата, поскольку вопрос достаточно тонкий. Мы там можем получить либо некоторое число N, либо N+1. То есть, отличие может быть на случайную δ, которая принимает значения 0 или 1 случайным образом.

А вот как раз сдесь мы имеем то что имеем, новых циферков блин не завезли ...

Насчет регистра захвата,
Вы принципиально будете утверждать что если я вдруг им решил воспользоватся,
то это тут же повлитяет на все другие измерения ?

Цитата(=GM= @ Aug 5 2008, 03:07) *
Пример..................

Давайте так:
Вы приводите численный пример и я рассказываю как его нужно преобразовать/воспринимать....
готовы ?
=GM=
Вы знаете почему шахматные гроссмейстеры сдаются в критической ситуации, а не играют до конца?
singlskv
Цитата(=GM= @ Aug 5 2008, 12:25) *
Вы знаете почему шахматные гроссмейстеры сдаются в критической ситуации, а не играют до конца?

Вы уже вторую неделю не можете привести реальный численный пример...
критическая ситуация ? smile.gif

если все же надумаете привести пример, то выглядеть должно примерно так:
- есть частота(или период) xx.yy
- получаем от схемы захвата числа N1,T1 N2,T2 итд
- показываем на этих числах как сумма длинн маленьких отрезков не равна целому отрезку
=GM=
Цитата(singlskv @ Aug 5 2008, 10:28) *
Вы уже вторую неделю не можете привести реальный численный пример...критическая ситуация?

Не надо себя вести, как третьеразрядник, не к лицу.

Цитата(singlskv @ Aug 5 2008, 10:28) *
- показываем на этих числах как сумма длин маленьких отрезков не равна целому отрезку

Посмотрите пример из поста #177. Для коротких отрезков измеренные числа n(i) = 101, 201, 301, 401. N0=0, N4=1001. Смотрите сами, N4-N0 НЕ РАВНО сумме коротких отрезков 101+201+301+401. Разница равна 3, что делать?
singlskv
Цитата(=GM= @ Aug 5 2008, 16:06) *
Посмотрите пример из поста #177. Для коротких отрезков измеренные числа n(i) = 101, 201, 301, 401. N0=0, N4=1001. Смотрите сами, N4-N0 НЕ РАВНО сумме коротких отрезков 101+201+301+401. Разница равна 3, что делать?

Я вроде как просил привести пример данных полученных от схемы захвата,
а Вы упорно мне подсовываете данные длинн отрезков непонятно как подсчитанные...
я же очень четко высказал пожелания как это должно выглядеть:
- есть частота(или период) xx.yy
- получаем от схемы захвата числа N1,T1 N2,T2 итд
то есть Вам нужно написать:
F(или T)=....
N1=...
N2=...
....
T1=...
T2=...
....
где Ni - начало длинного интервала, а Ti - его конец
ну и конечно 1000 пар писать не нужно, 4 достаточно...
а n(i) мы потом вместе подсчитаем...
=GM=
Цитата(singlskv @ Aug 5 2008, 11:29) *
а Вы упорно мне подсовываете данные длин отрезков, непонятно как подсчитанные...

Ну так сами и преобразуйте, вы сами показывали пример, как сделать обратное преобразование, и вы сами уверяли, что точность не теряется, вот и покажите ваши недюжинные способности.
singlskv
Цитата(=GM= @ Aug 5 2008, 16:40) *
Ну так сами и преобразуйте, вы сами показывали пример, как сделать обратное преобразование, и вы сами уверяли, что точность не теряется, вот и покажите ваши недюжинные способности.

не очень понятно откуда взялись такие промежутки... но я попробую
Цитата(=GM= @ Aug 5 2008, 16:06) *
Для коротких отрезков измеренные числа n(i) = 101, 201, 301, 401. N0=0, N4=1001. Смотрите сами, N4-N0 НЕ РАВНО сумме коротких отрезков 101+201+301+401. Разница равна 3, что делать?

при таких n(i) захвата в момент N4=1001 просто небыло
были захваты Ni:
0
101
101+201=302
302+301=603
603+401=1004
то есть захват N4 был в 1004 а никак не в 1001

потрудитесь все же привести какой-нить более реальный пример с исходными данными от
схемы захвата... чтоб и Вам наконец все стало понятно...


Цитата(=GM= @ Aug 5 2008, 03:07) *
А вот здесь фигвам уже вам (:-). Давайте посмотрим по-пристальнее, что мы получаем в регистре захвата, поскольку вопрос достаточно тонкий. Мы там можем получить либо некоторое число N, либо N+1. То есть, отличие может быть на случайную δ, которая принимает значения 0 или 1 случайным образом.
........
Представьте себе, что все δ встали в 1,

δ - не случайная величина, при достаточном количестве измерений она будет и в + и в -
при более менее стабильном входном сигнале δ не будет всегда 1
пример:
реальные данные(время периода):
2,6
2,6
2,6
2,6
срабатывание схемы захвата(допустим по середине такта МК):
0
round(2,6)=3
round(2,6+2,6=5,2)=5
round(2,6+2,6+2,6=7,8)=8
round(2,6+2,6+2,6+2,6=10,4)=10
получаем промежутки:
3-0=3
5-3=2
8-5=3
10-8=2
считаем их сумму
(3-0)+(5-3)+(8-5)+(10-8)=10

Вот блин, как странно, сумма то совпала.... smile.gif
плохой пример наверное... 08.gif
=GM=
Давайте задвинем эту вашу теорию в долгий ящик (возможно, она хороша, а я не смог её оценить, так что развивайте её дальше, но без меня), и вернёмся всё-таки к 4-му варианту.

1) Нарисуем на бумаге меандры входной частоты и меандры опорного сигнала. Пронумеруем фронты входного сигнала 1, 2,..,1000, 1001,...

2) Начнём измерение с 1-го фронта и закончим на 1000-м. Определили частоту.

3) Начнём измерение со 2-го фронта и закончим на 1002-м. Определили частоту.

4) Завершим все измерения 3-1003, 4-1004,..,1000-2000. Определим частоты.

5) Построим график зависимости частоты от дискретного времени, очевидно это будет случайная функция, выглядящая как белый шум. Построим плотность распределения данного процесса. Очевидно, это будет "дискретное" гауссовское распределение (при наших допущениях).

Согласны?
singlskv
Цитата(=GM= @ Aug 5 2008, 18:30) *
Давайте задвинем эту вашу теорию в долгий ящик (возможно, она хороша, а я не смог её оценить, так что развивайте её дальше, но без меня), и вернёмся всё-таки к 4-му варианту.
то есть "правильного" примера не будет ?
можно что угодно и куда угодно задвигать, только истина от этого не изменится,
теория про "маленькие" интервалчики это не механизм измерения а метод оценки погрешности....
Цитата
1) Нарисуем на бумаге меандры входной частоты и меандры опорного сигнала. Пронумеруем фронты входного сигнала 1, 2,..,1000, 1001,...

2) Начнём измерение с 1-го фронта и закончим на 1000-м. Определили частоту.

3) Начнём измерение со 2-го фронта и закончим на 1002-м. Определили частоту.

4) Завершим все измерения 3-1003, 4-1004,..,1000-2000. Определим частоты.

5) Построим график зависимости частоты от дискретного времени, очевидно это будет случайная функция, выглядящая как белый шум. Построим плотность распределения данного процесса. Очевидно, это будет "дискретное" гауссовское распределение (при наших допущениях).

Согласны?

Конечно... НЕТ...
разница между:
3) Начнём измерение со 2-го фронта и закончим на 1002-м. Определили частоту.
и
2) Начнём измерение с 1-го фронта и закончим на 1000-м. Определили частоту.
вполне детерминированная, опрник то(тактовая мк) у нас ОДИН и ВСЕ события
в нашей измерительной системме привязанны к этому опорнику...
ae_
Цитата(singlskv @ Aug 6 2008, 00:14) *
то есть "правильного" примера не будет ?
можно что угодно и куда угодно задвигать, только истина от этого не изменится,
теория про "маленькие" интервалчики это не механизм измерения а метод оценки погрешности....
(skip)

Возможно, я смогу предложить численный пример, когда сумма измерений маленьких отрезков не будет равна большому отрезку. Допустим, тактовая=8МГц, а Fx=(число ПИ)МГц. Не 3.14МГц, а именно иррацинальное число, когда ни один фронт Fx никогда не совпадёт с фронтом опорной частоты(пусть совпадает первый фронт, для удобства расчёта).
singlskv
Цитата(ae_ @ Aug 6 2008, 15:19) *
Возможно, я смогу предложить численный пример, когда сумма измерений маленьких отрезков не будет равна большому отрезку. Допустим, тактовая=8МГц, а Fx=(число ПИ)МГц. Не 3.14МГц, а именно иррацинальное число, когда ни один фронт Fx никогда не совпадёт с фронтом опорной частоты(пусть совпадает первый фронт, для удобства расчёта).
то что ПИ иррациональное ничего не меняет, от схемы захвата мы получаем
только целые числа.
Хорошо, давайте посмотрим на Ваш пример.
Пусть для определенности, захват происходит ровно по середине нашего тактового сигнала.
Для простоты объяснения будем считать что захват просходит по каждому фронту входной частоты,
понятно что мк с этим не может справиться, просто так проще объяснять.
Fтак=8МГц Tтакт=1/8 мкс
Fx=ПИ Мгц Tx=1/ПИ мкс
тогда захваты будут происходить в моменты времени
Ni=round(8*i/ПИ) округление, тк захват дает только целые числа и мы фиксируем
захват ровно по центру тактовой
разница между соседними захватами ni=N(i+1)-Ni
теперь переходим к числам:
Код
i   Ni=round(8*i/PI)    ni=N(i+1)-Ni
0    0    3
1    3    2
2    5    3
3    8    2
4    10    3
5    13    2
6    15    3
7    18    2
8    20    3
9    23    2
10    25    3
11    28    3
12    31    2
13    33    3
14    36    2
15    38    3
16    41    2
17    43    3
18    46    2
19    48    3
20    51

Сумма чисел ni в 3 столбце =51 что совпадает с N20
а иначе и быть не могло
Sum(ni)=Sum(N(i+1)-Ni)=Nконечное-Nначальное
то есть для i=0-20 Sum(ni)=N20-N0=N20

приведу еще один пример, представьте себе тетрадный листок в клетку
Вам разрешили на нем нарисовать отрезок который начинается и заканчивается на перекрестиях,
те содержит целое количество клеток
Вам разрешили поставить на этом отрезке несколько точек в перекрестиях которые делят
большой отрезок на несколько маленьких.
Будет ли сумма длин маленьких отрезков всегда равна длине большого?
да, будет.
Artemiy14
Интересная тема, но прочитав полностью разочаровался. Ошибка данного метода, заключается(может я и не прав) не только в математических выкладках или точности определения М, а в физике! Пусть мы получили за 1сек М=170000 и посчитали по каким угодно хитрым формулам и получили Fx = Fо*М/(N±1)=170000±0.010625 Гц. Но давайте посмотрим какая частота может нам дать за 1сек М=170000! Это может быть частота от 170000.0000(0) до 170000.9999(9). Таким образом мы можем даже не учитывая ±0.010625 Гц ошибиться на ±1Гц. Оно и понятно если почитать стат физику можно найти что для определения лучше ±1Гц нужно измерять частоту на более продолжительном отрезке времени, иначе неоткуда взяться лишней информации.
Хотелось бы услышать мнения по поводу моих рассуждений. В предыдущем посте написано даже лучше, но здесь рассуждения с другой точки зрения.
=GM=
Сожалею, но придётся вас ещё немного разочаровать: метод правильный, а вот ваши рассуждения ошибочны. Только одна частота 170000 Гц может дать ЦЕЛОЕ число периодов за одну секунду, в слове ЦЕЛОЕ заключается вся соль метода.

Пример. Рассмотрим частоту 170000.01 Гц. Для целого числа периодов М=170001, контроллер насчитает число N=20000117±1. Проверьте, правильно ли. Далее МК вычисляет Fx = Fо*М/N=20000000*170001/20000117=170000.0055 и округляет до 170000.01. Ну и где тут ошибка?

(Замечу в скобках, можете поменять М в разумных пределах и определить соответствующее число N для ЦЕЛОГО числа периодов М, частота не изменится)
defunct
Цитата(Artemiy14 @ Nov 13 2009, 19:34) *
Хотелось бы услышать мнения по поводу моих рассуждений.

В рассуждениях забыли учесть, что счет прекращается не сразу по факту завершения секунды, а по факту захвата перепада измеряемого сигнала. Если об этом не забывать, то очевидно, что измерение продлится чуть-чуть дольше секунды и эти "чуть-чуть дольше" как раз и дают возможность определить дробную часть измеряемой частоты.
singlskv
Цитата(=GM= @ Nov 14 2009, 02:13) *
Сожалею, но придётся вас ещё немного разочаровать: метод правильный, а вот ваши рассуждения ошибочны. Только одна частота 170000 Гц может дать ЦЕЛОЕ число периодов за одну секунду, в слове ЦЕЛОЕ заключается вся соль метода.

Пример. Рассмотрим частоту 170000.01 Гц. Для целого числа периодов М=170001, контроллер насчитает число N=20000117±1. Проверьте, правильно ли. Далее МК вычисляет Fx = Fо*М/N=20000000*170001/20000117=170000.0055 и округляет до 170000.01. Ну и где тут ошибка?

А давайте посчитаем тогда для частоты 5000000,01. Для целого числа периодов М=5000001, контроллер насчитает число
N=INT(20000000/5000000,01*5000001)=INT(20000003,95999999)=20000003 (на самом деле может насчитать и 20000002 если семплирование
в самом конце такта проца)
Далее МК вычисляет Fx = Fо*М/N=20000000*5000001/20000003=5000000,2499999

то есть разница 5000000,2499999-5000000,01=0,239999 Гц что собственно и не удивительно
а теперь прикинем если семплирование в самом конце такта проца:
Далее МК вычисляет Fx = Fо*М/N=20000000*5000001/20000002=5000000,49999995
то есть разница уже 0,48999995 Гц

ИТОГО: для сигнала ~5000000Гц мы получаем ~+- 0,25Гц
что и следовало ожидать...
rx3apf
Цитата(singlskv @ Nov 14 2009, 19:07) *
ИТОГО: для сигнала ~5000000Гц мы получаем ~+- 0,25Гц
что и следовало ожидать...

О чем спор-то идет, неужели за два года эту математику не обсосали до косточек ? Разрешающая способность определяется временем счета и частотой опорника, обсуждаемый метод позволяет сохранить это разрешение для измеряемой частоты много меньше опорной (проблема простых любительских частотомеров с прямым счетом в фиксированном окне). 1 секунда, 20 MHz опорной. 5E-8. Да, входная частота 5 MHz - разрешение 0.25 Hz (а если просто за секунду считать, то 1 Hz). Где здесь предмет спора ?
singlskv
Цитата(rx3apf @ Nov 14 2009, 19:17) *
Где здесь предмет спора ?
предмет спора здесь в том что некоторые товарищи утверждают что взяв длительность измерений всего в 2 раза
больше можно достичь точности в 1000 раз большей...
хотя если они будут производить измерения по своим формулам просто за 2 секунды то в 1000 раз уж точно не получат...
rx3apf
Цитата(singlskv @ Nov 14 2009, 22:02) *
предмет спора здесь в том что некоторые товарищи утверждают что взяв длительность измерений всего в 2 раза
больше можно достичь точности в 1000 раз большей...
хотя если они будут производить измерения по своим формулам просто за 2 секунды то в 1000 раз уж точно не получат...

Если речь идет о измерении малых частот, то применяя описанный метод, можно увеличть разрешение по частоте не то что в 1000, а и много больше, даже не увеличивая время счета. Простой пример - входная частота 50 Hz. Счетом в окне 1 sec при опорной частоте 20 MHz можно получить разрешение 1 Hz, а привязавшись к фронту входного - в 8000 раз лучше, причем за то же время. Другой пример - СВЧ-частотомер с внешним прескалером... Т.е. пока входная частота ниже опорной, этот метод дает серьезный выигрыш по разрешению, и чем меньше входная частота, тем этот выигрыш больше. Никаких чудес, метод самоочевидный и общеизвестный...
singlskv
Цитата(rx3apf @ Nov 14 2009, 22:20) *
а привязавшись к фронту входного - в 8000 раз лучше, причем за то же время.

Здесь вопрос во сколько раз лучше можено получить
и привязка рассматривается только к входному сигналу...
то есть метод произволных ворот никто не рассматривает
rx3apf
Цитата(singlskv @ Nov 14 2009, 23:18) *
Здесь вопрос во сколько раз лучше можено получить
и привязка рассматривается только к входному сигналу...
то есть метод произволных ворот никто не рассматривает

Вот "привязка к входному сигналу" и есть "произвольные ворота". Т.е. "ворота" точно кратны периоду входного сигнала. Есть некоторое базовое значение (скажем, 1 sec), но оно растягивается таким образом, чтобы получить целое число входных. Что тут непонятного ?
И да, при экстремально низких входных частотах интервал может растянуться вдвое. При входной частоте 1 Hz - односекундный может вдвое увеличиться. Но оно того стоит...
singlskv
Цитата(rx3apf @ Nov 14 2009, 23:25) *
Что тут непонятного ?
Вы топик то полностью читали ?
Леонид Иванович
Всё верно утверждают.
=GM=
Л.И., мысль очень глубокая (:-). Нельзя ли изложить её по пунктам?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.