Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHi,all,
I'm using tow E312 to estimate the arrive time difference between received
signals.The
program is explained as follows:
uhd::usrp::multi_usrp::sptr UsrpDev = uhd::usrp::multi_usrp::make(“”);
UsrpDev->set_time_source("gpsdo");
UsrpDev->set_clock_source("internal", uhd::usrp::multi_usrp::ALL_MBOARDS);
...
uhd::stream_args_t StreamArgs;
StreamArgs.cpu_format ="fc32";
StreamArgs.channels.clear();
StreamArgs.channels.push_back(0);
uhd::rx_streamer::sptr RxStreamDev = UsrpDev->get_rx_stream(StreamArgs);
...
UsrpDev->set_rx_gain(curGain);
UsrpDev->set_rx_rate(curRxRates);
UsrpDev->set_rx_freq(tune_request, 0);
...
UsrpDev->set_time_next_pps(uhd::time_spec_t(GpsTime + 1.0));
...
uhd::stream_cmd_t CapCmdContStart(
uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS
);
CapCmdContStart.stream_now = false;
CapCmdContStart.num_samps = IQ_NUMS;
CapCmdContStart.time_spec
= uhd::time_spec_t((double)nextBoardTime);
RxStreamDev->issue_stream_cmd(CapCmdContStart);
...
size_t RxNums = RxStreamDev->recv( RecvBuffVec, RecvNums, RxMetaData,
timeoutD, false );
...
Right now, the data blocks received from the two receivers have strictly
aligned time stamps:
[image: 内嵌图片 1]
However, the time difference between IQ data is irregular. In repeated
tests, the range of thetime difference of the signal at the same location
may reach thousands of sampling points.
For example, the IQ data of the two data blocks are shown in the following
figure. These two blocks are captured from the GSM downlink by two E312 in
same location, and the blocks
have the same start timestamps. In the figure, the red line is I, and
yellow line is Q.According to the GSM frequency correction burst, we can
see that the TDOA error of the two data
blocks is very large. There is no GSM frequency correction burst in the
first data block, but there is a GSM frequency correction burst in the
second data blocks(2200~2500).
[image: 内嵌图片 2]
On the other hand, we use “STREAM_MODE_NUM_SAMPS_AND_DONE” commands
to collect data, and the time difference is equally large and irregular.
We use Linux ppstest command to test the PPS of the GPS, and the display is
normal.
Our problem is that ,
best reagrds
Jon
Maybe the accuracy of PPS is not enough ?Any suggestion is welcome.
thank you.
best regards
Jon
2017-10-16 17:17 GMT+08:00 liu Jong jongliu1987@gmail.com:
Hi,all,
I'm using tow E312 to estimate the arrive time difference between received
signals.The
program is explained as follows:
uhd::usrp::multi_usrp::sptr UsrpDev = uhd::usrp::multi_usrp::make(“”);
UsrpDev->set_time_source("gpsdo");
UsrpDev->set_clock_source("internal", uhd::usrp::multi_usrp::ALL_MBOARDS);
...
uhd::stream_args_t StreamArgs;
StreamArgs.cpu_format ="fc32";
StreamArgs.channels.clear();
StreamArgs.channels.push_back(0);
uhd::rx_streamer::sptr RxStreamDev = UsrpDev->get_rx_stream(StreamArgs);
...
UsrpDev->set_rx_gain(curGain);
UsrpDev->set_rx_rate(curRxRates);
UsrpDev->set_rx_freq(tune_request, 0);
...
UsrpDev->set_time_next_pps(uhd::time_spec_t(GpsTime + 1.0));
...
uhd::stream_cmd_t CapCmdContStart( uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS
);
CapCmdContStart.stream_now = false;
CapCmdContStart.num_samps = IQ_NUMS;
CapCmdContStart.time_spec
= uhd::time_spec_t((double)nextBoardTime);
RxStreamDev->issue_stream_cmd(CapCmdContStart);
...
size_t RxNums = RxStreamDev->recv( RecvBuffVec, RecvNums, RxMetaData,
timeoutD, false );
...
Right now, the data blocks received from the two receivers have strictly
aligned time stamps:
[image: 内嵌图片 1]
However, the time difference between IQ data is irregular. In repeated
tests, the range of thetime difference of the signal at the same location
may reach thousands of sampling points.
For example, the IQ data of the two data blocks are shown in the following
figure. These two blocks are captured from the GSM downlink by two E312 in
same location, and the blocks
have the same start timestamps. In the figure, the red line is I, and
yellow line is Q.According to the GSM frequency correction burst, we can
see that the TDOA error of the two data
blocks is very large. There is no GSM frequency correction burst in the
first data block, but there is a GSM frequency correction burst in the
second data blocks(2200~2500).
[image: 内嵌图片 2]
On the other hand, we use “STREAM_MODE_NUM_SAMPS_AND_DONE” commands
to collect data, and the time difference is equally large and irregular.
We use Linux ppstest command to test the PPS of the GPS, and the display
is normal.
Our problem is that ,
best reagrds
Jon