Всем привет. В этой статье я хотел бы рассказать немного об основных приемах и идеях современной цифровой беспроводной связи — на примере стандарта IEEE 802.11. В наше время очень часто люди живут на довольно высоких уровнях абстракции, плохо представляя как именно работают окружающие нас вещи. Ну что ж — попытаюсь принести в массы свет просвещения. В статье будут использоваться вещи и терминология, объясненные в этой статье. Так что людям, далеким от радиотехники рекомендуется сначала прочитать её.
DANGER: в статье присутствует матан — особо впечатлительным не нажимать на эту кнопку:


Цифровые сигналы и спектры


Аналоговые сигналы

До развития компьютеров — посредством радиоволн передавались обычно аналоговые сигналы — то есть сигналы, множество значений которых непрерывно.


Например — звук — зависимость давления от времени. Полученный с приемника сигнал (напряжение) поступает на усилитель звуковой частоты и заставляет колебаться динамик.


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


Основной минус такого способа передачи информации — низкая помехоустойчивость — передающая среда всегда вносит в наш сигнал какую то случайную составляющую — изменение формы видеосигнала меняет цвета отдельных пикселей(все мы помним шумы радиоприемника и рябь на экране телевизора).

Цифровые сигналы

Цифровые сигналы — то есть сигналы, имеющие дискретное множество значений — по этому параметру значительно лучше аналоговых, так как нас интересует не непосредственно значение сигнала, а диапазон в котором находится это значение и помеха нам не страшна(например в диапазоне напряжений 0В — 1.6В мы считаем, что это лог 0, а в диапазоне 3.3В — 5В лог 1). Расплата за это — увеличение требуемой скорости передачи и обработки информации.

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

Спектр единичного импульса

В радиосвязи нас часто интересует спектр сигнала — цифровой сигнал — последовательность прямоугольных импульсов — для начала рассмотрим спектр одного прямоугольного импульса.
Вспомним — что такое спектр(коэффициент перед интегралом опущен):

Спектр прямоугольного импульса длительностью T и амплитудой A:
Вывод

Выносим константу за интеграл и делаем замену дифференциала


Считаем определенный интеграл

Далее делаем замену на синус по Формуле Эйлера





Таак — а как же быть с отрицательной амплитудой? Вспомним что в действительных числах спектр раскладывается на сумму синусов и косинусов с нулевыми фазами —



в такой форме на самом деле удобней представлять в компьютере, но для анализа такая форма совершенно неудобна — при изменениях сигнала во временнОй области — спектры будут меняться совершенно непонятным для человека образом, поэтому два спектра синусных компонент и косинусных компонент преобразуют в полярные координаты, сворачивая пары синусов и косинусов с нулевой фазой в синус с ненулевой фазой, получая амплитудный спектр и фазовый, а теперь вспомним, что домножение сигнала на -1 — эквивалентно скачку фазы на 180 градусов, поэтому отрицательная часть отразится относительно горизонтальной оси, а в точках перегиба — фаза будет испытывать скачок на 180 градусов.

Также видим, что спектр одиночного импульса представляет собой sinc функцию, довольно часто встречающуюся в цифровой обработке сигналов и радиотехнике.

Почти вся энергия импульса содержится в центральном пике спектра — его ширина обратно пропорциональна длительности импульса. А высота — прямо пропорциональна — то есть — чем длиннее импульс — тем уже и выше его спектр, а чем короче — тем ниже и шире.
Спектр последовательности импульсов с хорошей степенью точности можно считать совокупностью гармоник в спектральной полосе, ширина которой обратно пропорциональна длительности импульса T.

Итак — вывод — уменьшая длину импульсов нашего цифрового сигнала мы можем размазывать сигнал по широкой полосе спектра — при этом пропорционально уменьшается его высота — при увеличении полосы в N раз — во столько же уменьшится высота спектра вплоть до уровня шумов. Широкополосная передача имеет довольно много плюсов — один из них — устойчивость к узкополосным помехам — так как информация размазана по спектру — узкополосная помеха портит только малую часть этой информации.

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

Автокорреляционная функция. Коды Баркера

Наша задача — найти в длинной последовательности входных данных заранее известную короткую последовательность.
Автокорреляция — статистическая взаимосвязь между случайными величинами из одного ряда, но взятых со сдвигом.
Особое значение данный параметр имеет в локации — вот сгенерировали мы какой то сигнал и засекли время — скорость распространения сигнала нам известна, значит зная время, которое потребовалось сигналу, чтобы сбегать до препятствия и обратно — мы можем вычислить расстояние для препятствия. Но вот незадача — идеальных условий в жизни не бывает — как правило вокруг очень много шумов и вместе с отраженным сигналом на вход приемника поступает всякий мусор. А мы во-первых не должны спутать наш сигнал ни с чем другим, во вторых — достаточно точно определить момент времени, когда он вернулся назад.

Математически — автокорреляция определяется так:

То есть мы накладываем функцию на саму себя, но со сдвигом — перемножаем и вычисляем интеграл, отмечаем точку, затем опять сдвигаем, опять вычисляем интеграл и так для всех возможных сдвигов. Если мы прикладываем функцию не к самой себе, а к какой то другой, то это называется просто корреляция.
На приведенной ниже картинке демонстрируются операции свертки, корреляции и автокорреляции.
Отличие свертки и корреляции — в направлении — свертка функций f(x) и g(x) — это та же корреляция, только функций f(x) и g(-x), автокорреляция — корреляция функции с самой собой

То есть в момент времени, когда входной сигнал наиболее похож на нужную нам функцию — корреляционная функция будет иметь пик. Ширина этого пика, если не брать во внимание шум — будет равна удвоенной длине зондирующего импульса и будет симметричной относительно центрального пика — даже если исследуемый сигнал не является симметричным. К слову — пиков может быть несколько — центральный пик и так называемые боковые лепестки — зависит от функции. Корреляционный метод является самым оптимальным методом определения сигнала известной формы на фоне белого шума — другими словами метод имеет наилучшее отношение сигнал/шум. Зондирующий импульс должен удовлетворять следующим требованиям — иметь как можно более узкий центральный пик и при этом иметь минимальный уровень боковых лепестков, то есть функция похожа сама на себя только в очень коротком интервале времени — чуть сдвинуть и она становится совершенно непохожа. В локации этим требованиям удовлетворяет ЛЧМ сигнал.
Имеющий минимальный уровень боковых лепестков, автокорреляционная функция ЛЧМ сигнала имеет следующий вид:

Аналогом ЛЧМ сигнала в дискретных системах является последовательность Баркера
Например — известная последовательность длинной 11 бит: 11100010010.
Найдем автокорреляционную функцию этой последовательности, циклически сдвигая её и считая сумму попарных произведений, при этом заменив 0 на -1
11100010010
11100010010
11
11100010010
01110001001
-1
11100010010
10111000100
-1
11100010010
01011100010
-1
11100010010
00101110001
-1
11100010010
10010111000
-1

И так далее — в общем автокорреляционная функция имеет значение 11 только при полном совпадении, во всех остальных случаях — -1.
То же самое справедливо и для инверсии последовательности, то есть для 00011101101. Плюс ко всему — прямая и инверсная последовательности слабо коррелируют между собой — мы их не спутаем.
Получается, что мы можем каждый бит информации кодировать 11 битами последовательности Баркера — прямой для единиц и инверсной для нулей. Элементы последовательности Баркера называют чипами.На практике кодирование происходит примерно так:

Приемник просто может считать корреляцию последовательностей Баркера(прямой и инверсной) и входного сигнала и по пикам корреляционной функции определять — где во входном сигнале закодированы нули, а где — единицы

Модуляция

В общем — как сделать из узкополосного информационного сигнала — широкополосный шумоподобный, а потом его восстановить — разобрались. Теперь поговорим немного о способах передачи данных через среду — средой может быть вакуум, воздух, оптоволокно, провод и т.д. Для того чтобы передавать сигнал при помощи радиоволн нам нужна несущая частота, промодулировав её — мы насаживаем нашу информацию на несущую. Есть 3 основных типа модуляции — амплитудная, частотная и фазовая.
Можно наш готовый к передаче сигнал направить на переключатель и просто включать-выключать передачу несущей — тем самым промодулировав амплитуду

Достоинства и недостатки амплитудной модуляции рассматривались в этой статье, так что подробно здесь останавливаться на ней не будем — в настоящее время амплитудная модуляция почти не применяется.

Следующий тип модуляции — частотная, когда сигнал данных управляет частотой несущей — либо напрямую (ГУН), либо переключаясь между двумя разными генераторами(при этом происходит скачок фазы)

Тут тоже есть что сказать, но как нибудь в другой раз — иначе статья получится слишком уж большой.

Фазовая модуляция

Несложно догадаться — что тут мы кодируем информацию в фазе сигнала — например нуль соответствует нулевому сдвигу по фазе, а единица — сдвигу на 180 градусов — такой способ кодировки легко реализовать технически — например умножая сигнал на 1 — имеем нулевой фазовый сдвиг, а умножая на -1 — сдвиг на 180 градусов. Такая модуляция называется Binary Phase Shift Key или BPSK

А что если мы хотим иметь больше фазовых сдвигов? Для начала объясню логику инженеров, которые придумали следующие танцы с бубном — у вас всего 2 управляющих сигнала — 1 и -1 и при помощи них нужно наиболее простым способом закодировать произвольное число фазовых сдвигов — можно конечно поставить какой нибудь супер ЦАП и управлять генерируемой частотой напрямую, но математика предлагает нам кое что получше. А именно вот эту формулу:



К слову — на ее основе мы произвели переход от спектров синусоид и косинусоид с нулевыми фазами к спектру синусоид с ненулевыми фазами и фазовому спектру — теперь мы просто делаем обратное преобразование.

На этом основана Квадратурная Модуляция



— вместе с несущей мы генерируем еще один сигнал, который сдвинут относительно несущей на 90 градусов, то есть находится с ней в квадратуре. Теперь — управляя амплитудой каждого сигнала(In phase и Quadrature) — умножая на 1 или -1, а затем суммируя — мы можем получить уже 4 возможных фазовых сдвига.

Теперь за раз мы можем кодировать 2 бита. То есть скорость передачи возрастает вдвое. Но и вероятность ошибки при тоже неизбежно возрастет.
image

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

Обратите внимание, что последовательность бинарных слов на диаграмме представляет собой Код Грея, что минимизирует вероятность ошибки. Кроме того — есть дополнительный сдвиг на 45 градусов — это делается для того, чтобы уменьшить паразитную амплитудную модуляцию при скачках фазы на 180 градусов

На практике синхронный способ передачи не используется — потому что есть привязка к какой то начальной фазе, а со временем набегает ошибка и фаза уплывает, нужно постоянно переустанавливать начальную фазу — синхронизировать приемник и передатчик. Поэтому носителем информации в реальных системах является не фаза, а изменение фазы — дифференциальный способ передачи сигнала позволяет избавиться от синхронизации. Например при каждом появлении нуля — фаза делает скачок на 180 градусов (BPSK).

Далее уже можно начать говорить о тонкостях реализации — как всегда — на практике все оказывается сложнее, чем в теории, данная статья — скорее небольшой ликбез для расширения кругозора.
Поделиться с друзьями
-->

Комментарии (16)


  1. Mogwaika
    14.02.2017 17:37

    1) Можно поподробнее про переход между формулами с синусами?
    2) На картинках с цифровым сигналом и наводкой неплохо бы добавить сдвиг фронта из-за срабатывания порога в другой момент времени.
    3) Расскажите поподробнее про уплывание фазы (в самом конце).
    4) Где примеры с 802.11?


  1. Alexeyslav
    14.02.2017 18:09

    На самом деле, это только самое начало… в WiFi применяется ещё и амплитудная модуляция. Там вообще очень много ухищрений и каждое увеличивает информационную ёмкость несущей, и соответственно пропускную способность канала передачи данных. Причем были и просчёты, из-за чего 802.11g не совсем совместим с современными высокоскоростными протоколами.


  1. nerudo
    14.02.2017 18:36
    +2

    На какой магии работает MIMO?


    1. AndreyNagih
      15.02.2017 08:15

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

      Например, если у нас 2 передающих антенны и 2 приемных, то мы можем передать и выделить одновременно 2 сигнала. Предположим, что первый сигнал пришел в антенны в противофазе, а второй прошел по другому пути и пришел синфазно. Тогда разница выходов антенн усилит нам в два раза первый сигнал и уберет второй, а сумма выходов уберет первый сигнал и выделит второй.


      1. nerudo
        15.02.2017 09:10

        Если через две рядом находяшиеся антенны начать передавать FM-радио (разное), то фокус, очевидно, не удасться. Так что про какую-то важную часть магии вы не рассказали ;)


        1. AndreyNagih
          15.02.2017 10:55

          Вы пробовали, или теоретизируете?
          И, конечно же я рассказал на пальцах.
          Могут быть разные модуляции, и разные ухищрения.
          Подробнее рассказать у меня не получится, т.к. не хватает опыта.


        1. m0Ray
          15.02.2017 13:50

          С независимыми передатчиками, наверное, не получится. Но в технологии MIMO передатчики, насколько мне известно, управляются так, чтобы на приёмнике всё получилось.
          Бывает ещё «магия» поляризации. Во всех виденных мною комбинированных направленных антеннах для MIMO2x2 пары антенн располагались под некоторым углом друг к другу (обычно под прямым).


        1. IMPOMEZIA
          16.02.2017 02:55

          Фокус в том что сигналы от 2 передающих антенн должны как-то быть разделены в пространстве, чтоб не мешать друг другу, самый простой способ это горизонтальная и вертикальная поляризация, поэтому чтоб эксперимент удался, нужно взять 2 FM передатчика с направленными антеннами (можно одинаковыми) разместить одну из них вертикально, другую горизонтально и тоже самое сделать для приёмников.

          По этим же причинам, чтобы не мешать друг другу телевидение использует горизонтальную поляризацию, а FM радио вертикальную, т.к. метровый диапазон и диапазон радио пересекаются.

          В Wi-Fi проделана гигантская работа, чтоб MIMO работал, т.к. классические рогатые антенны плохо годятся, чтоб сделать пространственное разделение каналов, только в специализированных уличных решениях с хорошими антеннами можно полностью раскрыть потенциал MIMO.


  1. golf2109
    14.02.2017 18:57
    +2

    спасибо, хорощо написано,
    кстати продвигаемый в последнее время стандарт IoT LoRa
    использует как раз ЛЧМ


  1. Vitalley
    16.02.2017 02:55
    +1

    Нужно продолжение и интересно будет почитать про другие методы кодирования.


  1. porsh59
    16.02.2017 02:55

    Застрял на Матане. Хот вроде и сдавал его нормально, и понимал, и преподаватель был строгий. Но сейчас уже не думаю в этом направлении, поэтому мне сложно понять разновидности корреляций без конкретных примеров.
    Математические выкладки и описания не плохо было бы дополнить понятными примерами из графиков и диаграмм. Тогда информация будет восприниматься лучше и аудитория увеличится.
    Честно хотел понять, но прочитав один раз многое не понял ))), хотя все графики, диаграммы и примеры мне были ясны.


  1. bobych_spb
    16.02.2017 02:55
    +1

    Непонятно при чем тут завяленный в начале статьи WiFi. Кроме QPSK существует и используется множество других модуляций 16QAM 64QAM 256QAM и т.д. Хотелось бы побольше про них услышать и почему выбраны были именно они, а иначе статья сильно напоминает кусок моего конспекта по электронике года эдак 2003.


    1. nerudo
      16.02.2017 12:41
      +1

      QPSK — она же 4QAM. На I/Q симметрично расставлены 4 точки, образуя квадрат со стороной 2*2. Все прочие QAM — попытка расставить на той же плоскости больше точек (16, 64 и 256 соответственно) в виде квадратов 4*4, 6*6, 8*8. Чем больше квадрат — тем больше данных можно пердать в единицу времени (больше бит кодируется), но тем сильнее влияние помех, т.к. при той же мощности расстояние между точками уменьшается.


      1. SmartVolk
        17.02.2017 13:02

        Да, а ещё есть GMSK — гауссова манипуляция, используется в БС до боли привычном уже GSM.


  1. colorbash
    16.02.2017 02:55
    +1

    Спасибо за статью, интересует как обрабатываются радиосигналы при нескольких работающих маршрутизаторах(например) WI-Fi в приемнике, как распознать сигнал на фоне шумов это я понял, а как информация от 1 не смешивается с сигналами от других источников?
    В GPS используют кодовое разделение(НКА по очереди шлют сигналы), а в ГЛОНАСС частотное, как же работает эта система?
    Кстати вопрос относится и к протоколу bluetooth.
    Спасибо.


    1. Alexeyslav
      16.02.2017 15:30

      В общем случае — никак. Если приёмник находится в зоне неуверенного приёма двух точек, из-за помех он не сможет работать ни с одной из них. И только когда покрытие двух точек пересекается, они начинают делить общую среду передачи данных, но делается это на более высоком уровне нежели канал передачи данных, используется временное разделение каналов. Из-за чего 802.11g досихпор пьёт кровь потенциальных пользователей современных точек доступа.