The channel emulator » History » Version 12

SANCHEZ, Eduardo, 03/26/2017 12:33 PM

1 3 SANCHEZ, Eduardo
h1. Hardware architecture
2 3 SANCHEZ, Eduardo
3 9 SANCHEZ, Eduardo
The required devices to support satellite channel emulation are the NI PXIe-8135 and the NI PXIe-5644R. The NI PXIe-8135 is a high-performance Intel Core i7-3610QE processor-based embedded controller which implements the thermal noise and delay effects. It also controls the NI PXIe-5644R which includes the needed radiofrequency functionality to down-convert the received QPSK signal, perform signal sampling in the baseband domain for further processing and regenerate the radiofrequency signal. The front panel of the NI PXIe-5644R can be observed in Figure 1. The radiofrequency input and output provide independent local oscillators, frequency coverage from 65 MHz to 6 GHz, and sampling frequency of up to 80 MHz.
4 3 SANCHEZ, Eduardo
5 7 SANCHEZ, Eduardo
p=. !{width:40%}NI5644_hardware.png!
6 8 SANCHEZ, Eduardo
*Figure 1. NI PXIe 5644R front panel*
7 3 SANCHEZ, Eduardo
8 9 SANCHEZ, Eduardo
Due to the fact that the modems operate in L-band (1-2 GHz) transmitting data at 2 Mbauds, the use of NI PXIe-5644R results in an affordable solution for satellite channel emulation. Figure 2 depicts the tasks carried out by the NI devices to process the incoming QPSK signal.
9 3 SANCHEZ, Eduardo
10 7 SANCHEZ, Eduardo
p=. !{width:50%}Channel_diagram.png!
11 8 SANCHEZ, Eduardo
*Figure 2. Signal processing scheme*
12 3 SANCHEZ, Eduardo
13 3 SANCHEZ, Eduardo
Besides that, the NI PXIe-5644R also provides an integrated LabView programmable FPGA which enables high power processing. In this project, the signal processing is executed in the NI PXIe-8135 instead of the FPGA due to time constraints.
14 3 SANCHEZ, Eduardo
15 3 SANCHEZ, Eduardo
16 2 SANCHEZ, Eduardo
h1. Software architecture
17 2 SANCHEZ, Eduardo
18 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.
19 2 SANCHEZ, Eduardo
20 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.
21 2 SANCHEZ, Eduardo
22 9 SANCHEZ, Eduardo
The front panel is illustrated in Figure 3, the following features are provided
23 2 SANCHEZ, Eduardo
24 12 SANCHEZ, Eduardo
* $Eb/No$ level [dB]
25 2 SANCHEZ, Eduardo
* Time delay [ms]
26 2 SANCHEZ, Eduardo
* Input/Output frequency carrier [GHz]
27 2 SANCHEZ, Eduardo
* Sampling frequency [MHz]
28 2 SANCHEZ, Eduardo
* Power spectral density
29 2 SANCHEZ, Eduardo
* Eye diagram
30 2 SANCHEZ, Eduardo
* Symbol constellation
31 2 SANCHEZ, Eduardo
32 7 SANCHEZ, Eduardo
p=. !{width:50%}Front_Panel.png!
33 8 SANCHEZ, Eduardo
*Figure 3. Emulator front panel*
34 1 SANCHEZ, Eduardo
35 2 SANCHEZ, Eduardo
On the other hand, the whole block diagram implementation consist of five major parts which will be explained below
36 2 SANCHEZ, Eduardo
37 2 SANCHEZ, Eduardo
* PXIe-5644R initialization and configuration
38 2 SANCHEZ, Eduardo
* Acquisition of the QPSK signal
39 2 SANCHEZ, Eduardo
* Noise and delay generation
40 2 SANCHEZ, Eduardo
* Streaming of the channel-applied signal
41 2 SANCHEZ, Eduardo
* Visualization and monitoring
42 2 SANCHEZ, Eduardo
43 2 SANCHEZ, Eduardo
h2. PXIe-5644R initialization and configuration
44 2 SANCHEZ, Eduardo
45 11 SANCHEZ, Eduardo
The initialization and configuration of the VST is shown in Figure 4. The VST local oscillator (LO) is configured to operate at the required frequency and the trigger function is set up to ensure synchronized samples across the RF inputs and outputs of the VST at a given sampling rate. This block also downloads the FPGA bitfiles on the VST for execution.
46 1 SANCHEZ, Eduardo
47 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Configuration.png!
48 8 SANCHEZ, Eduardo
*Figure 4. Device initialization and configuration*
49 1 SANCHEZ, Eduardo
50 2 SANCHEZ, Eduardo
h2. Acquisition of the QPSK signal
51 2 SANCHEZ, Eduardo
52 9 SANCHEZ, Eduardo
In Figure 5, 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.
53 2 SANCHEZ, Eduardo
54 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Input.png!
55 8 SANCHEZ, Eduardo
*Figure 5. Data acquisition*
56 2 SANCHEZ, Eduardo
57 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. 
58 2 SANCHEZ, Eduardo
59 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. 
60 2 SANCHEZ, Eduardo
61 2 SANCHEZ, Eduardo
h2. Noise and delay generation
62 2 SANCHEZ, Eduardo
63 12 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 6. 
64 2 SANCHEZ, Eduardo
65 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Channel.png!
66 8 SANCHEZ, Eduardo
*Figure 6. Noise generation*
67 2 SANCHEZ, Eduardo
68 10 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.
69 10 SANCHEZ, Eduardo
Therefore, the waiting time $t_w$ is calculated as follows
70 2 SANCHEZ, Eduardo
71 10 SANCHEZ, Eduardo
$t_w = t_d - (t_n - t_a)$
72 2 SANCHEZ, Eduardo
73 10 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. 
74 2 SANCHEZ, Eduardo
75 10 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 7.
76 2 SANCHEZ, Eduardo
77 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Noise.png!
78 8 SANCHEZ, Eduardo
*Figure 7. Delay generation*
79 2 SANCHEZ, Eduardo
80 2 SANCHEZ, Eduardo
h2. Streaming of the channel-applied signal
81 2 SANCHEZ, Eduardo
82 9 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 8. These samples are interpolated via a DAC, subsequently, the analog signal is up-converted to the required frequency carrier.
83 2 SANCHEZ, Eduardo
84 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Output.png!
85 8 SANCHEZ, Eduardo
*Figure 8. Data streaming*
86 2 SANCHEZ, Eduardo
87 2 SANCHEZ, Eduardo
h2. Visualization and monitoring
88 2 SANCHEZ, Eduardo
89 9 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 9, there are two visualization and monitoring loops: one before and another after the channel.
90 2 SANCHEZ, Eduardo
91 7 SANCHEZ, Eduardo
p=. !{width:60%}Block_diagram_Monitor.png!
92 8 SANCHEZ, Eduardo
*Figure 9. Monitoring loop*