В узкополосных (т.е. не использующих сложные сигналы) системах многолучевые компоненты, имеющие различную временную задержку, не могут быть разделены (по крайней мере, без серьезных энергетических потерь) с помощью алгоритмов типа RAKE. В результате наложения запаздывающей копии сигнала, модулированного цифровым потоком данных, на опережающую текущая посылка последней искажается предыдущей посылкой запаздывающей копии. Возникающая таким образом специфическая помеха называется межсимвольной интерференцией (МСИ).
Обратимся вновь к модели манипулированного сигнала (4.1)
При максимальном времени рассеяния Tmax возможно наложение друг на друга вплоть до
посылок. к примеру,
для стандарта GSM-900 Ть ≈ 3,7 мкс, а максимальное время рассеяния обычно принимается равным Tmax = 16 мкс. При этом в приемнике возможно наложение до М = 6 переданных посылок. Очевидно, что МСИ существенно затрудняет декодирование принимаемых сигналов и приводит к увеличению частоты битовых ошибок. К настоящему времени разработан ряд методов борьбы с МСИ. Коротко рассмотрим основные из них.
Алгоритм Витерби
В цифровых системах мобильной связи передача информации производится поэлементно с некоторым фиксированным интервалом между последовательными посылками.
В простейшем случае текущая наблюдаемая приемником посылка зависит только от текущей переданной. При этом оптимальным (в смысле минимизации средней вероятности ошибочного декодирования сообщения) является посимвольный прием, в процессе которого решение о значении каждой переданной посылки принимается отдельно, независимо от предыдущих и последующих посылок.
При наличии МСИ, однако, ситуация не столь проста, поскольку каждое наблюдение определяется наряду с текущей также и предыдущими посылками. Тем самым в наблюдаемом сигнале проявляется зависимость от прошлого, т.е. память, подобная, к примеру, той, что вводится в сигнал искусственно при использовании любых разновидностей частотной манипуляции с непрерывной фазой (см. гл. 4), а также сверточного кодирования, рассматриваемого в следующей главе.
Посимвольный прием при этом не является оптимальным и уступает так называемому "приему в целом", при котором решение о принятом сообщении выносится по результатам совместной обработки многих последовательных посылок. Поскольку сложность соответствующего приемника экспоненциально растет с памятью, его практическая реализация может оказаться проблемной. Алгоритм Витерби, первоначальным назначением которого было декодирование сверточных кодов, во многих случаях заметно упрощает процедуру "приема в целом" и потому часто применяется для борьбы с межсимвольной интерференцией.
Пусть наблюдаемый в /-й момент времени отсчет (6.16)
где sj - отсчет полезного сигнала, искаженного МСИ; nj- шумовой отсчет, являющийся гауссовской случайной величиной с нулевым средним.
Как отмечалось выше, МСИ возникает в многолучевом канале за счет наложения копий сигнала, сдвинутых друг относительно друга во времени из-за различия протяженности трасс распространения сигналов по отдельным лучам.
Пусть МСИ создается М дополнительными лучами. Тогда /-й сигнальный отсчет окажется линейной комбинацией /-го (аi) и М предыдущих информационных символов: (6.17)
где ak - коэффициент, отражающий вклад k-го луча.
Другими словами, информационный сигнал на /-м шаге является результатом линейного кодирования вектора состояния, однозначно определяемого последовательностью переданных информационных символов
Следовательно, при конечном числе интерферирующих лучей (что имеет место в любой практической системе) МСИ можно рассматривать как выход устройства с конечным числом состояний [38]. Это позволяет выход канала с МСИ представить в виде кодовой решетки.
Такая кодовая решетка в бинарном случае содержит 2м узлов (состояний). Из каждого узла выходят 2 ребра в соседние состояния, соответствующие различным значениям информационного символа аj. При этом каждое ребро может быть маркированосвоим значением отсчета s,, показывающим (в соответствий с (6.17)), как состояние вместе с текущим переданным символом аj отражается в закодированном (через МСИ) сигнале. Получаемая кодовая решетка аналогична решетке сверточного кода, рассматриваемого в следующей главе. Отличие состоит в том, что значения отсчетов sj, маркирующие ребра, являются действа тельными числами (а не двоичными словами). Демодулятор должен оценить переданные символы аj, т.е. состояния.). Как известно, если помехой является АБГШ, то максимально правдоподобной оценкой
детектируемой последовательности
будет та, которая минимизирует евклидово расстояние (6,18)
где К - объем наблюдаемой последовательности (количество декодируемых информационных символов).
В общем случае необходимо было бы вычислять расстояния для всех возможных последовательностей (2К в бинарном случае). Однако наличие памяти в сигнале (зависимость отсчета sj, от состояния демодулятора А„ вводимая за счет МСИ) позволяет, используя алгоритм Витерби, уменьшить число анализируемых последовательностей.
Алгоритм Витерби является рекуррентным алгоритмом последовательного поиска пути на решетке, обеспечивающим максимально правдоподобное декодирование сигнала.
Демодулятор Витерби на каждом шаге (при приеме очередного сигнального интервала) сравнивает наблюдаемые отсчеты yj, с маркировкой входящих ребер sj, для каждого узла, оставляя из двух путей один ("выживший"), имеющий наименьшую метрику (евклидово расстояние). После этой процедуры на новом шаге кодовая решетка содержит также 2м узлов.
По прошествии времени в несколько длительностей памяти с вероятностью, очень близкой к единице, оказывается, что все выжившие пути исходят из одного узла [38]. Тогда состояние демодулятора, соответствующее этому узлу, может быть выдано как решение (оценка информационных символов). Таким образом, с некоторой задержкой выдается оценка "старых символов^.
Далее процесс продолжается по той же схеме. С приемом нового отсчета картинка сдвигается на один шаг (декодированный символ исключается из анализа и добавляется вновь принятый). При этом в дальнейшем анализе используются только выжившие пути, запомненные ранее.
Вычислительная сложность алгоритма Витерби экспоненциально возрастает с величиной временного рассеяния в канале. Для каждого нового принимаемого символа в бинарном случае необходимо вычислять 2М+1 метрик. Для каналов с большим временем рассеяния это может стать серьезным препятствием при практической реализации алгоритма.
Более подробно алгоритм Витерби рассмотрен, например, в [38], а также в следующей главе применительно к декодированию сверточных кодов.