LabVIEW implementation » History » Version 12

ZHAI, Lili, 12/12/2016 09:08 PM

1 5 SANCHEZ, Eduardo
h1. LabVIEW implementation
2 1 SANCHEZ, Eduardo
3 5 SANCHEZ, Eduardo
h2. Why LabVIEW?
4 5 SANCHEZ, Eduardo
5 1 SANCHEZ, Eduardo
The first step of the project consists in designing a communication system based on the QPSK modulation. The implementation of the QPSK communication system is developed in LabVIEW. LabVIEW is a software development environment that contains numerous components and tools for building a wide variety of applications. It also allows to integrate hardware devices to the designing such as sensors, cameras, data acquisition devices, etc.
6 1 SANCHEZ, Eduardo
7 5 SANCHEZ, Eduardo
This feature is  very useful because later we will replace the transmitter and receiver of the communication system with real DVB-S2 modems. This allows us to verify firstly the correct operation of the developed system and then to replace progressively their components.
8 1 SANCHEZ, Eduardo
9 5 SANCHEZ, Eduardo
In particular we will use the LabVIEW Modulation Toolkit which provides several examples using QPSK modulation.  We will use one of these examples as a starting point to develop our QPSK communication system. On the other hand, LabVIEW provides a FPGA Module which provides a graphical development platform to program a FPGA.
10 1 SANCHEZ, Eduardo
11 5 SANCHEZ, Eduardo
h2. The LabVIEW example
12 1 SANCHEZ, Eduardo
13 5 SANCHEZ, Eduardo
The selected example implements an Offset QPSK transmitter/receiver system which is a variant of the normal QPSK modulation in order to make much lower amplitude fluctuations in the transmitted signal. As shown in Figure 3, the front panel is the user interface that contains the controls and indicators of the simulation. The block diagram implementation of the QPSK communication system is shown in Figure 4.
14 5 SANCHEZ, Eduardo
15 1 SANCHEZ, Eduardo
p=. !ExampleFrontPanel.png!
16 12 ZHAI, Lili
*Figure 3 Front panel of the LabVIEW example*
17 1 SANCHEZ, Eduardo
18 7 SANCHEZ, Eduardo
In the front panel, the user can modify the main simulation parameters such as the transmission filter, the roll-off factor, the signal to noise ratio (Eb/N0), etc. To analyze the simulation results the front panel also plots the eye diagram at the receiver output and displays the bit error rate. The user can vary the simulation parameters and see how it impacts on the transmission performance in real time.
19 1 SANCHEZ, Eduardo
20 2 SANCHEZ, Eduardo
p=. !ExampleBlockDiagram.png!
21 12 ZHAI, Lili
*Figure 4 Block diagram of the LabVIEW example*
22 1 SANCHEZ, Eduardo
23 9 SANCHEZ, Eduardo
As shown in the diagram block, the program consist of one big while loop in which a data signal is modulated for transmission and demodulated for reception. We describe succinctly the operation of this communication system. At each iteration, a bit sequence is generated and mapped to QPSK symbols. Then, the signal is filtered and transmitted to the channel where white gaussian noise is added to the signal. Finally, the received signal is matched filtered and sampled to estimate the transmitted symbols.
24 1 SANCHEZ, Eduardo
25 1 SANCHEZ, Eduardo
Since all the performed operations are in the same while loop, it becomes problematic to replace and integrate other transmitters and receivers. Therefore, in order to develop a suitable QPSK communication system for our purposes the following steps must be performed:
26 8 SANCHEZ, Eduardo
27 8 SANCHEZ, Eduardo
* Understand the performed operations (creating a bit secuence, mapping to symbols, filtering, etc) in the example to simulate the QPSK modulation.
28 8 SANCHEZ, Eduardo
* Identify the operations corresponding to the transmitter, the channel and the receiver.
29 8 SANCHEZ, Eduardo
* Modularize the communication system scheme in order to separate the transmitter, the channel and the receiver.
30 8 SANCHEZ, Eduardo
* Find a way to connect the created modules to replace them easily.
31 8 SANCHEZ, Eduardo
* Implement the delay effect on the new scheme.
32 8 SANCHEZ, Eduardo
33 8 SANCHEZ, Eduardo
h2. Our LabVIEW implementation
34 1 SANCHEZ, Eduardo
35 10 SANCHEZ, Eduardo
In this section, we develop our QPSK communication system using LabVIEW tools. For the implementation, we use the complex envelope representation of the signal in the transmission and reception. Since the complex envelope signal can be represented using a much smaller sampling rate than the corresponding passband signal, the computational cost is lower.
36 1 SANCHEZ, Eduardo
37 11 SANCHEZ, Eduardo
We now describe the components of the communication system and its operation. Figure 5 shows the block diagram of the developed system. As shown in the diagram, the whole communication system has been divided into three loops, each one of them corresponding to the transmitter, the channel and the receiver. In order to connect these loops, we use a queue to buffer the output generated by one loop. Then, at each iteration the next loop takes one element of the queue as an input to process it.
38 1 SANCHEZ, Eduardo
39 10 SANCHEZ, Eduardo
The QPSK signal is generated in the transmitter loop. At each iteration, the transmitter loop generates a cluster containing an array with samples of the complex envelope transmitted signal, the time interval between samples in the array and the start time of the array. This cluster is stored in a queue.
40 10 SANCHEZ, Eduardo
41 1 SANCHEZ, Eduardo
p=. !OurBlockDiagram.png!
42 12 ZHAI, Lili
*Figure 5 Block diagram of the developed system*
43 1 SANCHEZ, Eduardo
44 10 SANCHEZ, Eduardo
The channel loop removes the cluster from the queue to process it. In this loop, complex white gaussian noise is added to the signal at a given SNR level which is selected by the user. As in the previous case, a cluster containing an array with samples of the noisy signal, the time step and the star time is stored in a queue.
45 1 SANCHEZ, Eduardo
46 11 SANCHEZ, Eduardo
Finally, the receiver loop subtracts the cluster from the second queue and performs two main operations: 
47 10 SANCHEZ, Eduardo
* a time delay is introduced in the signal by modifying the start time of the cluster.
48 10 SANCHEZ, Eduardo
* the received signal is filtered and decimated to estimate the transmitted symbols.
49 1 SANCHEZ, Eduardo
50 1 SANCHEZ, Eduardo
The main simulation parameters are: a) The SNR level; b) The time delay; c) The number of samples per symbol; d) The symbol rate; e) The shape of the transmitter filter; f) The roll-off factor for the raised cosine filter. These parameters can be modified by the user by using the front panel as shown in Figure 6. The front panel also displays the received symbol constellation, the eye diagram at the output receiver and the bit error rate.
51 1 SANCHEZ, Eduardo
52 1 SANCHEZ, Eduardo
p=. !OurFrontPanel.png!
53 12 ZHAI, Lili
*Figure 6 The modified front panel includes a control to select the delay and shows the received constellation*
54 1 SANCHEZ, Eduardo
55 11 SANCHEZ, Eduardo
This approach using three loops and two queues to connect them allows us to replace easily one of the system components by another component. For instance, in this project we will replace the transmitter and receiver loops with real DVB-S2 modems.
56 1 SANCHEZ, Eduardo
57 10 SANCHEZ, Eduardo
We now explain the details of each of the communication system loops. As shown in Figure 7, the first one is the transmitter loop which is composed of three blocks:
58 10 SANCHEZ, Eduardo
* MT Generate Bits: This block generates the sequence of data bits to be modulated. It generates Galois pseudonoise bit sequences.
59 1 SANCHEZ, Eduardo
* MT Map Bits to Symbols: This block maps bits to complex valued symbols for QPSK modulation.
60 10 SANCHEZ, Eduardo
* MT Pulse Shaping Filter: This block generates a sampled continuous time QPSK baseband signal from the discrete-valued input symbols by applying a pulse shaping filter.
61 1 SANCHEZ, Eduardo
62 4 SANCHEZ, Eduardo
Finally, we include the start time of the generated signal by getting the current time and adding it to the cluster.
63 1 SANCHEZ, Eduardo
64 10 SANCHEZ, Eduardo
p=. !Transmitter.png!
65 12 ZHAI, Lili
*Figure 7 Transmitter block*
66 10 SANCHEZ, Eduardo
67 1 SANCHEZ, Eduardo
Figures 8 shows the scheme of the channel block which generates zero-mean complex additive white gaussian noise and adds it to the complex baseband modulated waveform.
68 1 SANCHEZ, Eduardo
69 4 SANCHEZ, Eduardo
p=. !Channel.png!
70 12 ZHAI, Lili
*Figure 8 Channel block*
71 1 SANCHEZ, Eduardo
72 10 SANCHEZ, Eduardo
It is important to notice that the delay effect is not implemented in the channel loop but in the receiver loop. The delay is selected by the user by using the front panel and it takes into account the processing time between the transmitter output and the receiver input. For instance, the delay effect comprises the waiting time in the queues and channel processing time.
73 1 SANCHEZ, Eduardo
74 1 SANCHEZ, Eduardo
Figure 9 shows the diagram of the receiver block. Here we explain the operations performed in the sub-blocks:
75 11 SANCHEZ, Eduardo
* MT Matched Filter: This block applies the corresponding matched filter to the received complex QPSK baseband signal. The fact of filtering the received signal with the matched filter of the transmitter filter maximizes the signal to noise ratio. In addition, since the transmitter filter is the root raised cosine filter, the communication system satisfies the Nyquist condition.
76 1 SANCHEZ, Eduardo
* MT Align To Ideal Symbols: This block aligns the first sample of the received complex signal to the ideal symbol timing instant which the signal to noise is maximum.
77 1 SANCHEZ, Eduardo
* MT Decimate Oversampled Waveform: This block decimates the matched filtered signal. The downsamplig allows to recover the transmitted symbols of the signal.
78 1 SANCHEZ, Eduardo
* MT Map Symbols to Bits: This block estimates the QPSK received symbols and generates an output bit stream.
79 1 SANCHEZ, Eduardo
80 1 SANCHEZ, Eduardo
81 4 SANCHEZ, Eduardo
p=. !Receiver.png!
82 12 ZHAI, Lili
*Figure 9 Receiver block*