Декодер GSM
Основные характеристики декодера GSM
Декодер сигналов GSM предназначен для обнаружения сигналов GSM, декодирования физического уровня GSM и извлечения информации о базовых станциях и режимах их работы. В первую очередь определяется, является ли данный сигнал сигналом GSM, и при положительном решении делается попытка декодировать его; таким образом, возможны три результата обнаружения сигнала: 1 - не сигнал GSM, 2 - сигнал GSM, но невозможно декодировать данные (например, из-за плохого качества сигнала), 3 - сигнал GSM и данные декодированы.
Под декодируемыми данными понимаются системные информационные SI сообщения, передаваемые по широковещательным каналам BCCH. Таким образом, декодер выдает следующие параметры:
- Код страны MCC, код оператора MNC, код местоположения LAC, идентификатор соты CI и "цветовой" код базовой станции BSIC
- Количество таймслотов, занятых общими каналами синхронизации BS-CC-CHANS, количество блоков выделенных для канала предоставления доступа BS-AG-BLKS-RES, флаг совмещения общих и выделенных каналов BS-CCCH-SDCCH-COMB
- Список частотных каналов данной базовой станции
- Список частот BCCH каналов соседних базовых станций
Еще одной функцией декодера является анализ каналов трафика TCH, с целью обнаружения базовых станций с отключенным шифрованием. Данная функция может использоваться для обнаружения проблем безопасности GSM, обнаружения IMSI-catcher и др.
Кроме этого, декодер выдает набор дополнительных параметров, характеризующих качество сигнала: уровень сигнала, сдвиг несущей частоты, количество декодированных фреймов, отношение сигнал/шум, относительное количество ошибок, количество занятых каналов трафика и др.
Принцип работы декодера GSM
Декодер физического уровня GSM работает следующим образом. В первую очередь выполняется поиск пакетов коррекции частоты (FC burst) и оценка сдвига несущей частоты, после его обнаружения с задержкой равной одному TDMA кадру (приблизительно 4.6 мс) ищется пакет синхронизации (Syn burst). Декодирование пакета синхронизации позволяет достигнуть мультикадровой синхронизации и узнать цветовой код данной BS. После этого возможно декодирование каналов широковещательных сообщений и каналов трафика.
Декодер GSM состоит из следующих функциональных блоков:
- предварительной обработки сигналов и подстройки сдвига несущей частоты,
- поиска известных тренинговых последовательностей и подстройки фазы несущей и символьной синхронизации,
- оценивателя импульсной характеристики канала и Витерби эквалайзера с мягким выходом
- обратного перемежителя и Витерби декодера внешнего сверточного кода
- разбора пакетов данных
Предварительная обработка
Блок предварительной обработки сигнала GSM выполняет следующие функции:
- преобразования входных квадратурных отсчетов из произвольного входного формата во внутренний формат представления и передискретизации с входной частоты дискретизации в диапазоне 250 - 500 кГц на фиксированную частоту, равную удвоенной символьной скорости
- низкочастотной фильтрации сигнала с децимацией до символьной скорости, оценки уровня входного сигнала
- компенсации входного сдвига несущей частоты путем умножения на комплексную синусоиду соответствующей частоты
- выравнивание блока выдаваемых отсчетов на начало кадра
Поиск тренинговых последовательностей
Блок поиск тренинговых последовательностей выполняет следующие функции:
- предварительного поиска пакетов коррекции частоты (канал FCH) путем вычисления корреляции с известным референсным сигналом, для экономии ресурсов, предварительный поиск выполняется с большим шагом по времени
- уточнение положения пакета коррекции частоты и оценки сдвига несущей частоты
- кадровой временной синхронизации по пакетам синхронизации (канал SCH)
- фазовой подстройки несущей частоты пакетов SCH, BCCH, TCH
- оценки фазы символьной синхронизации пакетов SCH, BCCH, TCH и интерполяция с целью достижения максимального раскрыва глазка диаграммы
- обнаружение пустых (Dummy) пакетов передаваемых по TCH каналу.
Оцениватель канала и Витерби эквалайзер
Оценка импульсной характеристики канала производится путем вычисления корреляции сигнала с задержанными тренинговыми последовательностями. Из полученной оценки корреляционной функции вычитается собственная корреляция сигнала GMSK с BT=0.3, и результаты усредняются.
Полученная оценка импульсной характеристики канала подается на Витерби эквалайзер с мягким выходом (SOVA), реализующий MLSE декодер. Витерби эквалайзер (VE) использует решетку с 64 состояниями, состояние Витерби эквалайзера описывается следующими составляющими: 1 бит определяет текущее значение накопленной фазы для всех символов с завершенной ИХ, 2 бита описывают символы с незаконченной ИХ, 3 бита описывают историю символов. В отличии классической реализации, где используются 4 значения накопленной фазы, в описанной реализации используется только 2 значения фазы (1 бит), что требует предварительного поворота каждого отсчетов на Pi/2 по сравнению с предыдущим отсчетом.
Мягкий выход Витреби алгоритма формируется путем умножения жесткого решения на минимальную разность между метрикой выжившего пути и метрикой конкурентного пути отличающегося данным символом.
В данном модуле выполняется так же дифференциальное декодирование символов, оценка отношения сигнал шум и оценка коэффициента ошибок по известным тренинговым последовательностям.
Деперемежитель и Витерби декодер
Деперемежитель выполняет перестановку символов для каналов BCCH и ТCH, обратную перемежителю и формирование блоков. Витерби декодер выполняет декодирование сверточного кода по стандартному алгоритму.
Парсер пакетов данных
Парсер проверяет правильность приема пакетов данных путем вычисления контрольной суммы (в стандарте это названо Block code) и сравнения ее с переданной. После этого выполняется разбор пакетов.