Пользователь
0,0
рейтинг
17 сентября 2013 в 16:34

Администрирование → Основные принципы цифровой беспроводной связи. Ликбез tutorial


Всем привет. В этой статье я хотел бы рассказать немного об основных приемах и идеях современной цифровой беспроводной связи — на примере стандарта 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).

Далее уже можно начать говорить о тонкостях реализации — как всегда — на практике все оказывается сложнее, чем в теории, данная статья — скорее небольшой ликбез для расширения кругозора.
@SlavikMIPT
карма
38,5
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

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

  • +6
    Начали хорошо, а потом начали убивать читателя формулами. Достаточно было графиков. Ну кому он нужен интеграл для понимания?
    p.s. Сам радиофизик и много чего могу рассказать про сабж.
    • +6
      да интеграла всего 2 — sinc функция и корреляция — и то — вывод свернул — кто хочет — посмотрит- некоторые вещи нельзя на пальцах объяснить — интеграл в первом случае нужен, чтобы понять откуда следует уширение спектра. Да и как то — статья вообще пользу должна информационную приносить какую то я считаю, а не прочитал и забыл, извилинами немного пошевелить никому не лишне
      • +1
        Поддерживаю, без него мне было бы трудно понять ту часть информации, что касается спектра. Тем более, что изложено просто и по шагам — первых курсов матана достаточно для понимания.
  • +3
    сигналы и спектры и коды — это конечно прекрасно, но при чем тут конкретно IEEE 802.11 wi-fi я не понял.
    • 0
      Wifi -простите — думал это общеизвестно — внесу в заголовок пояснения
      • +2
        это я понимаю, я имею в виду, что теория, описанная в посте относится не к wifi в частности а в принципе к беспроводной цифровой передаче данных. Увидив заголовок я просто ожидал внутри нечто-более конкретное
        • 0
          это как раз довольно частный случай — тут технология расширения спектра методом прямой последовательности «DSSS» и фазовая модуляция — есть еще много различных способов кодирования и модуляции, но — как вы заметили — я действительно старался больше рассказывать об общих принципах, чем о конкретных деталях данного стандарта — просто удобно как пример его взять
          • 0
            Уширение спектра кодами Баркера и Уолша используется везде. Даже в брелках сигналки от автомобилей.
  • +3
    Хорошая статья, такими бы да книги писать. Наглядно, интересно.
  • 0
    объясните пожалуйста вот такую вещь.
    Все говорят, что обнаружение заранее известного сигнала лучше делать корреляционной функцией.
    И картинки у Вас красивые на этот счет. Но вот для меня непонятность такая.
    Предположим после радио детектора прямоугольный искомый сигнал приходит слабый, а паразитный сигнал треугольный и сильный. Нарисуем треугольник повыше, а прямоугольник пониже.
    В этом случае после корреляционной функции отклик будет сильнее на треугольный сигнал.
    Как же так?
    Мне кажется прежде чем вычислять корреляционную функцию из сигнала и из эталона нужно вычесть постоянную составляющую, тогда получится все правильно. Я прав или нет? Отсутствие осей на графиках в статье заставляет меня сомневаться в правильности моих размышлений.

    И вот дальше по статье при вычислении корреляционной функции от цифровой последовательности 11100010010 фраза «при этом заменив 0 на -1» — это ли не попытка вычесть постоянную составляющую?
    Хотя при 11 битах это убрать постоянку полностью не возможно.
    • 0
      Корреляционный метод является оптимальным для обнаружения сигналов на фоне БЕЛОГО ШУМА — про специфические помехи речи не было — там другие методы применяются. Понятие постоянная составляющая — она вообще говоря происходит из Фурье анализа — корреляцией можно пользоваться и без него, так что вычитать постоянную составляющую или нет — дело сугубо добровольное — ограничений на это никаких не накладывается. 0 на -1 заменяется, потому что 0 и 1 это уровни в компьютере, в передатчике же управляющие уровни 1 и -1 — размах в 2 раза больше, поэтому автокорреляция считается так
      • 0
        хм… причем белый шум… Вы же говорите об обнаружении сигналов как минимум двух видов, двух эталонов (ноль или единица для цифровых сетей)?
        гипотетически предположим летят 2 самолета: у одного позывные треугольные импульсы, а у второго прямоугольные. Как отличить один самолет от другого? разве не корреляционная функция будет использоваться? думаю нужно вычислять 2 корреляционные функции от сигнала из эфира в скользящем временном окне с первым и вторым эталонами. Если отклик корреляционной функции выше некоторого порога, то считаем что сигнал соответствующий эталону обнаружен. Но тот же самый вопрос — нужно ли удалять постоянную составляющую? Ведь яркий входной сигнал (с постоянной составляющей) с любым эталоном легко превысит порог обнаружения.
        • 0
          допустим есть у вас зондирующий импульс I — вы его отправили, а вернулся он с какой то добавочной функцией F, тогда корреляция их будет I*(I+F) = I*I + I*F,(корреляция как и свертка ассоциативна) то есть к автокорреляционной функции I*I (которая для данного сигнала известна) прибавляется корреляционная функция I*F — предположим F это константа C + какой то шум q, тогда I*F = integral(I(t)*C*dt) + integral(I(t)*q(t — T)dt) = K + I*q. Что в итоге имеем — добавление к входному сигналу постоянной величины С — поднимает значение корреляционной функции на постоянную величину K, равную интегралу зондирующего импульса от минус до плюс бесконечности умноженного на эту константу, то есть если мы изначально выберем I — такой, что её интеграл равен 0 — нам плевать становится на входное постоянное смещение, если же нет, то — сколько у нас прибавится для неправильного сигнала — столько же и для правильного прибавится. От свертки с шумом — увы избавиться не получится — любой сигнал в той или иной мере похож на шум.
          • 0
            Цитата: «если мы изначально выберем I — такой, что её интеграл равен 0 — нам плевать становится на входное постоянное смещение» — и это правильно. Это то что я говорил — нужно избавиться от постоянной составляющей в эталоне. И еще нужно рисовать на картинках оси отсчета для ясности:



            Цитата: «если же нет, то — сколько у нас прибавится для неправильного сигнала — столько же и для правильного прибавится» — а вот что с этим делать — это уже нужно подумать.
            Вы предлагаете на ходу менять порог обнаружения? А как его вычислять по ходу работы устройства? Выбор порога обнаружения — это фундаментальный вопрос (кстати не описан в статье). От этого зависит будет сигнал обнаружен или нет.

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



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

            Несмотря на кажущуюся тривиальность обнаружения детерминированного сигнала (эталона) с помощью корреляционной функции на мой взгляд тут есть довольно много ньюансов.
            Например, мы еще не рассмотрели вопрос амплитуды входного сигнала. Как амплитуда входного сигнала влияет на отклик корреляционной функции? Отраженный сигнал от дальней цели будет иметь гораздо меньшую амплитуду сигнала. В результате на выходе коррелятора получится очень «небольшой максимум». И как тогда выбирать порог обнаружения? Еще раз замечу — выбор порога обнаружения — ключевой вопрос.

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

            • 0
              увеличение или уменьшение амплитуды принимаемого сигнала в N раз — уменьшит во столько же раз АКФ — следствие линейности свертки. Обычно постоянный уровень на входе системы определяется самим прибором — например смещение на пол питания операционного усилителя — и этот уровень из раза в раз постоянен — если вы его вычтете — на отношение сигнал/шум это не повлияет, но возможно будет удобней программировать. По картинке — давайте уж тогда вертикальные оси отметим — например сигнал треть периода имеет значение 0, потом 1, потом опять 0 — среднее значение за период равно 1/3 — вычтем это значение из эталонного сигнала(тогда его интеграл за период будет равен 0) и посчитаем корреляцию при полном совпадении с 1м и 2м сигналом на картинке — в первом случае будет 2/9, во втором 4/9 * 1/3 + 1/9 * 2/3 = 6/27 = 2/9 — то же самое, теоретическое обоснование — в коментарии выше — вытекает из ассоциативности свертки
              • 0
                каюсь, ступил. Наличие постоянки во входном сигнале видимо не влияет.
                Правда не понял, как у Вас получились Ваши цифры по моим картинкам?
                У меня вот так:
                1й случай
                0*(-1/3)+1*(2/3)+0*(-1/3)=2/3
                2й случай
                (-1/3)*(-1/3)+(2/3)*(2/3)+(-1/3)*(-1/3)=1/9+4/9+1/9=6/9=2/3
                действительно то же самое.

                итого, какой вывод?
                1) все же из эталона нужно вычитать постоянку, так?
                2) на каком уровне и как выбирать порог детектирования?
                • 0
                  1) ну тут разграничьте просто то, что от Вас требует математика и что вам удобнее — по видимому удобней вычитать постоянку, хотя и не обязательно
                  2) уровень зависит от отношения сигнал/шум конкретной системы
                  Цифры такие, потому что еще нужно на период каждого значения умножать — это же интеграл
                • 0
                  1. Надо вычитать.
                  2. А это просто так не объяснишь. Если биты равновероятные, то какая корреляция больше (для 0 или для 1), ту и берём.
            • 0
              Это как раз решает довольно легко дополнительным кодированием — что то вроде «дополнительная единица после каждых пяти нолей», либо иной бит-стафинг… Или вообще, добавлением хитрой чётности, как в некоторых протоколах — тогда и постоянную составляющую компенсируем и проверку корректности получаем. А можно это ещё и с синхронизацией совместить.
  • +2
    Эх, зашёл сюда, думая, что пойму.
    Получилось, как всегда.
    image


    И да, много кто читает теги ;-)
    • +1
      так спрашивайте что непонятно — Хабр из тех сайтов, где из комментариев часто получаешь больше информации чем из топика)
  • +3
    Добавлю, что в 802.11 используются DBPSK и DQPSK, а не BPSK и QPSK, где D — Differential (относительная) фазовая модуляция. Сделано для синхронизации сигнала.
    Прелесть кодов Баркера, 11 чипового — в том, что он расширяет спектр в 11 раз. Баркер используется в 802.11b и соответсвует скоростям в 1 и 2 мегабита.
    По каким то причинам автор рассказал про Баркера, но не рассказал про CCK. Я дополню.
    CCK (Complementary Code Keying) — 8 чиповый комплементарный код. Тоже используется для расширения спектра. В 802.11b при помощи cck ведется передача и прием на скоростях 5.5 и 11 мбит/с. символьная скорость передачи составляет 1,385×(10)^6 символов в секунду (11/8 = 5,5/4 = 1,385). Ширина спектра сигнала как при скорости 11 Мбит/с и 5,5 Мбит/с составляет 22 МГц. Метод использует DQPSK модуляцию и кодирование происходит дибитами. Элементы 8-чиповой последовательности могут принимать одно из следующих восьми значений: 1, –1, j, –j, 1+j, 1–j, –1+j, –1–j.
    Восемь чипов информационного символа последовательно модулируют несущую с частотой модуляции 11 МГц.
    Каждый чип представляет собой сигнал, определяемый формулой С=[с0,..., с7]={e^(j(φ1+φ2+φ3+φ4)),(e)^(j(φ1+φ3+φ4)),e^(j(φ1+φ2+φ4)),-e^(j(φ1+φ4)),e^(j(φ1+φ2+φ3)),e^(j(φ1+φ3)),-e^(j(φ1+φ2)),e^jφ1}.
    φ1-определяет относительную модуляцию. остальные 3 параметра φ2...φ4 определяются по специальной таблице из rfc 802.11b.

    Каждая такая последовательность мало коррелирует сама с собой при фазовом сдвиге – очень полезное свойство при борьбе с переотраженными сигналами. ССК модуляция представляет собой вид блочного кода, а потому достаточно проста при аппаратной реализации. Совокупность этих свойств и обеспечила ССК место в стандарте IEEE 802.11b в качестве обязательного вида модуляции.

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

    Возможно это стоит добавить в основной топик, т.к. есть элемент недосказанности.
    • +1
      спасибо за дополнение. про CCK я решил, что уже перегрузка будет информацией — для неподготовленного человека и так много, можно было бы сюда еще и FHSS запихать и варианты и сложности технической реализации, но кому это реально интересно — найдет это в книгах, статья по возможности для широкой аудитории написана — поэтому многие вещи разжевываются. Про дифф передачу в конце упомянул, кстати. Если тема интерес вызывает — можно еще про сотовую связь, например, что то написать
      • 0
        Лучше про CCK с картинками :)
  • 0
    Интересно, эта последовательность также даст положительные пики в корреляции с последовательностью двух разных байт. Как отсеять такие?
    • 0
      бит вы хотели сказать? а вы посчитайте взаимную корреляцию прямой и инверсной последовательности Баркера и сравните
      • +1
        Я имел ввиду корреляцию Б1 и… Б1Б0…
        Вы показали в статье, что корреляции Б1 с… Б1Б1… или… Б0Б0… принимают высокие значения ±11 только при нулевом смещении. Мой вопрос был, не получится также иметь пики и в корреляции Б1 с… Б1Б0… при ненулевом смещении. Проверка показала, что еще одно важное свойство последовательности в том, что эти корреляции тоже малы.
        • 0
          да — дельное замечание — забыл упомянуть
  • 0
    Сплошная математика… но хотябы вспомнил что такое свертки. Теперь бы научится их быстро считать на железе чтобы применить на практике.
    • +2
      Это к вопросу — для чего программисту математика) Приведу пример из жизни — как то работал над одним проектом с быстрой камерой (1200 кадров в секунду) на C++ — нужно было показывать фурье этих кадров, по всему кадру и по заданным областям — проект я получил от предыдущего программиста и все дико тормозило и не успевало. Оказалось, что БПФ выполнялось над каждым входным кадром, а затем 100 спектров усреднялись — программист не знал, что не имеет значения — усреднить 100 кадров, а потом сделать одно БПФ или сделать 100 БПФ, а затем их усреднить.для того, чтобы свертки считать даже процессоры специальные разработали — DSP — свертка это одна из основных операций в ЦОС — умножение с накоплением — одна из основных операций в DSP — делается за 1 такт, при этом — из памяти данных по одной шине — берется коэффициент, допустим какого то КИХ фильтра или значение эталонной функции, из оперативной памяти берется по другой шине входной отсчет, производится их перемножение, а результат прибавляется к аккумуляционному регистру — 4 операции за 1 такт — это удивительные устройства
      • 0
        Все-таки разъяснения практической реализации математических методов как раз и не хватает.
        Формулы это одно, а вот перейти от математических формул к целочисленной арифметике учитывая особенность конкретных вычислительных устройств да еще обосновать этот переход — вот где настоящее инженерное искусство!

        Уже давно мечтаю сделать простой индикатор спектра для усилителя, по меркам математики — требования весьма скромные, однако стоит непреодолимая пока преграда преобразование тех самых простых и ясных формул в алгоритм на конкретном железе так чтобы оно самое успевало вовремя все обрабатывать.
        Смотрел множество готовых подобных решений — однако, они ВСЕ сделаны по принципу «работает и ладно» т.е. крайне частные и слабо переносимые решения, часто сделанные решением задачи «в лоб» да и еще соптимизированные на уровне кода до полной нечитабельности и без комментариев.
        • 0
          ну так не зря инженеры ЦОС свой хлеб едят — нужно и математику знать и программирование и устройство вычислительных систем и алгоритмы, уметь выбирать между различными аппаратными платформами — это вообще говоря непросто, но на этом сейчас построен мир вокруг нас на самом деле — все это работает, когда вы разговариваете по мобильнику, подключаетесь к вайфай в макдаке или заходите в интернет — за каждым простейшим с точки зрения обывателя действия — стоит зубодробительной сложности система, решающая проблемы о которых многие и не задумываются — подавление эха при разговоре например, подавление шумов — многие ли знают, что в любом мобильнике микрофона минимум 2 стоит и благодаря этому вы можете разговаривать в шумном месте, многие ли обращали внимание, что слышат собеседника одинаково хорошо, когда он тихо говорит и когда громко и таких проблем просто не перечислить
          • 0
            Сейчас мало где два стоит :( Шумы давят простой обработкой.
            • 0
              Можно ли простой обработкой подавить звук проезжающего рядом грузовика? Врятли же…
          • 0
            Беда в том что это все надо когда-то изучать, если хочешь использовать в своих разработках. Порой для «просто ради интереса» желание быстро пропадает.
  • 0
    Если честно, поначалу неочевидно, почему BPSK и QPSK имеют равную вероятность ошибки на графике.
    Да и ваши слова:
    Теперь за раз мы можем кодировать 2 бита. То есть скорость передачи возрастает вдвое. Но и вероятность ошибки при тоже неизбежно возрастет.
    как-то смущают.

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