Как и какой выбрать мобильный интернет? Декодируем GSM

590c45cb6e6741bdbc2765a7b5e68419.png
В настоящее время огромное количество людей, проживающих в городах и районных центрах, а особенно в удалении от них испытывает сложности с возможностью выбора проводника услуг для качественно использования таких благ цивилизации как цифровое телевиденье, интернет, радио и просто решить, для примера, какого оператора мобильной связи выбрать из возможных для качественной и надежной телефонной связи в данном месте (Мегафон, Билайн, МТС, TELE2 и др.). Как правило в лучшем случае это решается опросом соседей «какую связь используете Вы?» и, полагаясь на их ответ приобретаете необходимую сим карту оператора мобильной связи, а потом сталкиваетесь с тем что не слышно, нет связи, интернета, а как же тогда читать хабр, итд.
Можно конечно купить карты всех операторов, и установив их по очереди в телефон походить и проверить качество связи и уровень сигнала, можно пригасить друзей в гости, использующие разных операторов сотовой связи, посмотреть в интернет карты зон покрытия операторов сотовой связи, осуществить выбор по ним, но к сожалению все эти способы, по ряду технических причин, не всегда точны и в большинстве случаев не правильны, требуют достаточно длительно времени и затрат, а как правило необходимо определить здесь и сейчас. Особенно это актуально для специалистов, осуществляющих установку и настройку оборудования, выехавших по заказу осуществить какую-либо инсталляцию в совершенно новое, неизвестное место. В некоторых случаях необходимо использовать дополнительно внешнюю антенну для получения качественного сигнала, а бывает что связь была и пропала, причем, в большинстве случаев, это не новая инсталляция, а как правило антенны уже установлены и настроены мастерами в момент запуска в эксплуатацию необходимой системы, но в процессе эксплуатации, а также из-за перемещения и изменения передающих антенн, связанных с реконструкцией вышек операторами связи и телевизионного вещания, изменения их территориального расположения, а также изменения механической прочности приемной антенны и ее крепежа (например в результате схода большого количества снега с крыши, сильного ветра), происходит рассогласование передающие — приемного тракта и исключается возможность качественного приема сигнала вплоть до его полного отсутствия. Для телевидения, ввод в эксплуатацию вещания DVB_T2 предполагает так же новые точки установки передающих антенн, осуществляющих трансляцию, на которые необходимо направить приемную антенну для качественного приёма сигнала телевидения (причем ранее использовавшаяся антенна ДМВ полностью пригодна для приема данного формата). Стоимость таких работ, при вызове мастера, достаточно высока, хотя эти работы может выполнить любой человек самостоятельно, используя самый простой DVB-T донгл на базе чипа RTL2832U от Realtek или любой SDR приемник с возможностью захвата частоты 700–1000 Мгц и программу сканирования GSM. Использовать встроенные в устройства системы настройки не всегда получается качественно из-за большой инерционности таких систем, а также в случае слабого сигнала, требующего точного позиционирования антенны для отображения хотя бы начального уровня сигнала.

Для тех кому технические вопросы не интересны, а хочется сразу приступить к использованию, достаточно скачать сканер GSM и начать использовать, правда если у вас есть в наличии DVB-T донгл или SDR приёмник. Работа программы начинается автоматически после запуска, всё отображается на экране (рис. 1) и при прошествии 3–5 минут или более (в зависимости от качества сигнала) отображает цветные столбцы высота которых означает уровень, а соответственно и качество сигнала, а цвет, в который окрашен столбик, определяет оператора связи (подсказка — зеленый цвет- это мегафон). По результатам работы сканер позволяет сохранить список идентификаторов базовых станций MCC, MNC, LAC и CI для всех сканированных каналов. В данном месте, можно сделать вывод что Билайн — самый оптимальный по уровню сигнала (Рис2).

Рис. 1:
9316ed2de55d42c0b2275890af0d0f33.png

Рис. 2:
36d0468829d94225ae5e0397fc5b43a1.png

Для тех счастливчиков у кого оборудование уже имееться, и кто уже запустил сканирование, пока оно осуществляется — описание того что сейчас делает данная программа и чем так нагружен Ваш процессор.

В первую очередь производится сканирование частотного диапазона, определяется является ли данный сигнал сигналом 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) и сравнения ее с переданной. После этого выполняется разбор пакетов.

Смотрим построенный график и определяем оптимального оператора связи для данного месторасположения и бежим покупать нужную сим-карту.

Исходные коды GSM сканера доступны в открытом GIT репозитории на Bitbucket. Сканер собирается под MS Visual C++ 2010 Express и Qt 4.8.4.

© Habrahabr.ru