Как обнаружить близлежащие активные телефоны (активность в восходящем канале GSM) с помощью программно-определяемой радиосвязи

Я пытаюсь создать программу, которая может обнаруживать мобильные телефоны, которые передают звонки или отправляют SMS-сообщения вокруг меня, с помощью программно-определяемой радиосвязи (SDR). Я не заинтересован в понимании данных GSM, я просто хочу знать, активны ли в настоящее время устройства GSM на восходящей линии связи GSM (линия мобильной связи к базовой станции), и оценивать, наблюдая на уровнях мощности, как далеко они находятся от SDR. устройство.

Хотя я открыт для альтернатив, в настоящее время я использую:

  • Для аппаратного обеспечения - устройство RTL-SDR, которое может принимать от 24 МГц до 1766 МГц с полосой пропускания ~3 МГц.
  • Для программного обеспечения, gnuradio и модуля gnuradio gr-gsm ( https://github.com/ptrkrysik/gr-gsm)
  • Что касается полосы GSM, меня в первую очередь интересует полоса E-GSM-900, полоса восходящей линии связи которой варьируется от 880 МГц до 915 МГц (именно она используется в моей области).

Я уже написал простой "датчик спектра" с помощью gnuradio, который вычисляет среднее значение уровней мощности на заданных частотах за определенный период времени. При просмотре частот восходящей линии связи GSM он может обнаруживать какую-то активность, но он не очень хорошо работает, поскольку не учитывает, что в соответствии с нормой GSM передача GSM осуществляется пакетами и является скачкообразной частоты.

Для хорошего понимания передачи GSM см. Техническую спецификацию GSM 05.02 ( https://www.etsi.org/deliver/etsi_gts/05/0502/05.00.00_60/gsmts_0502v050000p.pdf).

Я хотел бы получить советы о том, как правильно определять активность в восходящей линии связи GSM и оценивать близость устройства GSM к приемнику SDR с учетом особенностей передачи GSM (пакеты, кадры TDMA, скачкообразная перестройка частоты).

Пока у меня есть две идеи, чтобы решить эту проблему.

Моей первой идеей было бы:

  • Обнаружение частот базовых приемопередающих станций в зоне нисходящей линии связи. Это можно сделать с помощью такого инструмента, как grgsm_scanner из gr-gsm.
  • Слушайте частоту базовой станции, которая передает наиболее четко, по нисходящей линии связи. Определите пакет коррекции частоты (в канале коррекции частоты, FCCH) и прочитайте его, затем определите пакет синхронизации (в канале синхронизации, SCH) и прочитайте его. Если я хорошо понимаю, это должно дать мне правильное смещение частоты и временные индикаторы, чтобы иметь возможность правильно перехватывать кадры TDMA в восходящей линии связи GSM. Это требует декодирования некоторых данных GSM по нисходящей линии связи, что можно сделать с помощью gr-gsm.
  • Прослушайте частоты восходящей линии связи GSM, используя правильное смещение частоты и временные индикаторы, найденные на предыдущем шаге. Обнаружение посылок GSM. Из присутствия и уровней мощности вспышек выведите наличие поблизости мобильных телефонов.

Моя вторая идея состояла бы в том, чтобы пропустить первые два шага и слушать только по восходящей линии связи GSM. Тогда мне понадобится способ правильно определять наличие и уровни мощности пакетов в восходящей линии связи, не имея информации от FCCH и SCH. Это было бы намного проще, но я не уверен, как это сделать.

Я что-то здесь упускаю? Есть ли более простые способы сделать то, что я хочу сделать? Если нет, что вы думаете об идеях, которые я раскрыл?

Спасибо!

0 ответов

Другие вопросы по тегам