A new signal averaging package from Spectrum Instrumentation hopes to revolutionise the way that signals can be acquired and averaged. Signal averaging plays a crucial role in applications where signal details, hidden in random noise, need to be extracted and analysed.
The new package uses SCAPP (Spectrum's CUDA Access for Parallel Processing) together with the company's latest digitiser products to harness the power of any CUDA-based GPU card. SCAPP gives users the ability to port data directly to the GPU, using RDMA (Remote Direct Memory Access) transfers, where high-speed time and frequency domain signal averaging can be performed without the length limitations typically found in other averaging products.
The averaging package aims to be of interest to anybody working with signals that are low level or where signal details are lost due to high amounts of noise. This includes applications such as mass spectrometry, LIDAR, radio astronomy, automation, radar, biomedicine, sonar and many more. The package is available for immediate delivery.
Up until now, engineers and scientists wanting to perform signal averaging had three basic choices. They could purchase a digital oscilloscope, which includes the averaging capability. They could buy a digitiser card and use it to send the digitised data to a PC, where host processor would perform the averaging task. Or they could purchase a specialised digitiser that performs the averaging function on-board using Field Programmable Gate Array (FPGA) technology. However, when it comes to handling the averaging process for long signals, all three of these techniques have serious limitations.
Digital scopes typically use eight-bit analog to digital converters (ADCs) which restricts an acquisition's Signal-to-Noise Ratio (SNR). Furthermore, the on-board averaging capability is often constrained by small processing systems and limited on-board memory. Fast digitisers can generally offer much higher ADC resolutions and more memory. However, porting the data to a PC usually hampers the unit's acquisition speed and can tie up the host processor while it performs the transfer and averaging functions.
Finally, digitisers that employ FPGA technology need large and expensive FPGAs in order to average even moderate waveform sizes. Therefore, FPGA-based averaging packages are usually expensive and only handle limited acquisition record lengths.
In contrast, Spectrum's new approach can average the longest waveforms while at the same time offering users unrivalled flexibility. The package works with the company's fast M4i and mid-range M2p series PCIe digitiser products. The M4i series features models that can sample signals at up to 5 GS/s with 8-bit resolution, 500 MS/s with 14-bit resolution or 250 MS/s with 16-bit resolution. The M2p cards offer sampling rates from 20 MS/s to 125 MS/s, all with 16-bit resolution and up to 8 channels per card.
This enables users to select a performance level that best matches their particular signal acquisition requirements. Since the data is ported directly to the GPU card by using the RDMA process, without any intervention by the host processor, averaging can be performed on signals of almost any length.
For example, an M4i.2220-x8 Spectrum digitiser can sample signals at 2.5 GS/s and average them continuously without missing an event, even when the signals being averaged are several seconds in length. Similarly, an M4i.4451-x8 digitiser with 14-bit resolution can perform the same function while sampling four signals simultaneously at 450 MS/s. The digitiser cards also include flexible trigger, acquisition and readout modes, which allows them to average signals even when the trigger rates are extremely high. In contrast to the FPGA-based solution, which needs highest performance FPGAs, the GPU-based averaging already runs at full-speed, even with entry-level GPU cards.
The Spectrum averaging package is part of the SCAPP driver package and includes the extension for RDMA that allows the direct data transfer from the Digitiser to the GPU. The package also contains a set of examples for interaction with the digitiser and a set of CUDA parallel processing examples for the basic averaging functions. Examples include time domain block, or segmented summation averaging (together with noise suppression methods as well as gap-free, frequency domain averaging). All the software is based on C/C++ and can easily be implemented and modified with normal programming skills.
Starting with tested and optimised parallel processing examples gives immediate results and also permits customisation for users who wish to utilise their own specific averaging algorithms. The package allows RDMA transfers directly to the GPU for PCs running LINUX, or via the CPU for systems using a Windows-based operating system.