top of page
Data acquisition from multiple channels

One of the important parts of performing experiments on a multi-antenna systems is to know how to acquire data from all the channels simultaneously. This experiment uses applications written in C++ such as 'tx_waveforms' to send signals from a node which is in the Orbit Testbed grid and 'rx_multi_receive' which runs on another node connected to the multi-antenna system. Using these applications sine waves and square waves were sent through a node in the grid and acquired by 16 channels in the multi-antenna system simultaneously.

Transmission and Reception of OFDM based signals and estimation of received data symbols 

OFDM based signals were transmitted from a node in the Orbit Test bed grid and received on 16 channels of the Massive MIMO system. For generation of the signals, first a preamble was generated using WLAN specifications. The WLAN specifications have a short and long preamble. These were generated by using commands from Matlab's WLAN toolbox. These preambles were attached to OFDM based symbols. These OFDM based symbols were generated by performing QPSK modulation on 64 randomly generated symbols and then using Inverse Fast Fourier Transform for equivalent OFDM based signal generation. The last 16 symbols from the 64 were then added as a prefix. The prefix added as a gaurd band. The generated OFDM symbol was then concatenated multiple times.

Short Preamble

Long Preamble

The long preamble of the transmitted signal was then compared to the long preamble of the received signal of a single channel. This was done using cross-correlation. The start of the data symbols was found by adding the lag value of the cross-correlation to the received signal. Then by doing manual phase shift, Fast Fourier Transform and QPSK demodulation, the received symbols were estimated. 

While performing the estimation using manual phase shift, it was found that the Carrier Frequency offset present between the transmitter and receiver is very high. So, now an algorithm which estimates and corrects the offset will be created.

Frequency Offset correction and calculation of estimation of Channel Matrix

Carrier Frequency Offset was corrected using comparision of short as well as long preamble. At first a Coarse estimation of the Offset was obtained by comparing different points of the Short preamble. That was corrected using 'step()' function in Matlab. Although, even after correcting the frequency offset usign the coarse estimate, some amount of Offset was still present. Also, trying to correct the frequency offset using the coarse estimate again caused an over correction. This was corrected by using a Fine estimate of the offset. This Fine estimate was obtained using Long preamble.

The reason short preamble is used to find a coarse estimate is because the symbols in short preamble are not spread on all 64 sub-carriers. But, the symbols of the long preamble are present on all subcarriers. So, a fine estimate can be obtained. The following webpage was very helpful in gaining information related to Frequency Offset estimation using WLAN preambles,

http://www.dsplog.com/2008/03/03/frequency-offset-estimation-using-80211a-short-preamble/

​

Before Offset correction,

freqOffset = 1.3904e+03

​

After correction using coarse estimate,

freqOffset = -155.9726

​

After correction using fine estimate,

freqOffset = -9.6005e-11

​

After correcting the frequency offset for all channels using above mentioned method, a channel matrix for estimating the  received symbols was calculated. This was done by dividing the first received OFDM symbol with the first transmitted OFDM symbol. This was done considering the equation,

Y = HX + n

Where,

Y = Received symbol

X = Transmitted symbol

H = Channel Matrix

n = Additive noise

As we are working on high SNR, effect of noise is negligible. So, the same equation becomes Y = HX. So, H = Y/X becomes an estimate of the channel matrix. This channel matrix was a 64x16 matrix for 64 sub-carriers and 16 channels. So, using this matrix, further received OFDM symbols were estimated for all channels and then converted to equivalent QPSK symbols. The QPSK symbols were then demodulated and compared with the transmitted symbols. The estimated QPSK symbols for all 16 channels are as follows,

​

Calculation of Empirical Covariance and Correlation matrices

As mentioned in the previous experiment, a Channel estimation matrix was created. Using this matrix, we calculated the covariance and correlation matrices. But, before that, the experiment of transmitting and receiving OFDM data was repeated several times throughout the day. This was done so that more observation points for the Channel estimation matrix can be obtained. Also, observations at different points of time would give a better view of the changing values in the channel estimation matrix. The experiment was done when there was minimal interference from external factors. So, the channel estimation matrices obtained for every received OFDM packet were concatenated to get a better estimate of the covariance and correlation between the channels for every sub-carrier.

Using about 450 to 1800 values for 64 sub-carriers and 16 channels, 16x16 matrices for every sub-carrier were calculated using Matlab. A heatmap for each of the matrices was created. Then putting together matrices for consecutive sub-carriers, a video was created which showed changes in the correlation coefficients between channels with change in sub-carrier. Also, the matrices were plotted for the magnitude of the channel matrix as well as the phase of the channel matrix. The heatmaps of the Correlation matrices are as follows,

Correlation matrix heatmap for magnitude of channel estimation matrix

Correlation matrix heatmap for phase of channel estimation matrix

Correlation matrix gave a much better information about the channel parameters than the covariance matrix. The heatmaps basically indicate the level of correlation between two channels. The brighter the point the more correlated the two channels are. So, it can be seen that there is a high amount of correlation when magnitude is considered. That is because the node that was selected for transmitting the OFDM signals was on Line of Sight. But, when phase is considered, the correlation between channels is very low. This is good when applications like beamforming come into perspective.

Experiments at different frequency

The above experiments were conducted at frequency of 1800 MHz. Now, at 1800 MHz, the distance between two antennas of the Massive MIMO system is less than a wavelength. But, for a Multi-antenna system to work as a MIMO system, the distance between antennas should be more than one wavelength. So, the system can work as a MIMO system above 3 GHz as the spacing between two antennas which are being used is about 10 cm. Also, the every alternate antenna is being used to receive the signals. So, instead of using 1800 or 2400 MHz, 5.4 GHz is used as carrier frequency and all the experiments conducted previously are conducted again on that frequency. The phase correlation was lower than the heatmap shown above, but there was not much difference.

One more problem that occured is that the amount of frequency offset increased. Also, the offset is not being suppressed by very high margin and so as higher frequencies are being used, better offset frequency suppression methods need to be used. But, in this case, even when multiple USRPs are being synchronized using a PPS signal, the frequency offset between channels of different USRPs is different. What is expected is that there should be a frequency offset between the transmitter and all the receivers, but it should be the same for all the channels. In this case it is not same and so either the hardware or the software need to be checked and refined accordingly.

bottom of page