A Software Defined Radio is a reconfigurable radio, in which the functionality is defined in software. For efficient use of communication systems, we can change software specification rather than changing any hardware because change of hardware is difficult and cost effective as compared to that of software. On such way software defined radio (SDR) is simple and economically beneficial. An SDR performs significant amounts of signal processing in a general purpose computer. In this paper Software Defined Radio (SDR) 4-bit QAM Modem for Gaussian Channel is implemented using LabVIEW. LabVIEW is a graphical development environment with built-in functionality for simulation, data acquisition, instrument control, measurement analysis, and data presentation. In this paper instead of idle channel we implement SDR with Gaussian channel and Adaptive Filter is used to reduce InterSymbol Interference (ISI) and gaussian noise. Simulation results are also provided to test the performance of SDR modem system.
This paper discusses Software Defined Radio (SDR) 4- bit QAM Modem for Gaussian Channel is implemented using LabVIEW. A software-defined radio system, or SDR, is a radio communication system where components that have been typically implemented in hardware are instead implemented by means of software on a personal computer or embedded computing devices. They can be reconfigured and can talk and listen to multiple channels at the same. Software radio has two major advantages: 1) flexibility and 2) ease of adaptation.
The transmitter of a SDR system converts digital signals to analog waveforms. These waveforms are then transmitted to the receiver. The received waveforms are then downconverted, sampled, and demodulated using software. The flexibility possible with software-defined radios (SDRs) is key to the future of wireless communication systems.
In this paper, 4- bit QAM (Quadrature Amplitude Modulation) is chosen to be the modulation scheme of the designed software defined radio system. This modulation technique is the combination of ASK and PSK. QAM takes advantage of the fact that it is possible to send two different signals simultaneously on the same carrier frequency. Digital cable television and cable modem utilize 64-QAM and 256-QAM [6-8].
LabVIEW is a graphical programming called as "G" language, data-flow-controlled execution, as compared to sequential execution of text-line based languages. It has built in drivers and function libraries for the serial, parallel and network computer ports as well as simple file input-output operation. A design using LabVIEW is achieved by integrating different blocks, components or subsystems, called Virtual Instruments (VI), within a graphical framework [10-11].
2. SOFTWARE DEFINED RADIO 4-bit QAM MODEM FOR GAUSSIAN CHANNEL
In this section the building blocks of the 4-bit QAM modem system are explained. This system consists of two parts: Transmitter and Receiver. The Transmitter is formed of four modules i.e. message source, pulse shape filter, QAM modulator and Gaussian noise and receiver is formed of rest of modules i.e. Adaptive Filter, Hilbert Transform, QAM Demodulator, Sync & Tracking. A brief description of each block follows.
PN sequences are used to spread the transmitting data in message source. It is a sequence of pulses that will repeat itself after its period. It can generate different sequence for different users. A Pseudo-random Noise (PN) sequence is a sequence of binary numbers, e.g. 0 & 1. A PN Sequence is generated with a 5-stage linear feedback shift register structure.LFSR (Linear feedback shift register) is a linear function of its previous state. In a feedback shift register of linear type, feedback function is obtained using modulo-2 addition of the output of various flip flops.
Frame Marker bits are inserted in message source for frame synchronization. The frame marker is a distinct pattern of bits that never occurs in the stream for message data. A known bit sequence of length 10 is used as the frame marker in this paper.
Pulse Shape Filter:-
It is the process of changing the waveform of transmitted pulse. Its purpose is to make transmitted signal better suited to the communication channel. It is done before modulation.
Transmitting signal at high modulation rate through bandlimited channel can create ISI. . By using pulse shape filtering ISI caused by channel can be controlled. The message (PN) sequences generated are passed through a raised cosine FIR filter to create a band-limited baseband signal. In this implementation, a roll-off factor of 0.5 is used to generate filter coefficients.
QAM can be considered logical extension of QPSK. For QAM, each carrier is ASK modulated. The two independent signals are simultaneously transmitted over the same medium. In QAM modulation scheme input is a stream of binary digits arriving at a rate of R bps.
This stream is converted into two separate bit streams of R/2 bps each. In above diagram the upper stream is ASK modulated on a carrier of frequency fc by multiplying the bit stream by the carrier.
In signal processing, the Hilbert transform is a linear operator which takes a function, u (t), and produces a function, H (u) (t), with the same domain
In Digital Signal Processing relationships between real and imaginary parts of a complex signal are described by Hilbert transforms. Hilbert transform is also used to create analytic signals which are important in simulation. The analytic signals represent bandpass signals as complex signals.Â Hilbert transforms are useful in creating signals with one sided Fourier transforms.
The following diagram describes modulation of Hilbert Transform.Â
Figure 1 - Role of Hilbert Transform in modulation
The role of Hilbert transform is to take the carrier which is a cosine wave and create a sine wave out of it.
If g (T) is considered to be the sampled received signal, the analytic signal is given by,.
For the implementation of this transform FIR filters are used.
Gaussian noise is statistical noise that has a probability density function (pdf) of the normal distribution (also known as Gaussian distribution). Adaptive Filtering is used
An adaptive filter is a filter that self-adjusts its transfer function according to an optimizing algorithm. Because of the complexity of the optimizing algorithms, most adaptive filters are digital filters that perform digital signal processing and adapt their performance based on the input signal.
This module introduces adaptive filters by using the LMS algorithm. The adaptive filter adjusts its coefficients to minimize the mean-square error between its output and that of an unknown system.
Least mean squares (LMS) algorithms are a class of adaptive filter used to mimic a desired filter by finding the filter coefficients that relate to producing the least mean squares of the error signal (difference between the desired and the actual signal
The demodulator performs the inverse of operations in modulator, first mapping the received bandpass waveform into a baseband waveform, then recovering the sequence of symbols, and then recovering the binary digits. Multiplying by a cosine (or a sine) and by a low-pass filter it is possible to extract the component in phase (or in quadrature).
3. Implementation of 4bit QAM Modem in labview
LabVIEW(Laboratory Virtual Instrumentation Engineering Workbench) consits of two major components: Front panel (FP) and block diagram (BD).A front panel provides graphical user interface. The block diagram contains building blocks of a system which resembles a flowchart.Labview blocks are known as VIs (Virtual Instruments).The system level block diagram of 4bit QAM Modem is shown in figure2.The implementation of each of the blocks in labview are described as follows.
The first component of 4bit QAM Modem is thee message source. For this purpose PN sequences are used. The block diagram of message source vi. is shown in figure 3.Frame marker bits are inserted in front of PN sequences to achieve frame synchronization.
The generated samples are oversampled 4 times according to the specification of the pulse shape filter. It is done by comparing with 0 the remainder of a global counter. Thus, out of four executions of this VI, one message sample (frame marker bit or PN sample) is generated. For the remaining three executions of the VI, zero samples get generated. The total length of the message for one period of a PN sequence and frame marker bits is 164, which is obtained by 4 (oversampling rate) Ã- [10 (frame marker bits) + 31 (period of PN sequence)]. A constant array of 10 complex numbers is used to specify the marker bits. The real parts of the complex values are used as the frame marker bits of the in-phase samples while the imaginary parts as the frame marker bits of the quadrature-phase samples.
Pulse Shape Filter
A finite impulse response (FIR) filter is a type of a discrete-time filter. The impulse response is finite because it settles to zero in a finite number of sample intervals.
Instantaneous phase information and the envelope of an input signal can be extracted using Hilbert transform.
Data Queue Creates a data queue of real numbers. The data queue begins as a set of zeros that matches the size of sample length. To maintain this sample length, the VI eliminates the first point each time it appends a new point.
Sync & Tracking VI - Frame synchronization mode.
For a receiver to make sense of the incoming data stream, the receiver needs to be synchronized with the data streams' frame structure. This is called frame synchronization. This is usually accomplished with the aid of some special signaling procedure from the transmitter.
A case structure is used so that every fourth sample is used for processing as this structure executes only one case at a time.
Sync & Tracking VI is used for frame synchronization and phase/frequency tracking. Synchronization is the act of synchronizing,i.e. concurrence of events in respect to time. In block diagram shown in figure the input samples are passed through Complex Queue PtByPt VI, which creates a data queue of complex numbers to obtain beginning of frame. A case structure is not executed until the queue is completely filled. Extra 16 bits are added due to delays related to filtering operations in transmitter. A counter is used to count number of samples filling up the queue (as loop count VI). A Boolean (sync) is a primitive data type that can have one of two values: TRUE or FALSE
The queue length is chosen to be 51 in order to include the entire marker bits in the queue. This length is calculated as uner: 31 [(one period of PN sequence) + 2 Ã- 10 (frame marker bits)]. The frame synchronization VI is shown in figure .In this VI complex cross-correlation is used whose VI is shown in figure .Array Size returns the number of elements in each dimension of array which is passed through array subset Returning a portion of array starting at index and containing length elements.
Expression Node is used to calculate expressions that contain a single variable. Through this VI maximum index of cross-correlation value is obtained all data samples are taken at this location of queue. The complex cross correlation of f(x) with g(x) is defined as
Sync & Tracking VI - phase and frequency tracking mode
Phase tracking is in which an adjustment of the LO phase needed because delay tracking is done at the IF and not RF frequency and phase estimation is obtained by using complex data phase. The constellation is achieved by real and imaginary parts of data. Local and Global variables are used both of which should contain known data values before the VI runs. A formula node evaluates mathematical formulae and expressions similar to C on the block diagram in lab view. It acts as a limiter having two boundary values, the portion of the signal between these values being passed on. Formula Nodes are useful for equations that have many variables or are otherwise complicated and for using existing text-based code. Details of Formula node can be studied from [ ].
Various Key Features of Lab view utilized in this implementation
Local Variables:-Local variables can be used to access front panel objects from more than one location in a single VI and pass data between block diagram nodes that cannot be connected with a wire.
However, with a local variable we can write to it even if it is a control or read from it even if it is an indicator. In effect, with a local variable, we can access a front panel object as both an input and an output.
LabVIEW provides point-by-point signal generation. Point-by-point analysis functions are optimized for continuous, real-time analysis without data loss, reinitialization, or potential interruption problems. The point-by-point functions allow for the input-analysis-output process to occur continuously, in real-time.
Modulation-Demodulation:The NI Modulation Toolkit can be used to implement various modulation and demodulation schemes. It Extends the built-in analysis capability of LabVIEW with functions and tools for signal generation, analysis, visualization, and processing of standard and custom digital and analog modulation formats. It offers bit-error rate (BER), phase error, burst timing, and frequency deviation measurements.
Digital Filtering:-The filtering Coefficients used in pulse shaping and Hilbert transformation are obtained by using NI LabVIEW Digital Filter Design Toolkit.TheÂ NI LabVIEW Digital Filter Design ToolkitÂ (DFDT) is a complete filter design and analysis software that can be used to design digital filters to meet required filter specifications. With the DFDT work is done within the LabVIEW development environment to design, analyze, and implement a variety of IIR and FIR filters.
Formula Node: - The Formula Node is a convenient text-based node can be used to perform mathematical operations on the block diagram. The formula node is designed to incorporate algorithms which are quite complex in LabVIEW code, but a single line in C.
Toolkits add libraries of functions, VIs, interactive wizards, examples, utilities, and documentation to our NI LabVIEW installation, effectively reducing the time required to finish our task. Control Design tool Kit Provides a library of VIs and LabVIEW MathScript functions that are used to design, analyze, and deploy a controller for a linear time-invariant dynamic system model. This toolkit includes frequency response analysis tools such as Bode, and Nyquist, time response analysis tools such as step and impulse response analysis. Simulation Module Tool Kit Provides VIs, functions, and other tools that are used to construct and simulate all or part of a dynamic system model.
LabVIEW is used here since in a comparative study reported in , it is shown that LabVIEW provides preferred interactivityand graphical-user-interface capabilities.SDR had been implemented in software Lab view in this work since adjustements can be made in software as needed compared to hardware-based solution.