In this series of articles with the codename “Journey to GSM”, we would like to familiarize any IT enthusiast with the technology we use everyday – Global System for Mobile communications (GSM). The main purpose of these articles is to introduce and demystify GSM and Software Defined Radio (SDR) technologies to a wide audience of IT professionals.
Software Defined Radio is a radio system which performs the required signal processing in software instead of using dedicated integrated circuits in hardware. The advantage of that approach is that since software can be easily replaced in the radio system, the same hardware can be used to create many kinds of equipment for many different radio standards. Therefore, one SDR can be used for a variety of applications. SDR is a technology that makes IT and Telecommunications closer to each other.
Basically, our system should consist of two parts: computer with software and SDR transceiver. There are plenty of SDR transceivers: UmTRX, USRP, HackRF, BladeRF, etc. Which one to choose?
As we are going to work with GSM, it would be wise to choose SDR that was created with consideration of GSM specifications. There is such SDR solution on the market. It is named UmTRX and was developed in Fairwaves.
UmTRX is based on the open source hardware (Altium Designer schematic and board layout files are made available under the Creative Commons Attribution-ShareAlike 3.0 Unported license) and can be deployed using open source software (for example, GNU Radio, Osmocom family of open source projects), therefore it benefits from being part of an ever-growing ecosystem of complementary hardware and software for mobile communications. UmTRX was developed to be used as a transceiver for OpenBTS and OsmoBTS GSM base stations considering GSM specifications, but due to its SDR nature it could be used for many other applications as well. It operation based on the Ettus UHD driver. UmTRX has its own GPS clock (26 MHz Voltage Controlled Temperature Compensated Crystal Oscillator) and industrial grade components (such as Lime Microsystems Multi-band Multi-standard Transceiver with Integrated Dual DACs and ADCs LMS6002D). UmTRX has two independent channels, so one can operate on two different frequencies. As it works in different environment conditions all over the world, like hot climate of Africa and high humidity of tropical islands, we can be sure it will work on our table.
As we decided our hardware option, we need to choose our first application. Let’s try to investigate GSM signals using our UmTRX.
We are going to use GNU Radio software to build that project. GNU Radio (https://gnuradio.org) is a free and open-source software development toolkit that provides signal processing blocks to implement software radios. You can use it to write applications to receive data out of dial streams or to push data into digital streams, which is then transmitted using hardware. GNU Radio has filters, channel codes, synchronisation elements, equalizers, demodulators, vocoders, decoders, and many other elements which are typically found in radio systems. More importantly, it includes a method of connecting these blocks and then manages how data is passed from one block to another.
Our hardware part needs to receive radio frequency (RF) analog signals and transform them into the digital form using Analog-to-Digital Converter (ADC). UmTRX system should do that job easily. As for software part, digital signal processing (DSP) is where GNU Radio has a plenty of tricks.