MODULATION IDENTIFICATION AND HAMMING ENCODING TECHNIQUE IMPLEMENTED IN SOFTWARE-DEFINED RADIO

In SDR


INTRODUCTION
Software-Defined Radio (SDR) defines a technology which provides software control for a variety of modulation techniques, communications security functions and waveform requirements of current and evolving standards over a broad frequency range. Software-Defined Radio (SDR) also refers to the technology where software modules running on a generic hardware platform implement radio functions such as generation of transmitted signal (modulation) at the transmitter and tuning or detection of received radio signal (demodulation) at the receiver. SDR technology can be used to implement military, commercial and civilian radio applications as stated by Nicoli et al. (2002). The rapid growth of SDR technology helps in implementing a wide range of radio applications like Bluetooth, WLAN, GPS, Radar, WCDMA, GPRS. As the receiver in SDR is adaptive, it should communicate with different communication standards and hence the identification of digital modulation type of a signal is to be optimized. The signal's modulation identification process is an intermediate step between the signal reception and demodulation at the receiver. To track the modulation technique, several researchers have developed various modulation identification methods. Bijan (2000) has shown that one of the methods that the SDR uses is source identification for analyzing and Fontes et al. (2012) have reported that the automatic evaluating of the type of modulation that the received signal has been employed. Ataollah and Seyedin (2006) have stated that the modulation identification is done by any of the following two approaches, namely, Decision Theoretic (DT) approach or Statistical Pattern (SP) approach. Also, Azzouz and Nandi (1996) have stated that the SDR employs five different Modulation Identification methods. They are (1) spectral Processing (2) instantaneous amplitude, phase and frequency parameters (3) instantaneous amplitude, phase and frequency histogram (4) combination of all the above three types and (5) universal demodulators. Prakasam and Madheswaran (2008a;2008b) have reported that in the Decision theoretic approach, the likelihood functions of probabilistic and hypothesis Science Publications AJAS testing arguments which help to formulate the recognition problem and classifications are performed. The drawback experienced in this approach is its high computational complexity, difficulty in its implementation and lack of robustness to carry out model mismatch. Haq et al. (2009) have stated that in Pattern recognition approach, there are namely two subsystems, feature extraction and recognition. The feature extraction extracts the prominent characteristics present in the signal and recognition indicates the modulation type. Manton (2001) have stated that the Modulation Identification technique also implies a Pre-processing module which performs the rejection of noise, normalization, carrier frequency estimation, recovery of complex envelop. The equalization module mitigates the channel. The Feature extraction module discussed in this study extracts the training sequence (which helps to identify the type of modulation used) from the transmitted sequence.

IMPLEMENTATION OF AUTOMATIC MODULATION IDENTIFICATION
According to Iglesias et al. (2011), some of the applications of SDR are in Military and in Relief operation sites which are usually non-cooperative environments. In those places, wireless data is sent using any of the modulation technique which operates on the provided Quality of Services (QoS) such as bounded packet delay and low packet lose rate. In addition to that, as stated by Kratyuk et al. (2007), limited available frequency bandwidth, time-varying multipath fading, shadowing, thermal noise and mobility also make it a difficult for the data to be transmitted. One of the efficient techniques to overcome these limitations is to adaptively change the modulation mode based on the channel quality information sensed by the receiver and fed back to the transmitter.
In these cases, the receiver does not have prior knowledge of the type of modulation with which the incoming data is received. Automatic modulation identification plays an important role in detecting the correct modulation technique before the data could be demodulated.

SDR Transmitter
At the Transmitter side as shown in Fig. 1, the Data to be transmitted is appended with a Header. The Data + Header [D+H] is modulated using a selected type of Modulation technique. The Modulated signal [D M +H M ] is then given to the hamming encoder to get the encoded signal [D ME +H ME ]. From this data signal, Checksum bits [C SE ] are calculated and it is also sent along with the data for the purpose of correcting and detecting errors. In this study, for each Nibble (4 bit) Data, 3 bit checksum bits are calculated using (7,4) hamming encoding and appended with it to make a 7 bit encoded data.
A padding bit is also included to make it a 8 bit Byte. The subsequent bytes of Data+Header in the modulated and encoded form along with the Checksum bits (D ME +H ME ; C SE ) are then transmitted to the Receiver.

SDR Receiver
At the receiver side, the encoded modulated signal and checksum [D ME +H ME ; C SE ] along with noise is sent to the Noise Filter. As stated by Bhawna and Lall (2012), the output from the Noise filter is then given to hamming decoder to get the decoded modulated signal [D M +H M ] as shown in Fig. 2.
The Modulated Header [H M ] is separated from the composite signal and demodulated using a Demodulation scheme. If the original header is obtained, then that demodulation scheme is selected to demodulate the Modulated Data [D H ]. Else, if the original header is not obtained by that demodulation scheme, then the remaining Demodulation techniques are selected one by one, until the header is exactly demodulated. That demodulation scheme that demodulates the header is chosen to demodulate the data.

Flow Chart Depicting the Working of Automatic Modulation and Demodulation Technique
The following flow chart in Fig. 3 shows the working of the entire operation of modulation and demodulation carried out in this study. Any one type out of the ten modulation techniques, namely, BASK Modulation, D8PSK Modulation, CPFSK Modulation, QAM8 Modulation, QASK Modulation, DQPSK Modulation, Sunde Modulation, QAM16 Modulation, QAM64 Modulation and QAM256 Modulation are selected based on its QoS availability is used for the modulation purpose at the SDR transmitter. At the receiver, the demodulation scheme which should be employed to get back the original data, is identified by seperating the header from the received data stream and performing the various demodulation technique to it, until the original header is obtained. Once, the header is correctly demodulated, the remaining stream of bits are also demodulated using that modulation scheme.

Introducing Check bits in Hamming Encoding
The Data stream to be transmitted is split in to small 4 bit (Nibble) data and sent to the hamming encoder the encoder appends a 3 bit checksum bits to the 4 bit data and form a 7 bit encoded data. To the 7 bit data, a bit (padding) is included to make it a whole Byte (8 bits). In this study a total of 2387 Bytes data are hamming encoded and padding added to make it 4774 Bytes data.
To study about the error detection and correction done by hamming encoder, single bit random errors are introduced to each Byte at the transmitter side. This operation is shown in Fig. 4. The output is calculated and plotted in a graph which shows the number of times error occurs in each bit position of a byte. This is shown in Fig. 5.
At the Receiver, the data after decoding is obtained, to find the number of times error occurs at various bit position of a byte. Using the results an output graph is plotted and it is found to be same as the graph at the transmitter side. This shows that the hamming encoder is able to detect the error introduced at every byte exactly even at the receiver.

Implementation of Hamming Codes in HDL
The Hardware Description Language (HDL) enables a formal description of the hamming encoder circuit which allows the automated analysis, simulation and simulated testing of the circuit.

Inclusion of Checksum Bits
The Checksum bits are calculated from the actual 4 bit data and a new 7 bit hamming encoded data is obtained. The simulated output of this operation is obtained and the result is viewed in the captured screen shot as shown in the Fig. 6.

Inclusion of a Single Bit Error
To understand the operation of error detection and correction, a single bit error is introduced at random bit positions in each 7 bit encoded transmitted data.
the hamming decoder traces the presence of error at the receiver. The output of this operation is obtained and the result is viewed in the captured screen shot as shown in the Fig. 7. In this study, the presence of error in each 7 bit data stream is indicated with the high clock pulse and the absence of error is intimated with low clock pulse.

SDR Framework for Energy Optimization
The idea for energy optimization in SDR is brought into consideration by using Reconfigurable radio technique which reduces power or energy consumption based on various criteria such as: Quality of Service (QoS), radio environment and radio capability.
The major sources of energy consumption is derived from the RF Power consumption at the Transmitter which is because of the Power Amplifier (PA) and at the Receiver which is due to the Low Noise Amplifier (LNA).
The Processing power consumption at the transmitter takes place because of the Digital to Analog Converter (DAC) and base band signal processing. At the receiver, the processing power consumption is due to the Analog to Digital Converter (ADC) and baseband signal processing. Also, the presence of multiple sources, also play a vital role in radio power or energy model and optimization.

Delay Insensitive Application
The QoS requirement involved in this study, to study the delay insensitive applications is Bit Error Rate (BER). The Performance metric involved in this study is Energy saving and the Selection criteria used is the Adaptive Modulation (AM) which selects transmission scheme minimizing radiated energy and calculating the radio energy consumption.

Energy Saving
Energy saving is a metric which enables and shows the improvement of Adaptive Modulation over conventional modulation used in SDR. Energy Saving (E S ) is calculated by: Where: E ad = The energy consumption determined by adaptive modulation E sdr = The energy consumption determined by SDR transmission The energy saving obtained using adaptive modulation shows a significant improvement achieving up to 75%.
The energy saving as shown in Fig. 8 is reduced at further distances because as radiated power increases, the power amplifier efficiency also increases, thus reducing the energy saving. Also, it is studied from the power amplifier output, the power level limits the choice of modulation schemes.

Effective Bandwidth Efficiency
To obtain improvement in Effective bandwidth efficiency in SDR transmission, simultaneous energy saving and throughput improvement is to be carried out. This can be studied from the fact that minimizing energy consumption using adaptive modulation fails to consider Power amplifier efficiency characteristics and hence does not actually minimize system energy consumption a shown in Fig. 9. The significant extra energy saving is achieved by the maximum output which is usually lower for the lower biasing scheme than for the higher biasing scheme. Also the radiated power at further distances becomes larger and both the schemes actually use the same Power amplifier.

EMBEDDED SYSTEM IMPLEMENTATION OF HAMMING CODE
The four elements of Embedded Linux are Tool chain; boot loader; kernel; user space.
A tool chain is a set of well defined software development tools that are linked together by specific stages such as GCC, binutils and glibc (a portion of the GNU Tool chain). Also, a tool chain may contain other tools such as a Debugger or a Compiler for a specific programming language, such as, C++. Often, the tool chain used for embedded development is a cross tool chain, or more commonly known as a cross compiler. All the programs (like GCC) run on a host system of a specific architecture (such as ×86) but produce binary code (executables) to run on a different architecture (e.g., ARM). This is called cross compilation and is the typical Science Publications AJAS way of building embedded software. It is possible to compile natively, running gcc on the target.
A bootloader is the first software program that runs when a computer starts. It is responsible for loading and transferring control to the operating system kernel software (the Linux). The kernel, in turn, initializes the rest of the operating system (e.g., GNU).
The kernel initialization (building the kernel) is represented by the following steps: Set CROSS_COMPILE and ARCH export ARCH=arm export CROSS_COMPILE=arm-angstromlinux-gnueabi-Make targets zImage-compressed kernel image uImage-zImage plus U-Boot header Files generated vmlinux arch/arm/boot/zImage arch/arm/boot/uImage

Steps for Mounting
Step 1: Ifconfig eth0 192.168.0.1 Ifconfig is used to configure the kernel-resident network interfaces. It is used at boot time to set up interfaces as necessary. After that, it is usually only needed when debugging or when system tuning is needed. In this study, Node 1 is placed in the network Step 2: Mount the userspace: The command mount is responsible for mounting file systems. The syntax for this command is given as: Mount /dev/sda1/mnt This command will mount the filesystem on/dev/sda1 (which may be a USB drive, a SATA drive or a SCSI drive) into the folder/mnt. That means that going into/mnt will show you the file system which is on/dev/sda1.

HARDWARE NODE PHOTOS
This study uses two types of Development board for conducting the study.

FL 2440 ARM9 Embedded Development Board
This development board is used for designing and implementing the Automatic Modulation Identification technique. The Data from one node (Personal Computer) is sent to the board in a serial manner using the USB RS 232 cable. The program on the board helps in identifying a modulation type and the data is modulated using that type and sent to the next board which is connected to the receiving node. The next board helps in processing the header and finding the exact modulation technique.
The Fig. 10 shows the photo of the FL2440 ARM9 Embedded development board used for automatic modulation detection.

HY-LPC1788 Development Board
This development board helps in connecting two communicating nodes i.e., a transmitter and a receiver. The board connected with the transmitter helps to encode using Hamming encoder. While the board connected with the receiver helps to decode the received data stream. These boards help in determining the Error correction and Detection for the received data. The Hamming program is run from the External memory USB drive. Ethernet cable using RJ 45 connector is used to transfer the data. The Data from the user connecting devices is transferred using USB to UART Cable.

CONCLUSION
In this article, we have introduced a novel technique to automatically identify the exact modulation technique with the help of pilot sequence which helps to detect the demodulation type with which the data can be retrieved. This technique is practically implemented for ten modulation types using FL2440 ARM9 Embedded development boards as nodes. Also the transmitted data is coded with Hamming Encoding technique to enable error detection and correction. This is implemented practically using HY-LPC1788 Development boards as nodes and implementing the Hamming codes in HDL. Using the setup, the error handling is done by detecting the bit position on which the error occurs for a particular number of time. This study also deals with the performance analysis of Energy optimization in SDR and the need for adaptive modulation. In the future work, the number of modulation schemes can be increased and the speed of detecting the modulation technique can be made faster. The future research can also deal with the possibility of using this modulation identification technique in military communication application where privacy of the data is the foremost importance.
The data stream can be sent by rapidly switching to different modulation types, so that the enemy cannot find out the demodulation type to get the original data. Also, for improving the performance, of error control, Khalifa et al. (2008) have proposed Reed-Muller codes that can be used instead of Huffman codes.