WARP Project Forums - Wireless Open-Access Research Platform

You are not logged in.

#1 2018-Jan-07 21:17:40

fc
Member
Registered: 2016-Oct-14
Posts: 21

How to use warp v3 kit to extract subcarrier information

Hi,

I want use two warp v3 kits simulate Wi-Fi router and 5300 Wi-Fi card to extract channel state information(CSI). For example, we usually can use 5300 Wi-Fi card to get 30 subcarriers information including amplitude and phase, can we also obtain corresponding information from warp v3 kit, and could you tell how can we extract it?

Thanks a lot

Offline

 

#2 2018-Jan-09 12:13:34

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: How to use warp v3 kit to extract subcarrier information

The 802.11 Reference Design for WARP v3 captures the Rx PHY's channel estimates for every OFDM Rx packet. These channel estimates are written to the node's log along with the packet metadata. You can retrieve the channel estimates using the Python wlan_exp tools included with the Reference Design. I would suggest getting started with the wlan_exp log processing examples.

Offline

 

#3 2018-Jan-22 01:36:58

FreedomWord
Member
Registered: 2018-Jan-22
Posts: 2

Re: How to use warp v3 kit to extract subcarrier information

Dear murphpo,

I have some doubts about this question: I find that the channel estimates with subcarrier information in SISO OFDM Example, describing like this :

% Channel Estimates
cf = cf + 1;

rx_H_est_plot = repmat(complex(NaN,NaN),1,length(rx_H_est));
rx_H_est_plot(SC_IND_DATA) = rx_H_est(SC_IND_DATA);
rx_H_est_plot(SC_IND_PILOTS) = rx_H_est(SC_IND_PILOTS);

Can this  extract  subcarrier information (according to this iformataion calculate the amplitude and phase and so on)?
rx_H_est(SC_IND_DATA)   %SC_IND_DATA   Data subcarrier indices

if yes, can we extract the second subcarrier information by using   "rx_H_est(2)"?
if no,  can you tell me the difference bettwen the way above and the way which using The 802.11 Reference Design with node's log by pathon?

By the way, i want to know the phase from the different subcarrier information. And i use the way above to extract the subcarrier information of LTS , like this:

% Re-extract LTS for channel estimate
rx_lts = rx_dec_cfo_corr(lts_ind : lts_ind+159);
rx_lts1 = rx_lts(-64+-FFT_OFFSET + [97:160]);
rx_lts2 = rx_lts(-FFT_OFFSET + [97:160]);

rx_lts1_f = fft(rx_lts1);
rx_lts2_f = fft(rx_lts2);

S1=rx_lts1_f(2);
P1=unwrap(angle(S1))

the question is that when i run this program with 30 times and i get 30 different S1 and P1, i do't know the reason. the same data i send but why i receive the different data.

Looking forward to your reply!

Thanks!

Offline

 

#4 2018-Jan-22 09:57:08

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: How to use warp v3 kit to extract subcarrier information

can we extract the second subcarrier information by using   "rx_H_est(2)"?

In the WARPLab OFDM examples 'rx_H_est' is the frequency-domain channel estimate with each value in that vector representing the complex value of the channel coefficient for 1 subcarrier. You can compute the amplitude and phase of each subcarrier's channel estimate from these complex values.

the question is that when i run this program with 30 times and i get 30 different S1 and P1, i do't know the reason. the same data i send but why i receive the different data.

The complex channel estimates represent the total amplitude+phase difference from the Tx baseband to the Rx baseband at a given instant. Any variations in the Tx-to-Rx phase will result in phase changes in the channel estimates. Frequency offsets between the Tx and Rx nodes (sampling frequency offset and carrier frequency offset), for example, result in time-varying phases between the Tx and Rx baseband signals, even over a wired (static) channel. Multi-path fading also contributes to time-varying channel responses. The phase of an over-the-air channel is very sensitive to changes in scattering; even tiny changes in the propagation environment can result in large phase and amplitude changes in the channel estimates.

Offline

 

#5 2018-Jan-22 20:21:56

FreedomWord
Member
Registered: 2018-Jan-22
Posts: 2

Re: How to use warp v3 kit to extract subcarrier information

Dear murphpo,

thanks!

I want to extract LTS with 64 different subcarrier : for exzample rx_lts2_f
rx_lts = rx_dec_cfo_corr(lts_ind : lts_ind+159);
rx_lts1 = rx_lts(-64+-FFT_OFFSET + [97:160]);
rx_lts2 = rx_lts(-FFT_OFFSET + [97:160]);

rx_lts1_f = fft(rx_lts1);
rx_lts2_f = fft(rx_lts2);

S1=rx_lts2_f(2);
P1=unwrap(angle(S1))


1.Is it right to use this to extract one LTS and calculate the phase?
2.the question is that when i run this program with 30 times and i get 30 different S1 and P1, i do't know the reason. the same data i send but why i receive the different data.
----I make the transmiter and receiver Wired connection.
----And I extract LTS not  channel estimates.
----When I use 4 antennas in the receiver and often only 1or2 antenna's value are almost the same ,but others have a little big difference.

3. I still want to know the difference bettwen the way above and the way which using The 802.11 Reference Design with node's log by pathon?  Can this extract the same LTS information from one subcarrier with these two ways?

Looking forward to your reply!

thanks!

Offline

 

#6 2018-Jan-23 20:16:33

murphpo
Administrator
From: Mango Communications
Registered: 2006-Jul-03
Posts: 5159

Re: How to use warp v3 kit to extract subcarrier information

1.Is it right to use this to extract one LTS and calculate the phase?

This code will extract a single complex value from the second long training symbol, specifically the first positive subcarrier. The phase of this value is the cumulative phase difference between the digital interface of the Tx DAC and digital interface of the Rx ADC. If there are any frequency offsets between your nodes (i.e. if your nodes are not synchronized to a common reference clock), then the phase of this single subcarrier is effectively random.

3. I still want to know the difference bettwen the way above and the way which using The 802.11 Reference Design with node's log by pathon?  Can this extract the same LTS information from one subcarrier with these two ways?

The 802.11 Rx PHY estimates 1 channel coefficient per subcarrier using the two LTS from the preamble. These frequency-domain channel estimates are used by the receiver's equalizer to recover the data symbols. These channel estimates are also written to the Rx packet buffer, then copied to the node's log with the Rx packet. The channel estimates in the node's node have 1 complex value per occupied subcarrier. You can extract the channel estimate for a single subcarrier by selecting the corresponding complex value from this array.

Offline

 

Board footer