Доплеровский пеленгатор на Аtmega128

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Re: Доплеровский пеленгатор на Аtmega128

Сообщение blindman » 10 июн 2009, 04:10

USER777, а ты точно понимаешь принцип радиопеленгации с использованием псевдо эффекта Допплера? Зачем сравнивать данные 2 кругов, когда нужно всего лишь определить фазу допплеровского сигнала?

Добавлено спустя 10 минут 53 секунды:
Вот пример аппаратной реализации пеленгатора
Вложения
A Doppler Radio-Direction Part 1.pdf
(673.18 КиБ) Скачиваний: 148
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 12:43

Вообщето Допплер говорил об изменении частоты. Амплитуда и фаза вас уведет в другую степь.

Все верно!
Изменение частоты на входе приемника(FM) приводит к изменению амплитуды на выходе FM приемника (частотная модуляция)

Добавлено спустя 1 час 36 минут 23 секунды:
http://roboforum.ru/download/file.php?id=9456

эт я уже собирал. Вот на основе этого пытаюсь реализовать на atmega128
например цифровой фильтр из
http://roboforum.ru/download/file.php?id=9456
и есть сравнение двух синусоид, только там реализовано на 8 конденсаторах.(zero-crossing)нуль-переход эт точка синусоиды в нулевом значении. А у меня по пику синусоиды, так точность выше.
Собирал уже на 16 меге с выводом на комп. Вот только проблема в скорости и алгоритме . Необходимо сравнивать на сходство синусоиды оч. быстро находить пик. отправлять данные в порт.


хм. я бы вначале прошелся по двум массивам в поисках значений максимумов (паралллельно запоминаю номер макс элемента первого массива), после я могу сказать об отношении амплитуд; иду влево и вправо по массиву от максимума, в поисках точки (m2*A1/A2-m1)<погрешности. дельта найденной и запомненной точек и есть сдвиг фаз.
получается два полных и один неполный прохода по массиву. не совсем оптимально
А вот это нужно попробовать.
Спасибо за быстрые ответы.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение contr » 10 июн 2009, 12:47

Такую противоугонку лет 20 назад активно рекламировал по ТВ автор фразы "Таньки грязи не боятся!". Даже в рекламных роликах было заметно, что 4 экипажа ГИБДД с большим трудом находят "угнанный" автомобиль.
Если говорить о современных угонщиках, то маяки вычисляются за 20 секунд. Здесь даже GPS, сбрасывающая координаты в импульсном режиме через модем не поможет. :(
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re: Доплеровский пеленгатор на Аtmega128

Сообщение blindman » 10 июн 2009, 12:53

На 8 конденсаторах там сделан цифровой фильтр, который тоже нужно будет реализовывать. Разница во времени между началом сканирования и переходом через ноль - это и есть фаза допплеровского сигнала.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 13:01

Нет все объекты оочень стационарные (скважины нефтяные, водяные ) бывают зависают р/м на передаче, а так все объекты (одного нефтепромысла) на одной частоте, в радиусе 10-15 км связь с остальными объектами тож пропадает. приходится много колесить с рацией чтобы найти зависший модем.Нормальный пеленгатор ФСБ не разрешило приобретать (Не знаю почему).
А еще бывает что частота у р/м уплывает на соседний канал (другого нефтепромысла эт еще хуже именно передача).
Пеленгатор облегчил бы поиск(ИМХО).
На 8 конденсаторах там сделан цифровой фильтр, который тоже нужно будет реализовывать. Разница во времени между началом сканирования и переходом через ноль - это и есть фаза допплеровского сигнала.

Ну да так и есть у меня тож самое, только пик.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение blindman » 10 июн 2009, 13:05

Так объясни тогда, нафига тебе 2 выборки сравнивать? Сделать так же как и в той схеме, только всё в программе - фильтры, детектор нуля и т.д.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 13:10

Так объясни тогда, нафига тебе 2 выборки сравнивать? Сделать так же как и в той схеме, только всё в программе - фильтры, детектор нуля и т.д.

Я не силен в объяснениях,но тем не менее попытаюсь.
После фильтра на АЦП будет поступать очень узкий частотный диапазон (500 Гц)
т.е если даже приемник будет просто шипеть на входе АЦП будет частота 500 гц.
Нужно убедится что сигнал на АЦП тот самый сигнал а не просто шум.
Вроде так.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение boez » 10 июн 2009, 13:28

ИМХО пик или ноль в этой схеме ловить совершенно не нужно, имея МК. Нужно взять 180 значений синуса и косинуса для углов от 0 до 358 с шагом 2. На самом деле там реально разных значений всего 45, остальное повторы и повторы со знаком минус. И посчитать сумму произведений входного сигнала с АЦП в 180 точках круга на соответствующие синусы и косинусы. Получим 2 числа:

A = sum(U_k*cos(Alfa_k)), Alfa_k = 2*k град., k=0..179
B = sum(U_k*sin(Alfa_k)), Alfa_k = 2*k град., k=0..179

Эти числа - ни что иное, как действительная и мнимая части первого коэффициента преобразования Фурье входного сигнала - соответствующего основной гармонике, т.е. частоте "вращения" антенного переключателя. По ним легко определить азимут - это просто фаза этой гармоники, то есть arg(A+i*B), считается обычно через арктангенс (его тоже задают таблицей на отрезке от -1 до 1):

если А>B и A>-B, то Phi = arctg(B/A);
если А<B и A>-B, то Phi = 90 град. - arctg(A/B);
если А<B и A<-B, то Phi = arctg(B/A) + 180 град.;
если А>B и A<-B, то Phi = 270 град. - arctg(B/A);

Типа все. Если не лезть в плавающие числа (а все что я написал легко считается в числах с фиксированной запятой, сразу в нужном масштабе) - атмега справится легко. Хотя меня гложут смутные сомнения насчет необходимости 180 точек - будет ли реальная точность хоть немного близка к задуманной? Насколько скажется то, что антенну мы не крутим, а только переключаем 4 штуки? Хотя тем МК и хороши, что можно на том же железе пробовать с разным числом точек.

Вот. Убедиться, что это сигнал, а не шум, можно будет наблюдая за полученным значением. Если оно скачет как дурное по всему кругу - значит это шум. Если стоит примерно в одном месте - значит сигнал :) Ну еще возможно амплитуда (корень из A^2+B^2, на крайняк сойдет приближение в виде |A|+|B|) будет нести определенную информацию..

Добавлено спустя 9 минут 4 секунды:
А - да, чего забыл написать, можно ж (и нужно) не по одному периоду вращения суммировать, а по многим, к примеру по 512, тогда инфа будет обновляться примерно раз в секунду, но зато она будет неслабо отфильтрована от всего, кроме требуемого 500 Гц сигнала. И уж тогда наверняка у шума |A+i*B| будет намного меньше, чем у сигнала.
boez
 
Сообщения: 1981
Зарегистрирован: 27 авг 2008, 10:45
Откуда: Харьков
прог. языки: С/С++

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 13:29

Голова!!
только вот эт
Вот. Убедиться, что это сигнал, а не шум, можно будет наблюдая за полученным значением. Если оно скачет как дурное по всему кругу - значит это шум. Если стоит примерно в одном месте -

не совсем понятно.
Минимум 2 замера в любом случае?
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение blindman » 10 июн 2009, 13:31

А куда спешить-то? Сделай сотню, по ней прими решение - это 5 результатов в секунду
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 13:35

Наверное насчет замеров, нужно сделать гибкую систему.
Чтобы можно было работать и с короткими пакетами в эфире(ИМХО).
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение Duhas » 10 июн 2009, 13:48

народ, а навигацию для робота по RF маякам так сделать не выйдет ли?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 13:54

народ, а навигацию для робота по RF маякам так сделать не выйдет ли?

В чистом поле выйдет а в комнате вряд ли.
3 маяка на разных частотах.
На роботе один приемник 3 -х канальный
Чтобы знать какой маяк и где он.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Re: Доплеровский пеленгатор на Аtmega128

Сообщение blindman » 10 июн 2009, 14:08

Если маяки синхронизировать, можно и на 1 канале.
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!

Аватара пользователя
blindman
 
Сообщения: 4130
Зарегистрирован: 29 апр 2008, 21:15
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич

Re: Доплеровский пеленгатор на Аtmega128

Сообщение USER777 » 10 июн 2009, 14:11

Если маяки синхронизировать, можно и на 1 канале.

А по подробнее.
USER777
 
Сообщения: 50
Зарегистрирован: 03 июн 2009, 21:16
Откуда: пос. Актюбинский
Skype: ffaanniiss777

Пред.След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15