В CDMA каждый интервал передачи бита разбивается на m коротких интервалов, элементарных сигналов (chips), комбинируемых с исходной последовательностью данных. Эти интервалы являются битовой последовательностью, но называются элементарными сигналами, чтобы не возникало путаницы с битами самого сообщения. Обычно на один бит приходится 64 или 128 элементарных сигналов, но в приведенном ниже примере используется 8 элементарных сигналов/бит, для простоты. Всем станциям назначаются уникальные m-битные коды — последовательности элементарных сигналов (chip sequences). Чисто для удобства запишем эти коды в виде последовательностей –1 и +1. Мы будем указывать последовательности элементарных сигналов в круглых скобках.
Чтобы передать бит 1, станция передает свою последовательность элементарных сигналов. Для передачи бита 0 отправляется инвертированная последовательность элементарных сигналов. Другие паттерны не допускаются. При m = 8, если станции была назначена последовательность элементарных сигналов (–1 –1 –1 +1 +1 –1 +1 +1), она может отправить бит 1, передав свою последовательность элементарных сигналов или бит 0 путем передачи ее дополнения: (+1 +1 +1 –1 –1 +1 –1 –1). На самом деле отправляются уровни напряжения, но можно рассматривать их просто как последовательности.
Увеличение объема отправляемой каждой станцией информации с b бит/с до mb элементарных сигналов в секунду означает, что необходимая для CDMA полоса пропускания в m раз больше, чем полоса, нужная для станции, не использующей CDMA (если считать, что схемы модуляции и кодирования одинаковы). Если 100 станциям доступна полоса частот в 1 МГц, при использовании FDM каждая из них получит 10 кГц и сможет отправлять данные на скорости в 10 Кбит/с (из расчета 1 бит на 1 Гц). В CDMA каждая станция использует весь диапазон в 1 МГц, так что скорость передачи элементарных сигналов составит 100 сигналов на бит и доступная скорость передачи в 10 Кбит/с распределяется на весь канал.
На илл. 2.22 (а) и (б) показаны последовательности элементарных сигналов для четырех станций и соответствующих им сигналов. У каждой станции — своя уникальная последовательность. Будем использовать обозначение для вектора m элементарных сигналов станции S и
для обратного к нему. Все последовательности попарно ортогональны, то есть нормализованное внутреннее произведение любых двух последовательностей S и T (записываемое в виде S · T) равно нулю. Для генерации ортогональных последовательностей элементарных сигналов существует код Уолша (Walsh code)21. На более строгом математическом языке их ортогональность выражается следующим образом:
(2.5)
То есть все пары различны. Свойство ортогональности сыграет важную роль в дальнейшем. Обратите внимание, что если S · T = 0, то и S ·
= 0. Нормализованное внутреннее произведение любой последовательности элементарных сигналов с самой собой равно 1:
Это свойство следует из того, что поскольку каждый из m членов внутреннего произведения равен 1, то их сумма равна m. Отметим, что S ·
= –1.
Илл. 2.22. (а) Последовательности элементарных сигналов для четырех станций. (б) Соответствующие этим последовательностям сигналы. (в) Шесть примеров передачи данных. (г) Восстановление сигнала станции C
На каждом интервале передачи бита станция может отправлять «1» (то есть свою последовательность элементарных сигналов) или «0» (обратную ей последовательность) либо может «промолчать» и не посылать ничего. Предположим, что все станции синхронизированы по времени, поэтому все последовательности элементарных сигналов отправляются в один момент. В случае одновременной передачи данных двумя или более станциями происходит линейное сложение их биполярных последовательностей. Например, если в одном интервале передачи бита три станции выдают на выходе +1, а одна выдает –1, будет получено +2. Можно рассматривать это как суперпозицию напряжений тока в канале для сигналов: три станции выдают на выходе +1 В, а одна выдает –1, так что приемник получит +2 В. Например, на илл. 2.22 (в) приведено шесть примеров одновременной передачи бита 1 одной или несколькими станциями. На первом примере станция C передает бит 1, так что мы получим только последовательность элементарных сигналов станции C. Во втором примере станции B и C передают бит 1, так что получается сумма их биполярных последовательностей элементарных сигналов, а именно:
(–1 –1 + 1 –1 + 1 + 1 + 1 –1) + (–1 + 1 –1 + 1 + 1 + 1 –1 –1) = = (–2 0 0 0 + 2 + 2 0 –2).
Чтобы восстановить битовый поток отдельной станции, приемник должен заранее знать последовательность ее элементарных сигналов. Приемник вычисляет нормализованное внутреннее произведение полученной последовательности элементарных сигналов и последовательности элементарных сигналов станции, чей битовый поток он пытается восстановить. Если получена последовательность элементарных сигналов S, а приемник настроен на прием станции с последовательностью элементарных сигналов C, ему достаточно будет вычислить нормализованное внутреннее произведение S · C.
Чтобы понять работу этого метода, рассмотрим две станции, A и C. Они передают бит 1 в то же время, когда станция B передает бит 0, как в третьем примере. Приемник видит сумму S = A +
+ C и вычисляет:
Первые два члена уравнения равны нулю, поскольку заранее были тщательно отобраны ортогональные пары последовательностей элементарных сигналов, как показано в уравнении (2.5). Теперь вам должно быть ясно, зачем на последовательности элементарных сигналов было наложено такое ограничение.
На илл. 2.22 (г) представлены шесть примеров для наглядной демонстрации процесса декодирования. Допустим, приемник хочет извлечь из каждого сигнала с S1 по S6 бит, отправленный станцией C. Для этого он попарно суммирует произведения полученной последовательности S и вектора C из илл. 2.22 (а), а затем вычисляет 1/8 результата (поскольку в данном случае m = 8). Шесть примеров на илл. 2.22 (г) включают следующие случаи: станция C «молчит», отправляет бит 1 или бит 0, отдельно или в сочетании с отправкой других сигналов. Как видите, каждый раз декодируется правильный бит. Все равно что разговаривать по-французски.
Теоретически при достаточных вычислительных ресурсах приемник может «слушать» всех отправителей и выполнять алгоритм декодирования сигналов всех станций одновременно. В реальности это не так просто, к тому же важно знать, какая именно станция в данный момент передает информацию.
В вышеописанной идеальной (без помех) CDMA-системе число станций, параллельно отправляющих сигналы, может быть произвольно большим — просто за счет более длинных последовательностей элементарных сигналов. Для 2n станций код Уолша позволяет сгенерировать 2n ортогональных последовательностей элементарных сигналов длиной 2n. Но существует одно немаловажное ограничение: предполагается, что все элементарные сигналы синхронизируются по времени на приемнике. В некоторых приложениях, например сотовых сетях (в которых CDMA широко применялся с 1990-х), такой синхронизации быть не может. Поэтому разрабатываются различные архитектуры.
CDMA используется не только в сотовых, но также в спутниковых и кабельных сетях. В этом кратком обзоре мы обошли стороной множество его проблемных мест. Тем, кто хотел бы разобраться в технологии CDMA глубже, рекомендуем работы Витерби (Viterbi, 1995) и Харте и др. (Harte et al., 2012), правда, для чтения этих книг необходим изрядный опыт в сфере инженерии связи.