Building a Real-Time Multichannel Modem Test Bed Using NI LabVIEW and PXI
"We achieved a performance increase just by plugging a new processor into the PXI chassis and installing LabVIEW 8.5; we made no changes to the LabVIEW or C++ code."
- Brian L. Evans,
The University of Texas at Austin
Building a prototype of a multichannel wired communication system using discrete multitone (DMT) modulation and commercial off-the-shelf (COTS) components for system designers to evaluate communication performance and computational complexity trade-offs.
Using NI COTS components, LabVIEW Real-Time software, and components from a variety of other vendors to develop a real-time modem test bed especially suited for multithreaded implementation.
In high-speed, wired communication systems, a single transmitter-receiver setup may not provide the desired information exchange rate. System designers may need to turn to multichannel communication systems, also known as multiple input, multiple output (MIMO) systems, in which multiple transceivers communicate in parallel. Multiple carrier frequencies that transmit data, such as a digital subscriber line (DSL), are commonly used. These frequencies are also known as DMT modulation.
We developed a real-time MIMO DMT test bed with two transceivers. Because of the electromagnetic coupling between the wires, parallel transmission creates a new host of impairments, including near-end crosstalk (NEXT) and far-end crosstalk (FEXT). With the test bed, designers can evaluate the trade-offs between communication performance and implementation complexity in the algorithms for mitigating NEXT, FEXT, and other impairments. We developed the system using NI hardware and LabVIEW software.
The Software Solution
We split the software solution running on the test bed into two sections: real-time and non-real-time components. The real-time software components consist of the transceiver algorithms and the component hardware interfaces. We implemented these in the LabVIEW Real-Time Module on an embedded controller to meet the hard real-time constraints. The core transceiver algorithms include transmission signal generation, signal decoding, and various signal processing techniques to increase the data rate with a low bit-error probability. We developed these algorithms in C++ and executed them as part of a DLL.
We used the hardware interface to maintain buffers of transmitted and received samples and send these samples to the data converters, and we implemented the interfaces as LabVIEW Real-Time VIs. We chose to use the LabVIEW Real-Time Module because it is a reliable, cost-effective, and integrated solution that made it easy for us to integrate multichannel data acquisition.
The non-real-time components of the test bed include the software user interface. With these components, the user can control the parameters of the communication link that pertain to hardware (such as transmission voltage and sampling rate), software (such as the buffer size), and the system sections (such as the equalizer and bit-allocation settings). We connected the LabVIEW VIs on a desktop PC to the PXI chassis via Ethernet to execute this interface.
Designing the Multicore Test Bed
We initially developed the test bed using the NI PXI-8186 embedded controller and LabVIEW 8.0, both of which support single-threaded implementations. This meant that our solution could barely execute within the real-time limitations imposed by the streaming high-speed communication system. We switched off some of the algorithms such as nonlinear equalization and channel tracking and lowered the sampling rate to ease the computational requirements of running this test bed.
We upgraded our system to the NI PXI-8106 embedded controller, which consists of a dual-core 2.2 GHz Intel processor and works with LabVIEW 8.5, so that VIs can execute with multiple threads to take advantage of our multicore system. We also used the NI PXI-5421 arbitrary waveform generator for analog-to-digital conversion for the receiver and the NI PXI-5122 high-resolution digitizer for digital-to-analog conversion for the transmitter.
We plugged the embedded controller and data converters into the NI PXI-1045 chassis, which provided a synchronized backplane for all components and gave us easy access to the data converters within the LabVIEW environment. The analog front end of the system includes line-driver/hybrid circuits from Texas Instruments and lowpass antialiasing passive filters from Analog Devices. We used a desktop PC running LabVIEW to provide a visual interface to the test bed.
Improving Computational Performance Using NI Products
We achieved a significant increase in computational performance with each upgrade and executed the test bed with the full complement of signal processing algorithms at the desired sampling rate. Figure 3 shows the increase in computational performance measured as a percentage of the received signal buffer in use. A higher percentage implies that the time taken to process a frame is high, which leads to higher buffer usage because data is kept in the buffer for a longer duration. We found a significant improvement in computational performance from both the hardware and software upgrades.
Moreover, we achieved a performance increase just by plugging a new processor into the PXI chassis and installing LabVIEW 8.5; we made no changes to the LabVIEW or C++ code. Thus, our solution based on LabVIEW was not tied to a particular component of hardware, and we quickly adapted our code to take advantage of multicore processors, doubling the system performance. With our design based on LabVIEW, this increase in computational power also opens the possibility to extend our test bed to a 3 by 3 communication system.
Bookmark and Share
Explore the NI Developer Community
Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.
Who is National Instruments?
National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.