Artemiy14
Nov 16 2009, 14:21
Согласен, я ошибался. defunct, но тогда объясните, как тот факт что счет прекращается не сразу по факту завершения секунды, а по факту захвата перепада измеряемого сигнала, дает возможность определить дробную часть измеряемой частоты. Как я понял для вышеприведенного примера это есть добавка 117 к 20000000 за то дополнительное время к секунде, после которого измерение и прекращается. Или я опять не совсем понял.
Спасибо всем за ответы, тема действительно интересная.
Artemiy14
Nov 16 2009, 15:53
И еще интересно, есть ли формула для погрешности определения частоты от M, N и времени измерения. Предельный случай когда M=N и тогда для времени измерения 1сек. ошибка будет +-1Гц. Правда это только в теории, корректно измерить частоту, как я знаю, можно только в два раза меньшую частоты тактирования МК.
Цитата(Artemiy14 @ Nov 16 2009, 17:21)

тогда объясните, как тот факт что счет прекращается не сразу по факту завершения секунды, а по факту захвата перепада измеряемого сигнала, дает возможность определить дробную часть измеряемой частоты.
Возьмите любой измерёметр с нониусной шкалой (хотя, н-р, если вспомогательную шкалу укоротить не на 1/10, а на 1/20 и разбить, соответственно, на 20 частей, нониусной её называть уже неверно, но прижилось) - это наглядная иллюстрация обсасываемого метода.
Леонид Иванович
Nov 16 2009, 16:50
Цитата(=GM= @ Nov 15 2009, 19:11)

Л.И., мысль очень глубокая (:-). Нельзя ли изложить её по пунктам?
Да Вам-то ничего объяснять не надо, всё сами знаете

Уже достало, когда никак не хотят понять принцип работы Reciprocal Counter.
Artemiy14
Nov 16 2009, 18:10
О, незнакомое слово Reciprocal.

Шучу. Что такое, где почитать? Кстати измерёметр с нониусной шкалой это что за весчь? Логарифмическую знаю, но такого зверя не встречал.
Цитата(Artemiy14 @ Nov 16 2009, 21:10)

Кстати измерёметр с нониусной шкалой это что за весчь? Логарифмическую знаю, но такого зверя не встречал.
Штангенциркуль, микрометр. В логарифмической линейке оно тоже есть, причем местами в хитровыподвывернутом виде.
singlskv
Nov 16 2009, 23:47
Перечитал наш спор, долго думал...
Цитата(=GM= @ Aug 5 2008, 02:07)

А вот здесь фигвам уже вам (:-). Давайте посмотрим по-пристальнее, что мы получаем в регистре захвата, поскольку вопрос достаточно тонкий. Мы там можем получить либо некоторое число 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, но это детерминированная задача, в жизни всё не так, правда ведь?
но так и не понял каким образом все δ могут встать в 1
немогли бы Вы привести просто численный пример ?
ну или сказать что такой пример Вы привести не можете...
Особенно интересно звучит вот это:
Вспомним про число N1+ δ1, оно хоть как-то зависит от числа N2+ δ2для случая "идеального" проца который успевает ловить все фронты.
то есть при длительности сигнала например 2,4 условных единицы
0 2,4 4,8 7,2 <-периоды входного сигнала
0 3 5 8 <-целые от схемы захвата
3 2 3 <-разница показаний от схемы захвата
видно что δ2 ну просто совсем не зависит от δ1...
Цитата(xemul @ Nov 16 2009, 20:30)

Возьмите любой измерёметр с нониусной шкалой ... - это наглядная иллюстрация обсасываемого метода.
Здравствуйте.
Нониусный метод измерения предполагает наличие минимум двух мер, находящихся между собой в точно определенном соотношении.
Нажмите для просмотра прикрепленного файла В "обсасываемом" методе (посты #23,#39,#43) имеется только одна мера (
Fo), импульсами (
N) которой меряется
целое число периодов (
M) измеряемой частоты и, на основе полученных данных, делается
расчет (Fx). Поэтому, иногда, этот метод называют "вычислительным".
Время измерения (
Тизм.) в этом методе является вспомогательной величиной, служащей для обеспечения заданной погрешности измерения.
ИМХО, тема уже давно переросла рамки раздела AVR.
Ну, метод, обсуждаемый в данной ветке определенно не нониусный. Года два назад я придумал другой метод, сейчас могу сказать, что он точно нониусный, хотя до вашего поста я его так не квалифицировал, вообще не задумывался об этом, как-то далеко штангели были от меня.
akl, что за книгу вы цитировали? Нельзя ли на неё взглянуть, чисто для ознакомления?
Цитата(akl @ Nov 17 2009, 06:39)

Нониусный метод измерения предполагает наличие минимум двух мер, находящихся между собой в точно определенном соотношении.
В "обсасываемом" методе (посты #23,#39,#43) имеется только одна мера (Fo), импульсами (N) которой меряется целое число периодов (M) измеряемой частоты и, на основе полученных данных, делается расчет (Fx). Поэтому, иногда, этот метод называют "вычислительным".
"Возьмите любой измерёметр с нониусной шкалой ... - это наглядная
упрощённая иллюстрация обсасываемого метода."
Так лучше?

То, что вычисления в нониусном методе были проделаны до измерения, не делает его
попердикуляр ортогональным методу, иногда называемому вычислительным.
ЗЫЖ у меня в 80-х годах ночью нарисовался крутой быстро-целочисленный алгоритм, который во многие разы делал плавучие аналоги из библиотек. Лет через 5 я узнал про старика Брезенхайма и самостоятельно догадался, что мой алгоритм не более, чем частный случай его алгоритма. Но и его алгоритм - обобщение нониусного метода, которым пользовались еще в Древнем Египте. Людям вообще нравится придумывать новые названия - так, н-р, патентовать проще.
Я к тому, что подробности и погрешности рассматриваемого метода можно узнать, наверное, в любом учебнике по методам измерений и съэкономить некоторое количество копий.
Цитата(singlskv @ Nov 16 2009, 23:47)

Перечитал наш спор, долго думал...
Эк вас зацепило (:-). Подкиньте 1000 раз монету и объясните, откуда вдруг все решки взялись. Или вот, измерьте 1 км с помощью обычной 300 мм линейки. Совпадёт результат с 10Е6 мм? Уверен, что нет. Ну, объясните народу, почему не совпало.
singlskv
Nov 17 2009, 11:24
Цитата(=GM= @ Nov 17 2009, 13:31)

Подкиньте 1000 раз монету и объясните, откуда вдруг все решки взялись.
возмите входной сигнал с периодом 2.9 и покажите на нем как Вы планируете
получить все δ близкие к единице на 10 фронтах входного сигнала ПОДРЯД
у меня как-то не получается:
Код
0 2.9 5.8 8.7 11.6 14.5 17.4 20.3 23.2 26.1 29 <-- фронты
0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 <-- δ
Цитата(=GM= @ Nov 17 2009, 14:02)

akl, что за книгу вы цитировали? Нельзя ли на неё взглянуть, чисто для ознакомления?
Это из книги П.П.Орнатского "АВТОМАТИЧЕСКИЕ ИЗМЕРЕНИЯ И ПРИБОРЫ", которую скачал по этой ссылке
http://electronix.ru/forum/index.php?s=&am...st&p=397706
singlskv, чувствую у вас есть план. План, как меня с ума свести (:-).
Ну дались вам эти отрезки! Вы неправильно понимаете СУЩНОСТЬ предложенной мною методики перекрывающихся измерений. Начиная с понятия, что такое независимые измерения. Я уж не говорю о ТВ. Прошу, без обидок.
Леонид Иванович
Nov 22 2009, 18:51
Конечно же этот метод нельзя назвать нониусным. Иначе измерялись бы интервалы времени, меньшие периода опорной частоты. Например, с помощью двух генераторов с небольшой расстройкой. Но есть и другие методы. Я в своем частотомере достигаю увеличения разрешения измерения временных интервалов с помощью аналоговых интерполяторов. Их логика реализована внутри CPLD, фактически они представляют собой преобразователи время-код.
Я сделал косвенным нониусным методом, что эквивалентно 500 МГц заполнению окна захвата. Хочу довести погрешность измерения частоты 10 ГГц до 1 Гц
Kabron
Jan 20 2010, 04:07
Скакнул сюда сразу с 3й страницы. Если я правильно понял =GM=, то вся изюмина и сухой остаток метода состоит именно в привязке к фронтам входного сигнала. Это гарантирует, что мы меряем всегда законченный цикл входной частоты. А значит точность измерения определяется только тактовой частотой. И совершенно неважно каким образом эти события фиксировать, захватом или иными прерываниями.
Иными словами, воротами должен управлять сам измеряемый сигнал.
Фактически, это то же самое, что мы делаем при измерении периода, только периодов считаем не один а много.
Именно так. Механизм захвата в аврках аппаратно фиксирует время появления фронта, как его обрабатывать совершенно неважно.
Ну раз вы так легко выцедили самую сущность метода, то теперь вам осталось объяснить singlskv возможность и методу статистической обработки нескольких перекрывающихся по времени измерений :-).
Kabron
Jan 20 2010, 12:55
Цитата(=GM= @ Jan 20 2010, 13:59)

Именно так. Механизм захвата в аврках аппаратно фиксирует время появления фронта, как его обрабатывать совершенно неважно.
Ну раз вы так легко выцедили самую сущность метода, то теперь вам осталось объяснить singlskv возможность и методу статистической обработки нескольких перекрывающихся по времени измерений :-).
Таки можно пойти и дальше: в аналоговых измерениях с АЦП есть прием оверсэмплинга, позволяющий виртуально увеличить разрядность АЦП.
Не вижу никаких ограничений, мешающих применить этот прием для измерения временных параметров.
singlskv
Jan 20 2010, 21:04
Цитата(=GM= @ Jan 20 2010, 13:59)

Ну раз вы так легко выцедили самую сущность метода, то теперь вам осталось объяснить singlskv возможность и методу статистической обработки нескольких перекрывающихся по времени измерений :-).
=GM= Вы меня провоцируете ?

я Вам расказал как просто модифицировать Ваш метод чтоб к нему не было никаких претензий...
и показал примеры когда Ваши "установки"(типа бросания монетки) просто не работают...
ну могу скопировать конечно нашу частную беседу сюда, если конечно Вы в этом тоже заинтересованны...
Не, не надо. Частная беседа - это частная беседа по определению. Как модифицировать метод - расскажите здесь, если только кратко и вдумчиво, если длинно и непонятно - лучше не надо.
Я вас нисколько не провоцирую, просто появился человек, который парой фраз выявил сущность нескольких десятков страниц, я так не могу. Вот я ему и предложил так же кратко и внятно объяснить вам, а заодно и всем остальным, и мне в том числе, сущность предлагаемой методы. У меня не получилось, может у него получится. Хотя его намёк на аналогию с оверсемплингом, на мой взгляд, здесь не подходит.
Kabron
Jan 21 2010, 03:52
Я пока до вашей дискуссии не дочитал. Нахожусь на 9 стр. Делаю стробоскопический преобразователь для звуковой карты и момент измерения частоты весьма актуален. Но постепенно догоняю.
=GM=, что скажете за оверсэмплинг? В сети куча инфы по его применению для АЦП(например
http://ww1.microchip.com/downloads/en/AppN...g%2001152A.pdf), но мне каэца что он отлично подойдет для временный измерений.
rezident
Jan 21 2010, 07:43
Цитата(Kabron @ Jan 20 2010, 09:07)

Если я правильно понял =GM=, то вся изюмина и сухой остаток метода состоит именно в привязке к фронтам входного сигнала.
Вся суть заключена в том, что
любое измерение относительно. Поэтому нет принципиальной разницы измерять ли входной сигнал относительно опорного или опорный сигнал относительно входного. Как удобно, так и меряйте.
Кстати, суть этой философии (относительности измерения) в советском мультфильме "
38 попугаев" отражена
Цитата(Kabron @ Jan 21 2010, 03:52)

=GM=, что скажете за оверсэмплинг? ... мне каэца что он отлично подойдет для временных измерений
Вгрубе оверсамплинг размазывает цифровой шум квантования на бОльшую полосу, затем отфильтровывается только полоса, содержащая полезный сигнал (которая заведомо Уже), отсюда получается некий выигрыш в выходном отношении С/Ш. Если задача и условия позволяют, то можно применить, почему нет. А вот как всё это использовать для измерения частоты, шут её знает.
Kabron
Jan 21 2010, 15:58
Цитата(=GM= @ Jan 21 2010, 15:37)

Вгрубе оверсамплинг размазывает цифровой шум квантования на бОльшую полосу, затем отфильтровывается только полоса, содержащая полезный сигнал (которая заведомо Уже), отсюда получается некий выигрыш в выходном отношении С/Ш. Если задача и условия позволяют, то можно применить, почему нет. А вот как всё это использовать для измерения частоты, шут её знает.
По-моему имеет место некоторое недопонимание. Берем Ваш метод 1000 измерений, для простоты 4 измерения, складываем измеренные частоты но делим не на 4 а на 2, получая тем самым дополнительные знаки до или после запятой. Так это работает для АЦП в частности. Шум здесь действительно имеет значение, именно он "размазывает" измерения, позволяя извлечь дополнительную точность. На практике это довольно широко применяется(опять же оговорюсь для АЦП) и практически каждая фирма производитель имеет соответствующий апноут.
Поскольку я больше практик, то в ближайшее время попробую это проверить.
Цитата(Kabron @ Jan 21 2010, 15:58)

Берем Ваш метод 1000 измерений, для простоты 4 измерения, складываем измеренные частоты но делим не на 4 а на 2, получая тем самым дополнительные знаки до или после запятой. Так это работает для АЦП в частности. Шум здесь действительно имеет значение, именно он "размазывает" измерения, позволяя извлечь дополнительную точность
1) Если сложить 4 измерения, а поделить на 2, как вы предлагаете, то получите не дополнительные знаки, а чудовищную ошибку. Например, 4 измерения 1000, 1002, 1004, 1006, среднее даст 1003, а ваше деление 2006. Ваш подход никуда не годится.
2) Прочитал статью по вашей ссылке из поста #222, в первом приближении оверсамплинг работает так, как я описал выше. Чтобы получить дополнительные знаки, придётся сильно потрудиться, в частности, фильтровать сигнал после ацп в более узкой полосе.
3) Если просто суммировать N значений с ацп, и сумму поделить на N, то вы получите матожидание, или попросту говоря, среднее значение. Конечно, среднее значение будет меньше телепаться, чем одиночное измерение, но точность его будет не лучше. И вообще, для оценки качества обработки серии измерений лучше следить за стандартным отклонением, оно более показательно.
Kabron
Jan 22 2010, 02:04
=GM= 1) Если сложить 4 измерения, а поделить на 2, как вы предлагаете, то получите не дополнительные знаки, а чудовищную ошибку. Например, 4 измерения 1000, 1002, 1004, 1006, среднее даст 1003, а ваше деление 2006. Ваш подход никуда не годится.
Да, я по дороге с работы по морозцу это осознал - механизмы разные. Значения АЦП еще и масшабируются по новой шкале под референс. А у нас референса нет.
Kabron
Jan 22 2010, 03:27
Вот еще одно "пособие" от уважаемого производителя, в котором на мой взгляд, раскладывается по полочкам почти все что здесь обсуждалось.
singlskv
Jan 26 2010, 21:38
Цитата(=GM= @ Jan 21 2010, 01:39)

Не, не надо. Частная беседа - это частная беседа по определению. Как модифицировать метод - расскажите здесь, если только кратко и вдумчиво, если длинно и непонятно - лучше не надо.
Ну собственно просто скопирую этот кусок(тока кусок..) из нашего обсуждения:
Код
singlskv:
я вот чего совсем не понимаю, зачем в данном случае придумывать самому себе сложности ?
зачем для этого алгоритма выбирать именно 1мс интервалы начала нового интервала(для частот порядка Мгц) ?
кто собственно мешает сделать эти интервалы действительно независимыми ?
ну вот возмем к примеру длительность начала очередного измерения как некое случайное число
от 10000(500мкс) до 30000(1,5мс) тактов (пойдут даже псевдослучайные с нормальным распределением)
тогда и средняя длительность всех 1000 измерений будет ~2сек
и каждый интервал будет действительно независимым относительно той точности которую мы можем получить за 1000 измерений
и проц с такими интервалами точно справится
зачем все усложнять и пытаться доказывать возможность перехода от случайных начал преобразований к переодическим,
тем более это не так, по крайней мере на всем множестве входных частот ?
Извините за новый пост в "забытой" ветке, но тема "три частоты на ATmega128 с использованием таймеров" меня очень интересует. Почитав ветку я значительно повысил свои знания по точности измерения частоты, но ответа про "три частоты на ATmega128...", к сожалению не увидел. В ветке вскользь описывалась схема измерения нескольких частот с использованием компаратора, но это, по-сути, одноканальный частотомер. Если уважаемых членов форума не затруднит, то хотелось бы услышать ответ на вопрос - можно ли измерять 3 (а лучше 5) частот одновременно. Если "да", то на какие ноги МК следует подводить сигналы измеряемых частот (AVR только начал изучать - задача заставила).
1) Можно, читайте пост #28
2) Не компаратор, а мультиплексер, читайте пост #28, там всё написано
Прошу прощенья за описку. Конечно я имел ввиду мультиплексер, а не компаратор. С мультиплексером все более или менее понятно. Насколько я понимаю, каналы всех СТА частот мультиплексируются и подаются на МК по одному каналу. Пост 28 я читал.
Цитата
ещё один метод измерения придумался, и не одной, не трёх, а десятков частот. После получения стартовых Мнач и Nнач и завершающих пар Мкон и Nкон для одной частоты подключаете к МК мультиплексором другую частоту и получаете новую пару стартовых М и N. И так для десятка-другого частот, насколько мультиплексора хватит и в зависимости от требуемой точности. В течение одной секунды можно измерить СТО частот, поскольку для достижения точности ±1 Гц предлагаемым методом потребное время измерения составляет 10 мс (для максимальной частоты 170 кГц)
Вопрос в другом. Можно ли измерять три частоты
одновременно, подав их на МК без мультиплексера.
Что вы имеете в виду, говоря "одновременно"? Разные частоты дадут фронты входных сигналов с разбросом во времени, так что строго говоря измерение трёх частот не может быть осуществлено одновременно. Если допусается некий разброс в "одновременности", то можно поставить МК с несколькими схемами захвата. Например, МК АТмега1280 имеет четыре схемы захвата, значит, можно измерить четыре частоты "одновременно". Но лучше пмсм поставить три самых дешёвых МК с одной схемой захвата в каждом.
Спасибо, понял. Я опять выразился некорректно. Одновременно, это означает независимо и параллельно. Для измерения 3-х частот я предполагал выбрать ATmega32, который, если я не ошибаюсь, имеет три схемы захвата.
Ну тогда снова начну с сообщения #1
Зачем с первого? Читайте описание на конкретный МК. МК может иметь несколько таймеров, каждый таймер в своём составе может иметь модуль захвата (а может и не иметь). ATmega32 имеет три таймера, но только таймер1 имеет схему захвата.
sansnotfor
Sep 17 2011, 21:08
Реализация описанного алгоритма для AVR
http://chipenable.ru/index.php/programming...mer-na-avr.htmlК сожалению не удалось добиться заявленной точности
Цитата
К сожалению не удалось добиться заявленной точности
мне тоже не удалось обычным счетчиком за 1 сек добится заявленной точности 1гц(молчу что я подавал на вход и как), были расхождения с китайским частотомером несколько гц при частоте ~1000гц

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

я думаю вы поняли к чему я клоню...

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