реклама на сайте
подробности

 
 
16 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> три частоты на АТмегу 128 с использованием таймеров, оределить изменения каждой частоты
defunct
сообщение Jul 21 2008, 18:40
Сообщение #91


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Jul 21 2008, 19:31) *
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 - то точности нет вообще, можно лишь грубо оценить есть сигнал или нет.
Go to the top of the page
 
+Quote Post
Peeoner
сообщение Jul 21 2008, 19:43
Сообщение #92





Группа: Новичок
Сообщений: 10
Регистрация: 2-07-08
Пользователь №: 38 711



Вот я наваял тут вобщем прогу по вашему методу,осталось только все слепить в кучю.
Я как бы уже тему открывал,но раз уж тут есть тема по конкретному методу то спрошу тут.
Если у меня период измерения будет 0.1с ,какую получю погрешность? И если период измерения будет не целым числом ,ну скажем 0.14-0.095 сильно это повлияет на точность?Тактовая частота АВРки 10Мгц,есть ли смысл подымать до 16?
Есть ли смысл использовать 10 разрядов? Или 6 в самый раз?

Сообщение отредактировал Peeoner - Jul 21 2008, 19:45
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 21 2008, 20:16
Сообщение #93


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Jul 21 2008, 17:40) *
допустим Fx не 4Mhz, а 3.98Mhz хотя это не суть важно

Допустим, теоретически 4 МГц РОВНО (Fclk/2), хотя это и не суть важно.

Цитата(defunct @ Jul 21 2008, 17:40) *
ну и как эти 1000 независимых измерений в сумме выйдут на точность ±0.005? Ведь чтобы выйти на такую точность нужно чтобы каждое отдельно взятое измерение обладало точностью не ниже |0.005| * 1000, а у вас точность одного измерения на интервале 1с = |0.25| если я не ошибаюсь (Fx/Fo = 0.5)


Ошибаетесь, defunct, как всегда, впрочем(:-). Точность одного измерения на секундном интервале ±0.5 Гц, что вы всё время перевираете?

Давайте, я вас совсем добью, и скажу, что за секунду сделаю 10000 НЕЗАВИСИМЫХ измерений, да что там 10 тыщ, давайте сделаем 50 тысяч измерений в секунду. Какая будет суммарная погрешность такого количества измерений по сравнению с погрешностью отдельного измерения, не подскажете?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 21 2008, 20:56
Сообщение #94


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Jul 21 2008, 23:16) *
Ошибаетесь, defunct, как всегда, впрочем(:-). Точность одного измерения на секундном интервале ±0.5 Гц, что вы всё время перевираете?

скорее делаю комплимент вашему методу. ибо раньше в ветке вы заявляли о ±0.5 Гц в методе ворот.
В захвате же где Fo = 2Fx, вы обещали дать точность выше как раз за счет измерения периодов Fo.
Читайте внимательней ;>


Цитата
Давайте, я вас совсем добью, и скажу, что за секунду сделаю 10000 НЕЗАВИСИМЫХ измерений, да что там 10 тыщ, давайте сделаем 50 тысяч измерений в секунду. Какая будет суммарная погрешность такого количества измерений по сравнению с погрешностью отдельного измерения, не подскажете?

Добивать меня бесполезно и так defunct ;>
Просто расскажите, что вы подразумеваете под НЕЗАВИСИМЫМ измерением, и какова точность отдельно взятого независимого измерения.

И еще небольшой вопросик cool.gif
Подтверждаете ли вы что в методе захвата точность зависит соотношения измеряемой частоты к опорной Fx/Fo?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 21 2008, 21:25
Сообщение #95


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Jul 21 2008, 19:56) *
скорее делаю комплимент вашему методу. ибо раньше в ветке вы заявляли о ±0.5 Гц в методе ворот. В захвате же где Fo = 2Fx, вы обещали дать точность выше как раз за счет измерения периодов Fo. Читайте внимательней

Это гдей-то я такое говорил? В пределе максимальная погрешность для метода захвата в два раза лучше, чем для метода ворот, это я говорил, помню. А именно, ±0.5 Гц в методе захвата супротив ±1.0 Гц в методе ворот для нашего конкретного случая Fo=8 MГц, Fx=4 MГц.

Цитата(defunct @ Jul 21 2008, 19:56) *
Просто расскажите, что вы подразумеваете под НЕЗАВИСИМЫМ измерением, и какова точность отдельно взятого независимого измерения

Давайте, для разнообразия вы мне расскажете, что такое независимое измерение, а я, так и быть, побуду "нулём в сиянии", это ведь ваши слова? Вот, кстати, нашёл отличную книжку Дворяшина Б.В. по методам радиотехнических измерений, даже две, всем рекомендую. Молодость вспомнил, ведь Дворяшин читал нам курс лекций по измерениям и лабы вёл...

А погрешность отдельно взятого независимого измерения так и будет ±0.5 Гц, ничего не могу поделать. Ну и какая будет погрешность 1000 независимых измерений в таком случае?

Цитата(defunct @ Jul 21 2008, 19:56) *
И еще небольшой вопросик. Подтверждаете ли вы что в методе захвата точность зависит соотношения измеряемой частоты к опорной Fx/Fo?

Абсолютная погрешность, естественно, зависит от соотношения частот, а вот относительная - не зависит. Сказанное справедливо как для метода захвата, так и для метода ворот. Почитайте книжки Дворяшина, там такая теория наведена, ой-ё-ёй, мало не покажется...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 22 2008, 00:03
Сообщение #96


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Jul 22 2008, 00:25) *
Это гдей-то я такое говорил? В пределе максимальная погрешность для метода захвата в два раза лучше, чем для метода ворот, это я говорил, помню. А именно, ±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 в сиянии забираю обратно.
Go to the top of the page
 
+Quote Post
Tomade
сообщение Jul 22 2008, 04:04
Сообщение #97


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 26-05-08
Пользователь №: 37 817



Цитата(Peeoner @ Jul 21 2008, 23:43) *
Вот я наваял тут вобщем прогу по вашему методу,осталось только все слепить в кучю.

Поделитесь, пожалуйста, наработками. Думаю, начинающим, вроде меня, будет полезно посмотреть.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 22 2008, 09:22
Сообщение #98


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Jul 21 2008, 23:03) *
Опять ведь не договариваете. На каком интервале будет заявленная погрешность?

Ну, блин, вы даёте! Конечно, на односекундном интервале. Мне что, каждый раз это писать, когда я говорю о погрешности? Я уж язык весь отболтал (:-).

Цитата(defunct @ Jul 21 2008, 23:03) *
Теперь объясните мне как вы сделаете 1000 независимых измерений на интервале 1с, так чтобы погрешность каждого измерения была как вы пишете ±0.5 Гц

Я уже готов сделать 50000 независимых измерений на секундном интервале с погрешностью каждого в ±0.5 Гц, естественно для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Щас мне надо отъехать, где-то после обеда попытаюсь пояснить, как это можно сделать. А всё-ж-таки, defunct, не прочувствовали вы всю прелесть моего метода (:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Tomade
сообщение Jul 22 2008, 09:49
Сообщение #99


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 26-05-08
Пользователь №: 37 817



Попробовал написать программу по методу 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; }}
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 22 2008, 10:47
Сообщение #100


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Jul 22 2008, 12:22) *
Ну, блин, вы даёте! Конечно, на односекундном интервале. Мне что, каждый раз это писать, когда я говорю о погрешности? Я уж язык весь отболтал (:-).

Ок, просто это важный момент который надо было услышать от вас именно сейчас ;>
Цитата
Я уже готов сделать 50000 независимых измерений на секундном интервале с погрешностью каждого в ±0.5 Гц, естественно для нашего конкретного случая Fo=8 MГц, Fx=4 MГц. Щас мне надо отъехать, где-то после обеда попытаюсь пояснить, как это можно сделать. А всё-ж-таки, defunct, не прочувствовали вы всю прелесть моего метода (:-).

Как можно на одном секундном интервале сделать 50k независимых измерений секундного интервала (пусть они даже будут пересекаться)?! На секундном интервале есть возможность сделать только одно независимое измерение с точностью ±0.5 Гц (первая часть поста). Все остальные будут обладать либо меньшей точностью, либо не будут независимыми!
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 22 2008, 12:35
Сообщение #101


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



I'm back(:-).
Цитата(defunct @ Jul 22 2008, 09:47) *
Как можно на одном секундном интервале сделать 50k независимых измерений секундного интервала (пусть они даже будут пересекаться)?! На секундном интервале есть возможность сделать только одно независимое измерение с точностью ±0.5 Гц (первая часть поста). Все остальные будут обладать либо меньшей точностью, либо не будут независимыми!

Это очередное заблуждение, ну не хочет никто правильно думать(:-). Ладно, показываю. Надеюсь, не надо заново и подробно пояснять процесс получения пары чисел (N1,M1) в момент времени t1 и другой пары чисел (N2,M2) в момент времени t2=t1+1с? Теперь представьте себе, что в момент t3=t1+1мс вы получаете пару чисел (N3,M3), а в момент времени t4=t2+1мс вы получаете ещё одну пару чисел (N4,M4). Таким образом, через 1001мс от начала первого измерения вы получаете два независимых измерения входной частоты. Продолжая получать пары чисел каждые 1 мс, за одну секунду вы будете получать 1000 независимых измерений.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Tomade
сообщение Jul 22 2008, 12:42
Сообщение #102


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 26-05-08
Пользователь №: 37 817



Заметил свою ошибку: посчитал Т2 шестнадцатиразрядным. Если в строке M2=(unsigned long int)Perepol_Timer2*65536+count_T2; вместо 65536 поставить 256, то работа частотомера становится стабильной (начиная со второго измерения). Однако частота индицируется равной 16384 Гц, а не 10000 Гц. Почему?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 22 2008, 13:00
Сообщение #103


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Tomade @ Jul 22 2008, 08:49) *
Подскажите, пожалуйста, где ошибка в программе

Таймер2 всё-таки 8-разрядный, а не 16-разрядный, сдвиг нужен на 8. А так, вак вы делаете, можно и комплексные числа получить (:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Яrik
сообщение Jul 22 2008, 14:07
Сообщение #104


Частый гость
**

Группа: Новичок
Сообщений: 110
Регистрация: 8-01-07
Из: Украина
Пользователь №: 24 216



На сайте pro-radio.ru, уважаемый GM продолжел свои разьяснения по поводу реализации и модернизации исходного кода. Если интересно, ссылка http://pro-radio.ru/controllers/5978/.

P.S. Я так и не смог приблизится к теоритической точности, но это проблемма не метода, а моя. Хреновый с меня програмист.

Цитата(=GM= @ Jul 21 2008, 19:31) *
Моим методом (ну не совсем моим, он известен давно, просто я его приспособил к периферии аврки, в этом смысле он мой) за 1 с интервал вполне реально сделать 1000 НЕЗАВИСИМЫХ измерений, потом обработать результат, вот и всё обоснование.

Не подскажете где почитать про "родоначальника" smile.gif вашего метода.

Сообщение отредактировал Яrik - Jul 22 2008, 14:30
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 22 2008, 15:18
Сообщение #105


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Яrik @ Jul 22 2008, 13:07) *
Я так и не смог приблизиться к теоретической точности, но это проблема не метода, а моя. Хреновый с меня программист

Не надо только самоуничижаться. Тут так - глаза боятся, а руки делают. И потом, Москва тоже не сразу строилась. Вам надо найти смелость отказаться от прерываний и перейти к опросу готовности захвата. Кроме того, можно перейти на проц с двумя схемами захвата, одна будет захватывать Ni, а другая Mi и у вас сразу всё получится, причём на си.

Что касается теоретической части, то посмотрите нижеследующие книги.

1) Дворяшин Б.В. Кузнецов Л.И. Радиотехнические измерения, 1978

2) Дворяшин Б. В. Основы метрологии и радиоизмерения, 1993

3) Дворяшин Б. В. Метрология и радиоизмерения, 2005

Если у кого есть последняя книга, с удовольствием бы посмотрел, чисто для ознакомления, надеюсь, Борис Владимирович не обидится.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

16 страниц V  « < 5 6 7 8 9 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th June 2025 - 17:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.02096 секунд с 7
ELECTRONIX ©2004-2016