The channel emulator » History » Version 2

SANCHEZ, Eduardo, 03/25/2017 05:42 PM

1 2 SANCHEZ, Eduardo
h1. Software architecture
2 2 SANCHEZ, Eduardo
3 1 SANCHEZ, Eduardo
To order to control the vector signal analyzer (VSA) and the vector signal generator (VSG) of the NI PXIe-5644R and perform the signal processing a source code is developed in LabView which is installed in the NI PXIe-8135.
4 2 SANCHEZ, Eduardo
5 2 SANCHEZ, Eduardo
The LabView development is mainly based on the VST Streaming project and the previous QPSK implementation functions such as the noise generation, the delay effect and the visualization tools.
6 2 SANCHEZ, Eduardo
7 2 SANCHEZ, Eduardo
The front panel is illustrated in Figure wwww, the following features are provided
8 2 SANCHEZ, Eduardo
9 2 SANCHEZ, Eduardo
* Eb/No level [dB]
10 2 SANCHEZ, Eduardo
* Time delay [ms]
11 2 SANCHEZ, Eduardo
* Input/Output frequency carrier [GHz]
12 2 SANCHEZ, Eduardo
* Sampling frequency [MHz]
13 2 SANCHEZ, Eduardo
* Power spectral density
14 2 SANCHEZ, Eduardo
* Eye diagram
15 2 SANCHEZ, Eduardo
* Symbol constellation
16 2 SANCHEZ, Eduardo
17 1 SANCHEZ, Eduardo
Front Panel.png
18 1 SANCHEZ, Eduardo
19 2 SANCHEZ, Eduardo
On the other hand, the whole block diagram implementation consist of five major parts which will be explained below
20 2 SANCHEZ, Eduardo
21 2 SANCHEZ, Eduardo
* PXIe-5644R initialization and configuration
22 2 SANCHEZ, Eduardo
* Acquisition of the QPSK signal
23 2 SANCHEZ, Eduardo
* Noise and delay generation
24 2 SANCHEZ, Eduardo
* Streaming of the channel-applied signal
25 2 SANCHEZ, Eduardo
* Visualization and monitoring
26 2 SANCHEZ, Eduardo
27 2 SANCHEZ, Eduardo
h2. PXIe-5644R initialization and configuration
28 2 SANCHEZ, Eduardo
29 1 SANCHEZ, Eduardo
The initialization and configuration of the VST is shown in Figure lllll
30 1 SANCHEZ, Eduardo
31 1 SANCHEZ, Eduardo
Block diagram Configuration.png
32 1 SANCHEZ, Eduardo
33 2 SANCHEZ, Eduardo
h2. Acquisition of the QPSK signal
34 2 SANCHEZ, Eduardo
35 1 SANCHEZ, Eduardo
In Figure qqq, it can be seen how the acquisition loop reads the samples stored in a Direct Memory Access (DMA) buffer. A DMA channel is composed of two FIFO buffers: one on the computer side and another one on the FPGA side. Therefore, in order to recover the QPSK samples, a function block writes data from the FPGA to the DMA buffer and another function block on the computer side reads the data from the target buffer.
36 2 SANCHEZ, Eduardo
37 1 SANCHEZ, Eduardo
Block diagram Input.png
38 2 SANCHEZ, Eduardo
39 1 SANCHEZ, Eduardo
Since the unsigned 16-bit integer format is used to represent the samples, a function converts these samples into complex symbols in order to reuse the functions developed in the previous implementation. 
40 2 SANCHEZ, Eduardo
41 1 SANCHEZ, Eduardo
Once the data is formatted, the samples are added to a FIFO queue. As in the previous LabView development, the queue approach is implemented to connect the main function loops. 
42 2 SANCHEZ, Eduardo
43 2 SANCHEZ, Eduardo
h2. Noise and delay generation
44 2 SANCHEZ, Eduardo
45 1 SANCHEZ, Eduardo
After removing the complex symbols from the queue, the signal power is calculated in order to determine the required noise power for a given Eb/No value that is selected by the user. So that, a noise signal is generated and added to the complex one as shown in Figure www. 
46 2 SANCHEZ, Eduardo
47 1 SANCHEZ, Eduardo
Block diagram Channel.png
48 2 SANCHEZ, Eduardo
49 1 SANCHEZ, Eduardo
In order to create a time delay t_d in the transmission, the noisy samples must wait in the loop for a period of t_w before being delivered to the DMA buffer. As explained later, it must be noticed that the total delay generated by the emulator comprises the required delay as well as the processing time performed in the VST.
50 1 SANCHEZ, Eduardo
Therefore, the waiting time t_w is calculated as follows
51 2 SANCHEZ, Eduardo
52 1 SANCHEZ, Eduardo
t_w = t_d - (t_n - t_a) 
53 2 SANCHEZ, Eduardo
54 1 SANCHEZ, Eduardo
where t_a represents the time when the samples are acquired from the DMA buffer and t_n represents the time when the noisy samples are received in the output loop. The term (t_n - t_a) corresponds to the processing time that must be removed from the required delay. 
55 2 SANCHEZ, Eduardo
56 1 SANCHEZ, Eduardo
Considering the mentioned aspects, the data transmission to the DMA buffer is delayed by t_w once when the first cluster of symbols is received in the output loop queue. The block diagram implementation can be observed in Figure cccc.
57 2 SANCHEZ, Eduardo
58 1 SANCHEZ, Eduardo
Block diagram Noise.png
59 2 SANCHEZ, Eduardo
60 2 SANCHEZ, Eduardo
h2. Streaming of the channel-applied signal
61 2 SANCHEZ, Eduardo
62 1 SANCHEZ, Eduardo
Finally, the channel-applied signal samples are dequeued and written to the DMA buffer in order to be converted from a digital format to an analog signal as shown in Figure yyyy. These samples are interpolated via a DAC, subsequently, the analog signal is up-converted to the required frequency carrier.
63 2 SANCHEZ, Eduardo
64 1 SANCHEZ, Eduardo
Block diagram Output.png
65 2 SANCHEZ, Eduardo
66 2 SANCHEZ, Eduardo
h2. Visualization and monitoring
67 2 SANCHEZ, Eduardo
68 1 SANCHEZ, Eduardo
In order to analyze the transmitted signal, the symbol constellation, the eye diagram and the power spectral density of the QPSK signal are plotted. These loops are executed in parallel to exploit the multiprocessor computing power. As can be observed in Figure rrr, there are two visualization and monitoring loops: one before and another after the channel.
69 2 SANCHEZ, Eduardo
70 1 SANCHEZ, Eduardo
Block diagram Monitor.png