ANSI и ETSI никаких алгоритмов не разрабатывают и продажей не занимаются.
Алгоритм формирования сигнала (на базе UMTS W-CDMA): Скачиваете с сайта ETSI (www.3gpp.org) документ TS 25.213, там описано формирование сигнала в режиме FDD (прямой и обратный каналы разнесены по частоте), читаете, все тривиально, подробно расписывать не буду. Подскажу, что упоминаемые в стандарте OVSF являются всего-навсего строками матрицы Уолша (Адамара) соответствующей размерности.
Алгоритм приема: В основе приема лежит понятие свертки, она же корреляция. При расчете корреляции в качестве ядра свертки используем комплексно-сопряженную последовательность относительно формируемой на стороне передачи!!!!!! 1. Оцифровываете сигнал со скоростью, кратной чиповой скорости (3,84 Мчипов в секунду), 2, а лучше 4, отсчета на чип подойдет. 2. Выполняете согласованную фильтрацию, фильтр Root Raised Cosine, alfa=0.22, в TS 25.213 об этом написано. 2. Синхронизация: 1) Ищете пики корреляции Primary Synchro Channel (PSC), следующие с периодом 2560 чипов 2) В точках максимумов корреляций PSC рассчитываете корреляции для всех 16 вариантов Secondary Synchro Channel (SSC), определяете индекс последовательности, давшей максимальную амплитуду корреляции. 3) В соответствии с приведенной в стандарте таблицей и списком из 15 последовательных индексов последовательностей SSC, давших максимальную амплитуду, определяете номер скремблирующей группы и таймслот. 4) Позиционируетесь на 1-вый таймслот и перебором из 8 скремблирующих кодов, входящих в определенную ранее скремблирующую группу, определяете скремблирующий код как последовательность, давшую максимальный пик корреляции. Таким образом вы осуществили 1) определение номера скремблирующего кода и 2) кадровую синхронизацию. 3. Предобработка сигнала: 1) Начиная с отсчета предположительного начала кадра и работая блоками по 256 чипов (512 либо 1024 отсчетов при 2 и 4 отсчетах на посылку соответственно) рассчитываете корреляцию скремблирующего кода и сигнала в окрестности точки предположительного начала кадра. Позиция максимума пика корреляции будет позицией максимально эффективной точки, эти отсчеты на всем периоде блока выбираем и получаем 256 отсчетов сигнала, взятых в точке, максимально близкой к точке идеальной оцифровки. 2) Осуществляем снятие скремблирующего кода путем поотсчетного умножения сигнала на комплексно-сопряженные отсчеты скремблирующего кода. 3) Осуществляем компенсацию фазовой расстройки путем умножения отсчетов сигнала со снятым скремблирующим кодом на комплексно-сопряженный вектор корреляции со скремблирующим кодом, который был получен в 3.1. 4. Выделение кодовых каналов: 1) Для полученного блока отсчетов со снятым скремблирующим кодом и компенсированной фазовой расстройкой выполняем преобразование Уолша (Адамара) (если хотим получить данные для всех кодовых каналов) либо осуществляем свертку полученного сигнала с нужными Orthogonal Variable Spreading Factor (OVSF), которые являются, как я писал ранее, строками матрицы Уолша. 2) Если используется преобразование Уолша, то 1) его можно выполнить по технологии быстрого преобразования (так же, как БПФ, только отсутствуют поворачивающие множители) и 2) на каждом этапе преобразования получаем отсчеты для всех кодовых каналов (после 1-го этапа - Spreading Factor 2, после 2-го - Spreading Factor 4 и т. д. до Spreading Factor 256), их которых выбираются отсчеты для реально существующих каналов - это будут созвездия QPSK, по которым либо принимаются жесткие решения, либо используются как мягкие решения, подаваемые на помехоустойчивый декодер. 5. Повторяем 3 и 4, сдвигаясь по отсчетам сигнала и скремблирующего кода (его период 38400 чипов, 10 мс, 1 фрейм, 15 таймслотов).
Улучшения приведенного алгоритма: 1. Расчет частотной расстройки может быть выполнен путем усреднения разницы между фазами корреляций сигнала и скремблирующего кода на блоках 256 чипов с последующим пересчетом в частоту. 2. Если выполняется оценка и компенсация частотной расстройки, то для повышения помехоустойчивости можно выполнить ФАПЧ по фазам корреляций сигнала и скремблирующего кода. 3. Если после некоторого этапа преобразования Уолша рассчитать спектр мощности как Pi = Ii^2 + Qi^2, то на гистограмме можно увидеть активные кодовые каналы
По похожему алгоритму можно построить демодулятор для IS-95 и CDMA-2000. Для дальнейшего повышения помехоустойчивости используют RAKE приемники (увеличивают глубину расчета корреляций, определяют наличие отраженных лучей и выполняют синфазное сложение всех лучей), разнесенный прием (в сущности, то же, что и RAKE, только используются несколько антенн, сигналы с которых синфазно складываются), smart-прием (разновидность разнесенного приема).
Практическая реализация: описанный алгоритм демодуляции хорошо ложится в процессор AD TigerSHARC-101, при использовании ассемблера и специализированных инструкций свертки демодуляция всех кодовых каналов занимает 50% вычислительного ресурса.
Литература: 1. ETSI TS 25.213 2. MatLab 2008 - Help, кроме того в примерах есть реализация модели модулятора-демодулятора W-CDMA.
|