defunct 0 21 июля, 2008 Опубликовано 21 июля, 2008 · Жалоба defunct: Обоснуйте. Fo = 8Mhz, Fx = 4Mhz. Моим методом (ну не совсем моим, он известен давно, просто я его приспособил к периферии аврки, в этом смысле он мой) за 1 с интервал вполне реально сделать 1000 НЕЗАВИСИМЫХ измерений, потом обработать результат, вот и всё обоснование. допустим Fx не 4Mhz, а 3.98Mhz хотя это не суть важно, ну и как эти 1000 независимых измерений в сумме выйдут на точность ±0.005? Ведь чтобы выйти на такую точность нужно чтобы каждое отдельно взятое измерение обладало точностью не ниже |0.005| * 1000, а у вас точность одного измерения на интервале 1с = |0.25| если я не ошибаюсь (Fx/Fo = 0.5). меньше интервал ниже точность. i.e. если интервал равен двум периодам Fo - то точности нет вообще, можно лишь грубо оценить есть сигнал или нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Peeoner 0 21 июля, 2008 Опубликовано 21 июля, 2008 (изменено) · Жалоба Вот я наваял тут вобщем прогу по вашему методу,осталось только все слепить в кучю. Я как бы уже тему открывал,но раз уж тут есть тема по конкретному методу то спрошу тут. Если у меня период измерения будет 0.1с ,какую получю погрешность? И если период измерения будет не целым числом ,ну скажем 0.14-0.095 сильно это повлияет на точность?Тактовая частота АВРки 10Мгц,есть ли смысл подымать до 16? Есть ли смысл использовать 10 разрядов? Или 6 в самый раз? Изменено 21 июля, 2008 пользователем Peeoner Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 21 июля, 2008 Опубликовано 21 июля, 2008 · Жалоба допустим Fx не 4Mhz, а 3.98Mhz хотя это не суть важно Допустим, теоретически 4 МГц РОВНО (Fclk/2), хотя это и не суть важно. ну и как эти 1000 независимых измерений в сумме выйдут на точность ±0.005? Ведь чтобы выйти на такую точность нужно чтобы каждое отдельно взятое измерение обладало точностью не ниже |0.005| * 1000, а у вас точность одного измерения на интервале 1с = |0.25| если я не ошибаюсь (Fx/Fo = 0.5) Ошибаетесь, defunct, как всегда, впрочем(:-). Точность одного измерения на секундном интервале ±0.5 Гц, что вы всё время перевираете? Давайте, я вас совсем добью, и скажу, что за секунду сделаю 10000 НЕЗАВИСИМЫХ измерений, да что там 10 тыщ, давайте сделаем 50 тысяч измерений в секунду. Какая будет суммарная погрешность такого количества измерений по сравнению с погрешностью отдельного измерения, не подскажете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 21 июля, 2008 Опубликовано 21 июля, 2008 · Жалоба Ошибаетесь, defunct, как всегда, впрочем(:-). Точность одного измерения на секундном интервале ±0.5 Гц, что вы всё время перевираете? скорее делаю комплимент вашему методу. ибо раньше в ветке вы заявляли о ±0.5 Гц в методе ворот. В захвате же где Fo = 2Fx, вы обещали дать точность выше как раз за счет измерения периодов Fo. Читайте внимательней ;> Давайте, я вас совсем добью, и скажу, что за секунду сделаю 10000 НЕЗАВИСИМЫХ измерений, да что там 10 тыщ, давайте сделаем 50 тысяч измерений в секунду. Какая будет суммарная погрешность такого количества измерений по сравнению с погрешностью отдельного измерения, не подскажете? Добивать меня бесполезно и так defunct ;> Просто расскажите, что вы подразумеваете под НЕЗАВИСИМЫМ измерением, и какова точность отдельно взятого независимого измерения. И еще небольшой вопросик B) Подтверждаете ли вы что в методе захвата точность зависит соотношения измеряемой частоты к опорной Fx/Fo? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 21 июля, 2008 Опубликовано 21 июля, 2008 · Жалоба скорее делаю комплимент вашему методу. ибо раньше в ветке вы заявляли о ±0.5 Гц в методе ворот. В захвате же где Fo = 2Fx, вы обещали дать точность выше как раз за счет измерения периодов Fo. Читайте внимательней Это гдей-то я такое говорил? В пределе максимальная погрешность для метода захвата в два раза лучше, чем для метода ворот, это я говорил, помню. А именно, ±0.5 Гц в методе захвата супротив ±1.0 Гц в методе ворот для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Просто расскажите, что вы подразумеваете под НЕЗАВИСИМЫМ измерением, и какова точность отдельно взятого независимого измерения Давайте, для разнообразия вы мне расскажете, что такое независимое измерение, а я, так и быть, побуду "нулём в сиянии", это ведь ваши слова? Вот, кстати, нашёл отличную книжку Дворяшина Б.В. по методам радиотехнических измерений, даже две, всем рекомендую. Молодость вспомнил, ведь Дворяшин читал нам курс лекций по измерениям и лабы вёл... А погрешность отдельно взятого независимого измерения так и будет ±0.5 Гц, ничего не могу поделать. Ну и какая будет погрешность 1000 независимых измерений в таком случае? И еще небольшой вопросик. Подтверждаете ли вы что в методе захвата точность зависит соотношения измеряемой частоты к опорной Fx/Fo? Абсолютная погрешность, естественно, зависит от соотношения частот, а вот относительная - не зависит. Сказанное справедливо как для метода захвата, так и для метода ворот. Почитайте книжки Дворяшина, там такая теория наведена, ой-ё-ёй, мало не покажется... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Это гдей-то я такое говорил? В пределе максимальная погрешность для метода захвата в два раза лучше, чем для метода ворот, это я говорил, помню. А именно, ±0.5 Гц в методе захвата супротив ±1.0 Гц в методе ворот для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Сорри запамятовал, давно эту тему не перечитывал. Хорошо пусть |0.5|, и |1|. Давайте, для разнообразия вы мне расскажете, что такое независимое измерение, а я, так и быть, побуду "нулём в сиянии", это ведь ваши слова? Вот, кстати, нашёл отличную книжку Дворяшина Б.В. по методам радиотехнических измерений, даже две, всем рекомендую. Молодость вспомнил, ведь Дворяшин читал нам курс лекций по измерениям и лабы вёл... Проглочу, поскольку виноват, см "PS". По делу. Такой замечательной книжки у меня под рукой нет (у всех свои кумиры), поэтому могу только предположить, что речь идет об измерении, с независимой погрешностью, т.е. не вызывающей погрешности других измерений. Теперь объясните мне как вы сделаете 1000 независимых измерений на интервале 1с, так чтобы погрешность каждого измерения была как вы пишете ±0.5 Гц. Fx все же давайте сделаем 3.98Mhz (хотя бы для наглядности, чтоб не тупо 1/2). А погрешность отдельно взятого независимого измерения так и будет ±0.5 Гц, ничего не могу поделать. Ну и какая будет погрешность 1000 независимых измерений в таком случае? Опять ведь не договариваете. На каком интервале будет заявленная погрешность? Почитайте книжки Дворяшина, там такая теория наведена, ой-ё-ёй, мало не покажется...Спасибо за рекомендацию, при возможности воспользуюсь. PS: Свои слова насчет 0 в сиянии забираю обратно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tomade 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Вот я наваял тут вобщем прогу по вашему методу,осталось только все слепить в кучю. Поделитесь, пожалуйста, наработками. Думаю, начинающим, вроде меня, будет полезно посмотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Опять ведь не договариваете. На каком интервале будет заявленная погрешность? Ну, блин, вы даёте! Конечно, на односекундном интервале. Мне что, каждый раз это писать, когда я говорю о погрешности? Я уж язык весь отболтал (:-). Теперь объясните мне как вы сделаете 1000 независимых измерений на интервале 1с, так чтобы погрешность каждого измерения была как вы пишете ±0.5 Гц Я уже готов сделать 50000 независимых измерений на секундном интервале с погрешностью каждого в ±0.5 Гц, естественно для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Щас мне надо отъехать, где-то после обеда попытаюсь пояснить, как это можно сделать. А всё-ж-таки, defunct, не прочувствовали вы всю прелесть моего метода (:-). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tomade 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Попробовал написать программу по методу GM, за основу взял программу Яrik_а. Микроконтроллер - ATMega 64L, тактовую частоту взял 1 мГц (просто для тренировки). Вместо нулевого таймера, который задействован у Яrik_а, взял таймер_2. Работу программы проверял в VMLABе, смоделировав там пульсовый генератор меандра частотой 10 кГц. Но ничего хорошего не получилось. Вместо ожидаемой индицируемой частоты 10 кГц на ЖК-индикаторе VMLABа в каждом цикле высвечиваются разные значения - от 2 до 30 кГц, причём бывают и отрицательные числа. Подскажите, пожалуйста, где ошибка в программе. static float Fx; unsigned long int N1, N2, N; unsigned long int M1, M2, M; unsigned int Perepol_Timer2=0, Perepol_Timer1=0; unsigned int count_T1, count_T2; // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { Perepol_Timer1++; } // Timer 1 input capture interrupt service routine interrupt [TIM1_CAPT] void timer1_capt_isr(void) { TIMSK&=0xDF; count_T2=TCNT2; count_T1=ICR1; } // Timer 2 overflow interrupt service routine interrupt [TIM2_OVF] void timer2_ovf_isr(void) {Perepol_Timer2++;} void main(void){ // Timer/Counter 1 initialization TCCR1A=0x00; TCCR1B=0xC1; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; OCR1CH=0x00; OCR1CL=0x00; // Timer/Counter 2 initialization TCCR2=0x07; TCNT2=0x00; OCR2=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x64; ETIMSK=0x00; #asm("sei") Perepol_Timer1=0; Perepol_Timer2=0; N1=0;M1=0; while (1) { delay_ms(1000); TIMSK|=0x20; while ((TIMSK&0x20)==0x20){} N2=(unsigned long int)(Perepol_Timer1)*65536+count_T1; M2=(unsigned long int)Perepol_Timer2*65536+count_T2; N=N2-N1; M=M2-M1; Fx=(float)1000000.0*(float)M/(float)N; //Здесь идёт вывод измеряемой частоты Fx на ЖК-индикатор N1=N2; M1=M2; }} Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
defunct 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Ну, блин, вы даёте! Конечно, на односекундном интервале. Мне что, каждый раз это писать, когда я говорю о погрешности? Я уж язык весь отболтал (:-). Ок, просто это важный момент который надо было услышать от вас именно сейчас ;> Я уже готов сделать 50000 независимых измерений на секундном интервале с погрешностью каждого в ±0.5 Гц, естественно для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Щас мне надо отъехать, где-то после обеда попытаюсь пояснить, как это можно сделать. А всё-ж-таки, defunct, не прочувствовали вы всю прелесть моего метода (:-). Как можно на одном секундном интервале сделать 50k независимых измерений секундного интервала (пусть они даже будут пересекаться)?! На секундном интервале есть возможность сделать только одно независимое измерение с точностью ±0.5 Гц (первая часть поста). Все остальные будут обладать либо меньшей точностью, либо не будут независимыми! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба I'm back(:-). Как можно на одном секундном интервале сделать 50k независимых измерений секундного интервала (пусть они даже будут пересекаться)?! На секундном интервале есть возможность сделать только одно независимое измерение с точностью ±0.5 Гц (первая часть поста). Все остальные будут обладать либо меньшей точностью, либо не будут независимыми! Это очередное заблуждение, ну не хочет никто правильно думать(:-). Ладно, показываю. Надеюсь, не надо заново и подробно пояснять процесс получения пары чисел (N1,M1) в момент времени t1 и другой пары чисел (N2,M2) в момент времени t2=t1+1с? Теперь представьте себе, что в момент t3=t1+1мс вы получаете пару чисел (N3,M3), а в момент времени t4=t2+1мс вы получаете ещё одну пару чисел (N4,M4). Таким образом, через 1001мс от начала первого измерения вы получаете два независимых измерения входной частоты. Продолжая получать пары чисел каждые 1 мс, за одну секунду вы будете получать 1000 независимых измерений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tomade 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Заметил свою ошибку: посчитал Т2 шестнадцатиразрядным. Если в строке M2=(unsigned long int)Perepol_Timer2*65536+count_T2; вместо 65536 поставить 256, то работа частотомера становится стабильной (начиная со второго измерения). Однако частота индицируется равной 16384 Гц, а не 10000 Гц. Почему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Подскажите, пожалуйста, где ошибка в программе Таймер2 всё-таки 8-разрядный, а не 16-разрядный, сдвиг нужен на 8. А так, вак вы делаете, можно и комплексные числа получить (:-). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Яrik 0 22 июля, 2008 Опубликовано 22 июля, 2008 (изменено) · Жалоба На сайте pro-radio.ru, уважаемый GM продолжел свои разьяснения по поводу реализации и модернизации исходного кода. Если интересно, ссылка http://pro-radio.ru/controllers/5978/. P.S. Я так и не смог приблизится к теоритической точности, но это проблемма не метода, а моя. Хреновый с меня програмист. Моим методом (ну не совсем моим, он известен давно, просто я его приспособил к периферии аврки, в этом смысле он мой) за 1 с интервал вполне реально сделать 1000 НЕЗАВИСИМЫХ измерений, потом обработать результат, вот и всё обоснование. Не подскажете где почитать про "родоначальника" :) вашего метода. Изменено 22 июля, 2008 пользователем Яrik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
=GM= 0 22 июля, 2008 Опубликовано 22 июля, 2008 · Жалоба Я так и не смог приблизиться к теоретической точности, но это проблема не метода, а моя. Хреновый с меня программист Не надо только самоуничижаться. Тут так - глаза боятся, а руки делают. И потом, Москва тоже не сразу строилась. Вам надо найти смелость отказаться от прерываний и перейти к опросу готовности захвата. Кроме того, можно перейти на проц с двумя схемами захвата, одна будет захватывать Ni, а другая Mi и у вас сразу всё получится, причём на си. Что касается теоретической части, то посмотрите нижеследующие книги. 1) Дворяшин Б.В. Кузнецов Л.И. Радиотехнические измерения, 1978 2) Дворяшин Б. В. Основы метрологии и радиоизмерения, 1993 3) Дворяшин Б. В. Метрология и радиоизмерения, 2005 Если у кого есть последняя книга, с удовольствием бы посмотрел, чисто для ознакомления, надеюсь, Борис Владимирович не обидится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться