Кодовое разделение каналов множественного доступа

Кодовое разделение каналов множественного доступа (англ. Code-division multiple access, CDMA) — это метод доступа к каналу, используемый в различных технологиях радиосвязи. CDMA является примером технологии множественного доступа, при которой несколько передатчиков могут одновременно передавать информацию по единому каналу связи. Это позволяет нескольким пользователям совместно использовать полосу частот (см. Полоса пропускания). Для предотвращения чрезмерных взаимных помех между пользователями CDMA использует широкополосную технологию и специальную схему кодирования (каждому передатчику назначается свой код)[1].[2]

CDMA оптимизирует использование доступной полосы пропускания, поскольку передача происходит по всему частотному диапазону и не ограничивает частотный диапазон конкретного пользователя.

CDMA применяется как метод доступа во многих стандартах мобильной связи. Стандарт IS-95, также известный как «cdmaOne», и его 3G-эволюция CDMA2000 часто просто называются CDMA, однако стандарт 3G UMTS, используемый операторами GSM, также использует «широкополосный CDMA» (W-CDMA), а также TD-CDMA и TD-SCDMA в качестве радиотехнологий. Многие операторы (такие как AT&T, UScellular и Verizon) в 2022 и 2024 годах выключили свои 3G-сети на базе CDMA, вследствие чего устройства, поддерживающие только эти протоколы, перестали работать для звонков, включая вызовы экстренных служб[3][4].

Кроме того, CDMA может использоваться как технология доступа к каналу или среде передачи, подобно ALOHA, либо как постоянный пилотный/сигнальный канал, позволяющий пользователям синхронизировать свои локальные осцилляторы с общей системной частотой и постоянно оценивать параметры канала.

В этих схемах сообщение модулируется на более длинной расширяющей последовательности, состоящей из нескольких чипов (0 и 1). Благодаря выгодным авто- и взаимнокорреляционным характеристикам эти расширяющие последовательности десятилетиями применялись в радиолокационных системах, где называются кодами Баркера (с типично короткой длиной — от 8 до 32 элементов).

В космических системах связи CDMA используется также десятки лет — из-за значительных потерь сигнала и эффектов Доплера, вызванных движением спутников. CDMA часто применяется с двоичной фазовой манипуляцией (BPSK) в простых случаях, но может сочетаться с любыми другими схемами модуляции — например, с квадратурной амплитудной модуляцией (QAM) или ОЧМ (OFDM), что делает её особенно надёжной и эффективной, а также позволяет реализовать точные функции измерения дальности (что затруднительно без CDMA). В других схемах используются поднесущие с модуляцией по методу Binary offset carrier, вдохновлённой кодом Манчестера; она обеспечивает большее разделение между виртуальными центральными частотами и поднесущими, в отличие от OFDM.

История

В США

В США одно из первых упоминаний о CDMA встречается в итоговом отчёте по проекту Hartwell о «безопасности внешнего транспорта», летней исследовательской программе в Массачусетском технологическом институте (MIT), проходившей с июня по август 1950 года[5]. Дальнейшие исследования по проблематике подавления помех и противодействия им проводились в 1952 году в лаборатории Lincoln Lab при MIT[6].

В СССР

В СССР первая работа по этой теме была опубликована в 1935 году Дмитрием Васильевичем Агеевым[7]. Было показано, что с помощью линейных методов существуют три типа разделения сигналов: частотное, временное и компенсационное. Технология CDMA применялась в 1957 году, когда молодой военный радиоинженер Леонид Куприянович в Москве создал опытный образец переносного автоматического мобильного телефона LK-1 с базовой станцией[8]. LK-1 весил 3 кг, имел дальность работы 20–30 км и до 20–30 часов автономной работы[9].[10] Базовая станция, по описанию автора, могла обслуживать нескольких абонентов. В 1958 году Куприянович изготовил новый опытный «карманный» мобильный телефон весом 0,5 кг. Для обслуживания большего количества абонентов он предложил устройство, названное им «коррелятор»[11][12]. В 1958 году в СССР также начата разработка национальной системы автомобильной радиотелефонии «Алтай» на базе стандарта MRT-1327. Эта система весила 11 кг, устанавливалась в багажник автомобилей высокопоставленных лиц и использовала обычную телефонную трубку в салоне автомобиля. Главными разработчиками системы были ВНИИС и ГСПИ. В 1963 году услуга появилась в Москве, а к 1970 году работала уже в 30 городах СССР[13].

Применение

  • Синхронное кодовое разделение каналов (code-division multiplexing, раннее поколение CDMA) реализовано в Глобальной системе позиционирования (GPS); это предшествует и отличается от использования в мобильных телефонах.
  • Стандарт Qualcomm IS-95, известный как cdmaOne.
  • Стандарт Qualcomm IS-2000, известный как CDMA2000, применяется рядом операторов мобильной связи и, в том числе, в сети Globalstar.
  • Мобильный стандарт UMTS третьего поколения, использующий W-CDMA.
  • CDMA применяется в спутниковой системе OmniTRACS для логистики автотранспортных перевозок.

Шаги модуляции CDMA

CDMA — это технология широкополосного множественного доступа. В широкополосных техниках ширина полосы данных равномерно расширяется при той же передаваемой мощности. Расширяющий код представляет собой псевдослучайную последовательность во временной области с узкой функцией неоднозначности в частотной области. В CDMA локально генерируемый код работает с частотой, гораздо превышающей скорость передачи данных. Передаваемые данные объединяются с этим более быстрым кодом побитовым XOR. На иллюстрации показано, как формируется сигнал с расширением спектра: сигнал данных с длительностью импульса подвергается XOR с кодом с длительностью импульса . Полоса полезного сигнала — , а спектра — . Поскольку намного меньше , пропускная способность сигнала с расширением существенно больше исходной. Отношение называется коэффициентом расширения или «выигрышем обработки» и частично определяет максимально возможное количество пользователей, одновременно поддерживаемых одной базовой станцией[1][2].

Генерация CDMA-сигнала

Каждый пользователь системы CDMA использует уникальный код для модуляции своего сигнала. Выбор кодов критически важен для работы системы: наилучшие результаты достигаются при хорошем разделении между нужным сигналом и помехами остальных пользователей. Разделение осуществляется посредством корреляции принятого сигнала с локально сгенерированным кодом нужного пользователя. Если код совпадает, функция корреляции высока и сигнал извлекается; иначе результат корреляции близок к нулю (то есть сигнал отфильтровывается) — это взаимная корреляция. Если код сравнивается с сигналом с ненулевым временным сдвигом, также желательно, чтобы корреляция была близка к нулю — это автокорреляция, используемая для борьбы с многолучёвостью.[14]

Аналогия множественного доступа — это большая комната, в которой люди хотят говорить одновременно. Чтобы не мешать друг другу, они могут говорить по очереди (временное разделение), на разных высотах голоса (частотное), или на разных языках (кодовое разделение). CDMA эквивалентен последнему случаю: говорящие на одном языке понимают друг друга, а остальные воспринимаются как шум и игнорируются. В радиосвязи CDMA каждая группа пользователей получает общий код, и хотя коды совместно используют один канал, передавать могут только абоненты с нужным кодом.

Существует две основные разновидности CDMA: синхронная (ортогональные коды) и асинхронная (псевдослучайные коды).

Кодовое разделение каналов (синхронная CDMA)

Метод цифровой модуляции аналогичен применяемому в простых радиостанциях: в аналоговом случае сигнал данных умножается на чистую синусоиду высокой частоты и передаётся; в результате получается несущая со сжатыми побочными полосами. В цифровом варианте вместо синусоиды используются функции Уолша — бинарные прямоугольные сигналы, образующие полную ортонормированную систему. Данные также двоичные, а умножение реализуется по XOR (например, с помощью смесителя Гилберта в электронике).

Синхронная CDMA использует свойство ортогональности между векторами, представляющими строки данных. Пример: двоичная последовательность 1011 задаётся вектором (1,0,1,1). Векторы ортогональны, если их скалярное произведение равно нулю. Например, если u = (a, b), v = (c, d), то их скалярное произведение u·v = ac + bd. Если оно равно нулю, вектора ортогональны. Несколько свойств скалярного произведения удобны для понимания работы W-CDMA. Если a и b ортогональны:

Каждый пользователь при синхронной CDMA использует уникальный ортогональный код для модуляции сигнала. Пример четырёх взаимно ортогональных цифровых сигналов приведён ниже. Ортогональные коды имеют нулевое взаимное корреляционное значение — они не мешают друг другу. В IS-95 используются 64-разрядных кода Уолша, чтобы отделить пользователей: каждый такой код ортогонален всем прочим, что позволяет канализировать поток в 64 независимых канала. Ниже показан пример кодирования и декодирования сигналов.

Пример

Начнём с множества взаимно ортогональных векторов (обычно берутся строки или столбцы матрицы Уолша для облегчения декодирования). Векторы назначаются отдельным пользователям и называются кодом или чиповым кодом. Для краткости далее коды имеют размерность два.

Каждому пользователю назначается разный код v. Передача бита 1 означает передачу положительного кода v, а бита 0 — отрицательного −v. Например, если v = (1, −1), а данные (1, 0, 1, 1), то передаваемые символы:

(v, −v, v, v) = (1, −1, −1, 1, 1, −1, 1, −1).

Далее назовём этот вектор «передаваемым вектором».

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

Из-за физических свойств, если два сигнала в одной точке совпадают по фазе, они суммируются; если противофазно — вычитаются. Цифровое поведение моделируется сложением пропущенных через код векторов по компонентам.

Если отправитель 0 использует код (1, −1) и данные (1, 0, 1, 1), а отправитель 1 — код (1, 1) и данные (0, 0, 1, 1), и оба отправляют одновременно, процесс представлен в таблице:

Шаг Кодирование отправителя 0 Кодирование отправителя 1
0 code0 = (1, −1), data0 = (1, 0, 1, 1) code1 = (1, 1), data1 = (0, 0, 1, 1)
1 encode0 = 2(1, 0, 1, 1) − (1, 1, 1, 1) = (1, −1, 1, 1) encode1 = 2(0, 0, 1, 1) − (1, 1, 1, 1) = (−1, −1, 1, 1)
2 signal0 = encode0 ⊗ code0
= (1, −1, 1, 1) ⊗ (1, −1)
= (1, −1, −1, 1, 1, −1, 1, −1)
signal1 = encode1 ⊗ code1
= (−1, −1, 1, 1) ⊗ (1, 1)
= (−1, −1, −1, −1, 1, 1, 1, 1)

Суммарный сигнал:

(1, −1, −1, 1, 1, −1, 1, −1) + (−1, −1, −1, −1, 1, 1, 1, 1) = (0, −2, −2, 0, 2, 0, 2, 0).

Это "интерференционная картина". Приёмник извлекает сигнал нужного отправителя, перемножая его код на полученный сигнал, что показано далее:

Шаг Декодирование отправителя 0 Декодирование отправителя 1
0 code0 = (1, −1), signal = (0, −2, −2, 0, 2, 0, 2, 0) code1 = (1, 1), signal = (0, −2, −2, 0, 2, 0, 2, 0)
1 decode0 = pattern.vector0 decode1 = pattern.vector1
2 decode0 = ((0, −2), (−2, 0), (2, 0), (2, 0)) · (1, −1) decode1 = ((0, −2), (−2, 0), (2, 0), (2, 0)) · (1, 1)
3 decode0 = ((0 + 2), (−2 + 0), (2 + 0), (2 + 0)) decode1 = ((0 − 2), (−2 + 0), (2 + 0), (2 + 0))
4 data0=(2, −2, 2, 2), что означает (1, 0, 1, 1) data1=(−2, −2, 2, 2), что означает (0, 0, 1, 1)

После декодирования положительные значения трактуются как 1, отрицательные — как 0. Например, data0 = (2, −2, 2, 2) расшифровывается как (1, 0, 1, 1). Если все значения равны нулю, это означает отсутствие передачи от пользователя, например:

Если передаётся только signal0 = (1, −1, −1, 1, 1, −1, 1, −1), таблица декодирования будет:

Шаг Декодирование отправителя 0 Декодирование отправителя 1
0 code0 = (1, −1), signal = (1, −1, −1, 1, 1, −1, 1, −1) code1 = (1, 1), signal = (1, −1, −1, 1, 1, −1, 1, −1)
1 decode0 = pattern.vector0 decode1 = pattern.vector1
2 decode0 = ((1, −1), (−1, 1), (1, −1), (1, −1)) · (1, −1) decode1 = ((1, −1), (−1, 1), (1, −1), (1, −1)) · (1, 1)
3 decode0 = ((1 + 1), (−1 − 1), (1 + 1), (1 + 1)) decode1 = ((1 − 1), (−1 + 1), (1 − 1), (1 − 1))
4 data0 = (2, −2, 2, 2), что означает (1, 0, 1, 1) data1 = (0, 0, 0, 0), что означает отсутствие передачи

При попытке декодирования с кодом отправителя 1 результат — все нули, что указывает на отсутствие передачи.

Асинхронная CDMA

В ситуациях, когда мобильные устройства невозможно точно синхронизировать с базовой станцией (особенно при перемещении), применяется другой подход. Поскольку математически невозможно сгенерировать последовательности одновременно ортогональные для произвольных стартовых смещений и полностью используемые в кодовом пространстве, в асинхронных CDMA-системах используются уникальные «псевдослучайные» или «псевдошумовые» последовательности (spreading sequences). Эти последовательности кажутся случайными, но детерминированно воспроизводимы приёмником. Используются они аналогично ортогональным кодам синхронной CDMA. Такие коды статистически некоррелированы, а сумма многих spreading-кодов порождает множественные помехи доступа (MAI), статистически сходные с гауссовым шумом (по центральной предельной теореме). Коды Голда — пример подходящих spreading-кодов с низкой взаимной корреляцией. Если мощность всех пользователей одинакова, дисперсия MAI (мощность шума) растёт пропорционально числу пользователей. То есть, в отличие от синхронной CDMA, остальные пользователи воспринимаются как шум, который мешает пропорционально их числу.

Все разновидности CDMA используют фактор расширения спектра для частичного выделения нужного сигнала. Сигналы с иным spreading-кодом (или тем же — но иным временным сдвигом) воспринимаются как широкополосный шум с ослаблением пропорционально фактору расширения.

Так как каждый пользователь порождает MAI, важнейшей задачей является точная регулировка мощности передатчика. В CDM (синхронная CDMA), TDMA или FDMA-приёмнике можно теоретически полностью отсеять сильнейшие избыточные сигналы благодаря ортогональности ресурса; это не так для асинхронной CDMA — здесь подавление помех лишь частичное, и слишком сильные помехи могут «забить» полезный сигнал. Поэтому в системах мобильной CDMA базовая станция осуществляет быструю петлю автоматической регулировки мощности каждого абонента.

В 2019 году были предложены методы оценки необходимой длины spreading-кодов в зависимости от доплеровского и задержочного профиля канала[15]. Вскоре были опубликованы методы машинного обучения, генерирующие spreading-последовательности нужной длины и свойств, сравнимые с классическими кодами Голда и Уэлча; такие последовательности не строятся с помощью линейных сдвиговых регистров, а хранятся в таблицах.

Эффективное использование фиксированного частотного диапазона

Теоретически CDMA, TDMA и FDMA обладают одинаковой спектральной эффективностью, но на практике у каждой технологии свои сложности: для CDMA это регуляция мощности, для TDMA — точная синхронизация по времени, для FDMA — генерация и фильтрация частоты.

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

В FDMA между каналами закладывается «защитная полоса» из-за непредсказуемого доплеровского сдвига, также понижающая эффективность.

Гибкое распределение ресурсов

Асинхронная CDMA позволяет гибко выделять spreading-коды активным пользователям. В CDM, TDMA и FDMA число одновременных пользователей ограничено количеством кодов, временных или частотных слотов, и эти ресурсы зачастую недоиспользованы из-за прерывистого характера речи и передачи данных. В асинхронной CDMA жёсткого лимита числа пользователей нет — только практический, определяемый допустимой вероятностью ошибки (SIR обратно пропорционален числу пользователей). Если из 2N пользователей каждый говорит только половину времени, то 2N пользователей могут работать при той же средней битовой ошибке, как N пользователей, говорящих всё время. Важное отличие — у N пользователей ошибка будет стабильной, а у 2N — случайной величиной с тем же средним значением.

Таким образом, асинхронная CDMA идеально подходит для мобильных сетей с большим числом передатчиков, работающих нерегулярно и малопоточно. CDM, TDMA и FDMA не могут эффективно перераспределить ресурсы при «рывковой» природе трафика, ведь количество кодов, временных и частотных каналов фиксировано. Например, если в TDMA N слотов и 2N абонентов, каждый из которых говорит половину времени, то половину времени число желающих больше доступных слотов. Перераспределение ресурсов требует больших издержек. В асинхронной CDMA каждый абонент просто передаёт нужные данные и отключается, сохраняя свой spreading-код.

Широкополосные свойства CDMA

В большинстве схем модуляции стараются минимизировать ширину полосы сигнала, но широкополосные технологии намеренно используют гораздо более широкий спектр — часто на несколько порядков больше минимального. Одной из причин их разработки были военные задачи, связанные с скрытностью и помехоустойчивостью систем управления и связи. Асинхронная CDMA обладает некоторым уровнем приватности, поскольку spreading-код делает такой сигнал похожим на шум. Приёмник, не знающий этого кода, не может демодулировать сообщение. CDMA также устойчива к помехам: помеха имеет ограниченную мощность и может распределить её либо по всей полосе, либо по её части[14][16].

CDMA позволяет эффективно подавлять узкополосные помехи: такие помехи искажают только малую часть спектра, легко устраняемую с помощью режекторных фильтров при малой потере информации; для восстановления потерь используются свёрточное кодирование и интерливинг. CDMA-сигналы также устойчивы к замираниям вследствие многолучёвости, поскольку вероятность потери всей информации мала. Задержанные копии spreading-кода плохо коррелируют с исходным, и воспринимаются как отдельные пользователи, которые игнорируются на приёмнике. Иначе говоря, если многолучевой канал добавляет задержку хотя бы в один чип, задержанные версии будут некоррелированы и не влияют на приём.

Часть CDMA-устройств использует рак-приёмник, который использует энергию разных компонентов задержки для увеличения мощности полученного сигнала по сравнению с обычным корреляторным приёмником[1][2].

Повторное использование частот (frequency reuse) означает возможность применять одну и ту же частоту на разных базовых станциях внутри сети. В TDMA и FDMA-базовых системах требуется тщательное планирование частот, чтобы избежать взаимных помех. В CDMA той же частотой можно пользоваться во всех сотах, поскольку разделение базируется на spreading-кодах. Необходим контроль только повторяющихся spreading-кодов, чтобы сигналы соседних сот не коррелировали[1].

Это, в частности, позволяет реализовать в CDMA систему «мягкой передачи» (soft handoff): абонент может одновременно переключаться между несколькими сотами, выбирая лучший сигнал до завершения переключения. В других системах осуществляется «жёсткая передача реальной соты», что вызывает рывки уровня сигнала. Мягкая передача менее заметна и обеспечивает лучшую надёжность связи[2].

Коллаборативная CDMA

Разработана схема совместной передачи и обнаружения информации — «коллаборативная CDMA» для uplink-канала, использующая разные характеристики затухания каналов разных пользователей для повышения ёмкости системы даже сверх длины spreading-кода (MAI-лимитированной системы). Авторы показали, что их подход позволяет добиться высокой пропускной способности и качества при невысокой вычислительной сложности в условиях плоских замираний, что является актуальной проблемой для перегруженных CDMA-сетей. Вместо одного spreading-кода на пользователя группа пользователей делит spreading-последовательность, выполняя совместное кодирование/декодирование. Коллаборативный приёмник состоит из двух стадий: групповой многоабонентский детектор (MUD) подавляет межгрупповые помехи, а на втором этапе за счёт минимизации по евклидовой метрике и учёта коэффициентов затухания декодируются данные внутри группы. Улучшенной версией является interleave-division multiple access (IDMA), использующая ортогональное интерливирование в качестве средства разделения пользователей вместо кодовых последовательностей.

Примечания

Литература