Портрет

Лебедев Валентин Павлович
кандидат физико-математических наук, старший научный сотрудник Института солнечно-земной физики СО РАН

Насколько важно чётко держать антенну приёмника на передатчик? Как влияет использование алгоритма сопровождения в стенде «УНКС» на передачу данных? Понять насколько больше данных может принять «радар», если он следит за «спутником», позволит сравнение сигналов с тем случаем, когда «радар» статичен и не может двигаться за «спутником».

#УНКС #АлгоритмыСлежения


Продолжаем знакомиться с циклом задач, предлагаемых на треке «Технологии беспроводной связи» Олимпиады КД НТИ. На предыдущем занятии мы с вами познакомились с главными «действующими лицами» стенда «УНКС» — это «спутник» и «радар».   «Спутник» может двигаться и передавать данные. «Радар» может вращаться вокруг своей оси для того, чтобы сопровождать «спутник» и принимать данные от «спутника».  Главное «действующее лицо», его не видно, но оно присутствует, это тот канал связи, по которому передаются данные со «спутника» на «радар».  Мы с вами уже говорили, что в канале действуют шумы, помехи, которые могут искажать передаваемые данные, в результате «радар» может принимать данные уже с ошибками. 

Сегодня мы более подробно поговорим об этом, и увидим, что такое диаграмма направленности нашего «радара», и почему так важно четко сопровождать наш «спутник». У нас достаточно гибкая система, она подразумевает в себе достаточно много настроек, но одна из них это как раз точность сопровождения. Точностью сопровождения мы определяем некоторые аппаратные функции, некоторые — диаграммой направленности, которая обладает очень резкой ракурсной чувствительностью в зависимости от угла. То есть, если «спутник» выходит за разрешённый диапазон углов, то количество ошибок в данных существенно вырастает. 

Давайте посмотрим, как это выглядит на практике. Я сейчас запущу стенд, но при этом «радар» у нас будет оставаться неподвижным, а «спутник» будет двигаться вдоль своей направляющей. «Спутник» сейчас в режиме калибровки ищет положение центра, вот он у нас отразился от правого концевика, выходит на центр стенда и начинает движение по сложной траектории. Обратите внимание, что при этом «радар» остается неподвижным, но данные он все таки принимает, ждёт данные от «спутника». «Спутник» совершает сложные маневры, вот сейчас он здесь подражал, это практически означает, что скорость вдоль направления X, а я напоминаю, что у нас система координат ориентирована следующим образом, ось X смотрит от меня слева направо, ось Y смотрит на вас, ну и соответственно вы сейчас видите некоторую проекцию движения спутника, то есть вы находитесь в плоскости, в которой он совершает свои сложные маневры, и вы видите его проекцию движения. Вот он совершает некоторые сложные манёвры, передаёт данные. Мы сейчас запустили его примерно на 73 секунды, как только он закончит передачу данных — он остановится, и должен будет вернуться в центр рельсы. Итак, он закончил передачу данных и вернулся в центр рельсы. 

«Спутник» на ряду с передаваемыми данными так же передавал и свою позицию и естественно на эти данные также влияли шумы в нашем канале. Давайте посмотрим в каких позициях данные были приняты верно, в случае если мы не защищаем передаваемые данные помехоустойчивым кодом. Вы можете видеть картинку уже знакомую вам по предыдущим занятиям. 

Напомню, что здесь обозначено разными цветами: слева чёрным — траектория движения «спутника» в плоскости XY, при этом наблюдатель у нас находится над этой плоскостью, он находится в направление Z и видит все манёвры «спутника», что называется сверху, а «радар» находится как бы со стороны оси X и видит только проекцию движения «спутника» на эту ось; на рисунке справа приведена динамика изменения этой координаты в зависимости от времени. Объект двигался примерно 73 секунды, вот то место, где заканчивается синяя линия, это реальная траектория движения объекта. Обратите внимание, что в районе центра проведены такие вот зелёные отрезки, элементы, что это такое? Это как раз те элементы, те участки пути, вдоль которого двигался наш спутник, на которых данные были приняты без искажений и помех. Обратите внимание какие это короткие участки и причём эти коротенькие участки, видите они сгруппированы около направления нуля, то есть они сгруппированы как раз именно в направлении центра нашего луча зрения. 

Как выглядят данные, которые принял «радар»? Набор символов, и практически везде у нас присутствуют непонятные какие-то символы, это как раз те данные наши, которые мы передавали и, которые испытали на себе влияние шумов и помех, но  есть некоторые небольшие интервалы, в которых всё-таки видны те данные, которые мы передавали без искажений. Эти данные сгруппированы небольшими группками. Как я уже говорил, передаются именно биты. Бит — элемент, с которым мы работаем. У нас не искажаются какие-то отдельные биты наших передаваемых данных, а искажается именно битовая структура и вы видите все возможные варианты искажений. 

Давайте посмотрим, как изменится картина если мы добавим возможность слежения «радаром» за «спутником». При этом будем плавно переходить к основной теме наших занятий - каким образом можно защитить наши данные от помех, то есть каким образом можно использовать помехоустойчивый код. Но прежде, чем переходить к этой главной части, давайте все таки посмотрим как изменятся те данные, которые принимает «радар», если мы включим сопровождение. 

Итак переходим к 5 задаче нашего сета - передача по статическому каналу с шумом. Считает, что шумы у нас постоянны - канал свои свойства от времени не меняет, в общем для связистов, это отличный канал, потому что как правило шумы в каналах, живут, дышат, как-то меняются и это тоже необходимо принимать во внимание, но у нас шумы пусть будут пока стабильными. Давайте зайдем в эту задачку. Обратите внимание, что в отличие от обычного trackerа в этой задаче уже больше шагов - 9. Первый шаг нам знакомый, нужно загрузить свой tracker - загружаем, компилируем, проверяем что ошибок нет.  Итак, у нас появился новый элемент он называется encoder, это программа, которая защищает ваши передаваемые данные помехоустойчивым кодом, то есть фактически она добавляет некоторые контрольные символы в определенные позиции, которые decoder, в свою очередь, проверяет и если контрольные суммы не сходятся, то он соответственно детектирует это как ошибку и по возможности ее исправляет. На первом этапе будем считать, что encoder  поступает очень просто, он берет данные и подает их на вход передатчику пока без каких-либо контрольных бит, без помехоустойчивого кода сейчас будет передача. Выбираем наш encoder загружаем на «спутник» - на «бортовой» компьютер «спутника», компилируем, видим ошибок нет, и движемся дальше. Следующий шаг  - работа с decoder. Decoder будет разбирать те данные, которые пришли на вход «радара», анализировать, находить контрольный символ, проверять его и если какие-то контрольные суммы не сходятся, то исправлять и дальше данные подавать потребителю. Decoder очень простой, он данные берет со входа приемника и сразу же отдает их потребителю. Загружаем эту программу на «бортовой» компьютер «радара» и компилируем, убедимся, что все в порядке и движемся дальше. Необходимо загрузить данные, которые будет передавать наш «спутник».  Давайте мы возьмем некоторый тестовый файл для того, чтобы отправить его на «радар». Итак, теперь у нас есть tracker , encoder, decoder, в принципе вся система готова к работе, давайте ее запустим. Сейчас «спутник» будет двигаться по той же самой траектории, что и в первом случае, когда «радар» не двигался. Теперь мы обеспечили «радар» возможностью движения - на «радаре» действует алгоритм сопровождения объекта. Это простой алгоритм, самый простой регулятор, но с небольшой особенностью, про которую мы поговорим чуть позже, когда будем касаться непосредственно темы «Алгоритмы сопровождения движущегося объекта». Итак, «спутник» движется по сложной траектории и передает данные, «радар» данные получает, при этом пытается сопровождать «спутник» как можно точнее, вот те же самые 70 секунд наш «спутник» будет двигаться, то есть мы полностью повторяем наш первый эксперимент те же самые данные, тот же самый характер движения, но теперь с сопровождением «радара». После того, как «спутник» вернулся на свою исходную позицию, то есть когда все данные переданы, обязательно нужно остановить алгоритм сопровождения. Давайте посмотрим, что принял наш «радар». Обращаю ваше внимание, что у нас не было помехоустойчивого кода. Открываем файл и обратите внимание, что у нас теперь блоков, в которых четко видна траектория «спутника» намного больше. В первом случае, это были эпизодически короткие кусочки, здесь же мы видим достаточно протяженные блоки, то есть это наглядный пример того, что tracker даже такой простой, позволил улучшить качество приема данных. Как это выглядит на общей картинке, давайте посмотрим. 

Вы можете видеть на правом графике, что зеленых полосок, то есть это те моменты времени, когда данные были переданы без искажения, стало существенно больше. И это при том, что мы не использовали алгоритмы кодирования, мы еще не использовали помехоустойчивый код. Можно видеть насколько более эффективной стала приемопередающая система, если добавить сопровождение. Хотелось бы продемонстрировать еще один график.

На графике проведена дополнительная ось, которая отображает расположение «спутника» в кадре «радара» и в каких-то относительных единицах, вот эту динамику вы можете видеть она представлена фиолетовой линией. Красными горизонтальными линиями условно показана та область, в которой наш «радар» может принять данные со «спутника» без искажений. 

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

Для размышления

Составьте список применений алгоритмов слежения в современном мире.

Материалы

Last modified: Monday, 27 May 2024, 3:12 PM