ANALYSIS OF THE PARAMETERS OF A COMMUNICATION SYSTEM PERFORMED WITH THE USE OF SDR TECHNOLOGY
- Authors: Shipula A.D.1, Glazunov V.A.1
-
Affiliations:
- Самарский национальный исследовательский университет имени академика С.П. Королева
- Issue: No 2(21) (2022)
- Pages: 212-220
- Section: Radio engineering and communication
- Published: 09.08.2023
- URL: https://vmuis.ru/smus/article/view/10290
- ID: 10290
Cite item
Full Text
Abstract
Within the framework of this work, the characteristics of a radio communication system made using SDR technology were obtained. Thanks to the data obtained, it becomes possible to assess the feasibility of using such a system for specific tasks. In addition, as a result of the study, it turned out that when using synchronization algorithms, the obtained results of the system noise immunity may not correspond to the theory. Based on the results obtained, the parameters of the frequency fine tuning algorithm were found, as well as the noise power, at which the noise immunity can be estimated according to the theory, as well as the parameters at which the noise immunity assessment is a more difficult task and requires additional research.
Full Text
Из-за развития вычислительной техники, при реализации систем связи, всё более целесообразным становится использование технологии SDR [1; 2].
Основным достоинством подобных систем, является возможность выполнять различные алгоритмы декодирования сигнала на одной универсальной платформе. Становится возможным, также, интегрирование в свою систему сторонних модулей, для ускорения разработки. Второе достоинство заключается в потенциально широком спектре задач, решаемых устройством. Технология SDR позволяет на своей основе выполнять адаптивные системы, способные подстраиваться под помеховую обстановку эфира, динамически изменять свои параметры, например, ширину полосы пропускания, вид модуляции [3].
Стоит заметить, что в общем случае подобные системы обладают и рядом недостатков. Первый недостаток, присущий универсальным платформам на базе SDR, это увеличенные, в сравнении с аналогичными системами, затраты вычислительных ресурсов. Второй недостаток заключается в низкой помехоустойчивости. В частном случае существуют реализации систем на базе SDR, не уступающими аналогичным системам, выполненным на других технологиях. Но при подобной оптимизации система теряет универсальность. Постоянный рост вычислительных мощностей позволяет опустить на второй план первый недостаток. Второй недостаток потенциально может препятствовать применению вышеуказанного подхода при проектировании систем связи. Возникает потребность проведения количественного анализа параметров системы. В рамках работы был разработан программный алгоритм для системы связи на базе технологии SDR, создана программа для проведения анализа помехоустойчивости и проведён анализ параметров выполненной системы.
Описание исследуемой системы
Аппаратная часть системы состоит из двух SDR модулей, RTL SDR [4] и HackRF One [5], а также вычислительного модуля RaspberryPi 4 [6]. RTL SDR используется в качестве передатчика. Он выполняет перенос сигнала на нулевую частоту, и его разделение на синфазную и квадратурную составляющие [7]. Следующим этапом происходит оцифровка составляющих сигнала и передача полученных отсчётов по интерфейсу USB на вычислительный модуль, где происходит декодирование сигнала. На передающей стороне используется аналогичный вычислительный модуль. В вычислительном модуле происходит кодирование сигнала и передача отсчётов по интерфейсу USB на HackRF One, который производит цифро-аналоговое преобразование квадратурных составляющих сигнала, перенос их на радиочастоту сложение и излучение радиосигнала в эфир. Используемые радиомодули имеют широкие возможности по изменению собственных параметров. При их использовании имеется возможность перестраивать гетеродин, выбирать используемый аналоговый фильтр нижних частот с требуемой полосой пропускания, изменять скорость работы АЦП. На подобном аппаратном исполнении становится возможность создавать системы связи, способные изменять свои параметры в широких пределах в зависимости от поставленной задачи.
В этой работе основное внимание уделено программной части, которая разработана на основе некоторых готовых программных средств. На вычислительный модуль RaspberryPi 4 установлена операционная система Ubuntu 20.04. Данная система позволяет пользоваться многочисленными интегрированными средами разработки, а также исполнять на ней сторонние программные модули, с помощью которых можно значительно упростить разработку алгоритма. Алгоритм обработки сигнала создан с помощью средства GNURadio [8] а так-же среды Python [9]. Алгоритм был выполнен в двух вариантах под GNURadio версии 3.7 и младше, а также под GNURadio версии 3.8 и старше.
Система связи включает в себя следующий функционал. Передача данных может быть осуществлена с помощью трёх видов модуляций: BPSK, QPSK, 8PSK [11]. Вид используемой модуляции может быть изменён непосредственно во время работы без приостановки передачи данных. В системе также реализован алгоритм поиска полезного сигнала в спектральной полосе 1,536 МГц. Приведу описание работы алгоритма.
Информация в байтовой форме на алгоритм обработки поступает из текстового файла. На передающей стороне алгоритм включает в себя набор последовательных блоков обработки данных, которые осуществляют кодирование бит информации в модулированный сигнал, который представляет собой комплексную огибающую искомого сигнала. Комплексная огибающая поступает на радио-модуль, где производится преобразование в аналоговую форму и модуляция радиочастотой. Функционал изменение вида модуляции реализован следующим способом. Обработка данных происходит по трём каналам, каждый из каналов отвечает за свой вид модуляции. Сигналы с выходов всех трёх каналов поступают на мультиплексор, который осуществляет подачу одного из сигналов на выход в зависимости от команды из вне. Эпюры сигналов с выходов каналов изображены на рисунке 1.
Рис. 1. Эпюры напряжений с выхода модуляторов: a) BPSK б) QPSK в) 8-PSK
Приёмная сторона включает в себя алгоритм поиска сигнала с спектральной полосе, алгоритм частотной перестройки, а также алгоритмы демодулирования, декодирования. Демодулятор включает в себя набор алгоритмов фильтрации, согласования по частоте и по фазе, прореживания.
Алгоритм способен осуществить извлечение информации из сигнала при трёх видах модуляции. Механизм заключается в следующем. С радиомодуля поступает комплексная огибающая радиосигнала, которая подвергается фильтрации, грубой синхронизации по частоте, синхронизации по времени и прореживанию. Полученный сигнал поступает на 3 ветви. Каждая из ветвей выполняет точную синхронизацию по частоте с помощью цикла Костаса [. Коэффициенты цикла Костаса на каждом из каналов подобраны под определённый вид модуляции. Созвездия сигналов на выходах циклов Костаса [10] при соответствующих видах модуляции показаны на рисунке 2.
Рис. 2. Созвездия после частотной и фазовой синхронизации: а) BPSK; б) QPSK; в) 8-PSK
После, в каждом из каналов происходит извлечение информации. В каждый момент времени система занимается декодированием одного вида модуляции, остальные два канала тратят вычислительные мощности впустую, но количество ресурсов, затраченных впустую, небольшое, так как программа выполнена таким образом, чтобы большинство вычислений приходилось на общую для всех трёх модуляций часть. На выходе каждого из декодеров стоит блок депакетирования, который синхронизирует поток поступающих бит по преамбуле. Если он не находит в последовательности бит преамбулу, то на выход отсчётов не поступает. Если вид модуляции, закодированной последовательности соответствует одному из декодеров, то блоку депакетирования соответствующего декодера удастся найти преамбулу в поступающей последовательности бит, тогда на выход соответствующего канала начнут поступать байты. Мультиплексирование трёх каналов происходит на UDP сервере с помощью программы на языке Python.
Система способна выполнять сканирование спектра, искать в спектральной полосе сигнал и производить настройку на его частоту. Алгоритм сканирования также состоит из нескольких блоков обработки. Первый блок осуществляет быстрое преобразование Фурье [10]. Второй блок производит поиск гармоники с максимальной амплитудой, после фиксирует её частоту. Третий блок производит перемножение поступающей с аппаратной части последовательности отсчётов и синусоидального колебания с найденной частотой. Пик сигнала смещается в нулевую частоту, высокочастотная составляющая подавляется цифровым фильтром.
Методы исследования
В рамках исследования был проведён анализ помехоустойчивости системы. Чтобы не привязываться к характеристикам конкретного оборудования, анализ алгоритма был проведён в симуляции. Для применения полученных данных по результатам подобного анализа к конкретному оборудованию, необходимо произвести ряд дополнительных замеров для конкретных радиомодулей, характера помех.
Для снятия характеристик был реализован алгоритм, с помощью которого можно изменять мощность сигнала и шума, снимать текущее значение количества битовых ошибок, а также наглядно наблюдать работу системы при заданном соотношении сигнал/шум, сокращённо С/Ш.
Схема подсчёта битовых ошибок, выполненная в программе GNURadio версии 3.8 изображён на рисунке 3.
Рис. 3. Схема подсчёта битовых ошибок
Суть её работы заключается в следующем. На нижний виртуальный источник поступают байты непосредственно из файла. На верхний виртуальный источник поступают биты, переданные по модели радиоканала и декодированные приёмным алгоритмом. Сравнение указанных последовательностей происходит сразу с помощью двух алгоритмов.
Первый алгоритм реализован с помощью встроенного блока BER, выполняющего побитовое сравнение последовательностей. На вход этого блока требуется подавать данные в формате байт, на выход он выдаёт отношение количества битовых ошибок к количеству переданных бит. Полученное значение выводится на диаграмму. Чтобы привести данные к необходимому типу, нужно обеднить биты, поступающие с выхода приёмника, в байты, что происходит в блоке Pack K Bits. Данные из файла уже нужного типа. Однако из-за того, что в алгоритмах кодирования и декодирования вносятся задержки, байты данных из файла будут иметь сдвиг во времени относительно соответствующих байт с выхода декодера. Этот сдвиг компенсируется битовой задержкой. В программе передаваемые, принимаемые биты, сигнал, сигнализирующий об ошибке, отображаются на графике. Для этого обе последовательности преобразуются в тип данных float, далее входная, выходная последовательности бит и сигнал, сигнализирующий об ошибке, подаются на модуль QT GUI Time Sink, выполняющий построение зависимости входных последовательности данных от времени. Полученные с помощью этого модуля графики можно видеть на рисунке 4.
Рис. 4. Передаваемая последовательность (Tx Bits), принимаемая последовательность (Rx Bits), сигнал ошибки (Diff)
Второй алгоритм сравнения выполнен на языке Python отдельной программой. Данные в неё передаются по UDP соединению. Перед передачей данные предварительно переводятся в удобный для анализа вид. Ниже представлен код программы для обработки потока данных по UDP соединению:
import socket
UDP_IP0 = "127.0.0.1"
UDP_PORT0 = 40871
sock0 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock0.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock0.bind((UDP_IP0, UDP_PORT0))
sock0.settimeout(0.001)
while True:
try:
data0, addr0 = sock0.recvfrom(1024)
print("Msg:",data0.count(1)/len(data0))
except socket.timeout:
pass
Программа после запуска инициализирует соединение и запускает цикл, в котором происходит постоянный опрос порта, куда приходит сигнал ошибки. В цикле подсчитывается отношение ошибочных бит к общему числу бит. Полученный результат печатается в терминал.
Соотношение сигнал/шум изменяется путём увеличения уровня шума, вносимым моделью радиоканала. Для наглядного представления спектрограммы мощности полезного сигнала и шумовой составляющей выводятся с помощью отдельного графического модуля. Полученные графики представлены на рисунке 5.
Рис. 5. Спектрограммы сигнала и шума: а) При отношении С/Ш = 30 дБ; б) При отношении С/Ш = - 10 дБ
Для верной интерпретации полученных данных, требуется привести дополнительные пояснения касательно методики получения характеристик системы. На графике рисунка 5, б можно видеть, что в пике уровень сигнала выше, чем уровень шума, хотя мощность шума в 10 раз превышает мощность полезного сигнала. Дело в том, что учитывается мощность шумовых составляющих на всей ширине принимаемой спектральной полосы. Ширина этой полосы определяется полосой пропускания аналогового фильтра нижних частот, расположенного в SDR радиомодуля, а также частотой дискретизации. Полоса принимаемого сигнала составляет 1,536 МГц. Подобная ширина полосы установлена для того, чтобы существовала возможность поиска полезного сигнала в полосе достаточной ширины для двадцатиканальной передачи данных. При этом большая часть мощности полезного сигнала сосредоточена в пределах полосы 50 КГц.
Перед блоками согласования стоит цифровой фильтр, который подавляет весь шум вне полосы 50 КГц. Зачастую из-за подобного обстоятельства при подсчёте отношения С/Ш учитывается только та мощность шума, которая не подавляется входным фильтром. Однако в нашем случае подобным образом выполнять расчёт не целесообразно, так как специфика исследуемой системы состоит в том, что шумовые составляющие в не полосы косвенным образом влияют на качество приёма. Дело в том, что в SDR модуле присутствует система автоматической регулировки усиления, которая выполняет регулировку учитывая всю мощность сигнала, прошедшего через аналоговый фильтр нижних частот. Тогда шумовые составляющие, не прошедшие через цифровой фильтр, но прошедшие через аналоговый будут влиять на уровень сигнала на выходе системы. Автоматическая регулировка усиления будет уменьшать в равной степени и сигнал, и внешние шумы, но при этом будут увеличиваться шумы квантования, а также уровень собственных шумов радиомодуля по сравнению с уровнем полезного сигнала. Описанные особенности отсутствуют при работе в симуляции, однако данные полученные, с учётом вышеуказанных факторов, позволят упростить пересчёт характеристик под конкретные параметры любого используемого оборудования. Поэтому при снятии характеристик был произведён учёт мощности шумов на всей рабочей полосе.
Результаты и выводы
По итогу исследования были получены зависимости количества битовых ошибок от отношения С/Ш для модуляций BPSK и QPSK. Их можно увидеть на рисунке 8, а.
Согласно графикам, помехоустойчивость QPSK оказалась выше, чем помехоустойчивость BPSK, что не соотносится с теорией [11]. На рисунке 7 можно увидеть созвездия BPSK и QPSK при одинаковом соотношении С/Ш.
Рис. 6. Созвездия при двух видах модуляции: а) QPSK; б), в), г) BPSK в различные моменты времени
Можно видеть, что созвездие BPSK не стабильно. Вращение созвездия, наблюдаемое на рисунке 7, г) можно объяснить кратковременным рассогласование по частоте. За согласование по частоте отвечает цикл Костаса, поэтому можно сделать вывод, что рассогласование происходит в результате сбоев в его работе. Было выдвинуто предположение, касательно причины рассогласования. При увеличении дисперсии шума, всё чаще появляются мощные всплески шума, которые влияют на итоговый сигнал ошибки, вырабатываемый циклом Костаса. Из-за ложного сигнала ошибки происходит рассинхронизация по частоте. Можно сгладить влияние мощных всплесков с помощью увеличения полосы пропускания цикла R. При этом падает скорость синхронизации, но увеличивается количество выборок, на основании которых вырабатывается сигнал ошибки. Изначально этот параметр был взять равным 0,01. При увеличении его до 0,1 удалось избавиться от рассогласований. Созвездия BPSK при вариации полосы пропускания цикла R и отношения С/Ш показаны на рисунке 8.
Рис. 7. Созвездия BPSK при вариации параметров: а) С/Ш = 5 дБ, R = 0,01; б) С/Ш = 5 дБ, R = 0,05; в) С/Ш = 5 дБ, R = 0,1; г) С/Ш = -10 дБ, R = 0,01; д) С/Ш = -10 дБ, R = 0,05; е) С/Ш = -10 дБ, R = 0,1;
Исходя из полученных созвездий можно сделать вывод, что параметр R необходимо подбирать исходя из ожидаемой шумовой обстановки. При С/Ш = 5 Дб для работы системы при модуляции BPSK будет достаточно R = 0.05. При соотношении С/Ш = -10 Дб, требуется выставить R = 0.1.
Остаётся вопрос касательно сравнения помехоустойчивости используемых видов модуляций. Характеристики помехоустойчивости были пересняты для параметра R = 0.1 (рис. 8, б).
Рис. 8. Зависимость количества битовых ошибок от отношения С/Ш: a) при полосе пропускания цикла R = 0.01; б) при полосе пропускания цикла R = 0.1
Из новых графиков можно видеть, что при использовании BPSK битовых ошибок меньше, чем при QPSK. Можно сделать вывод, что общие теоретические отношения применимы лишь для систем с достаточно простыми алгоритмами синхронизации. При усложнении системы, значения помехоустойчивости всё сильнее зависят от подбора параметров блоков синхронизации. Исходя из полученных данных, при задании достаточно высоких скоростей синхронизации частоты, помехоустойчивость системы большой долей определяется циклом Костаса. Он, в свою очередь, настроенный под модуляцию QPSK обладает большей помехоустойчивостью. Таким образом если стоят требования к скорости синхронизации, то целесообразнее будет использовать модуляцию QPSK. При уменьшении скорости синхронизации, помехоустойчивость цикла Костаса растёт, тогда при определении помехоустойчивости системы, могут быть применены общие теоретические соотношения, согласно которым BPSK имеет большую чем у QPSK помехоустойчивость.
About the authors
Artem Dmitrievich Shipula
Самарский национальный исследовательский университет имени академика С.П. Королева
Author for correspondence.
Email: shipulaartiom@gmail.com
Студент, институт информатики и кибернетики. Лаборант-исследователь, НИЛ-102
Russian FederationVladislav Alexandrovich Glazunov
Самарский национальный исследовательский университет имени академика С.П. Королева
Email: glazunov_41@mail.ru
доцент кафедры радиотехники, кандидат технических наук
ул. Московское шоссе, д. 34, г. Самара, 443086