I am working on a project, where in it requires the OFDM I&Q
samples of my Tx -Rx C program to be transmitted from one USRP2 to
For initial trails i am trying to transmit a text file which contain
4M I&Q Samples of SINE WAVE (1 KHz) in two separate columns.
This file containing I&Q samples i am encoding it std::complex
of 4 bytes each, .i.e., 32 bit value and using at the Tx. Similarly i
Decoding every 4 bytes of data into 16 bit I&Q samples into two separate
columns in file.
The first trail i tried was using GRC and building a simple block at the
FILE SOURCE -----> USRP2 SINK (f 1.8G, Gain:- 0db)
USRP2 SOURCE -----> FILE SINK
(f 1.8G, Gain :- 40 db)
Before i started dumping into the file, i first connected Graphical sink
the USRP2 SOURCE block(in receiver side) and started the transmitter and
checked the wave form of sine by varying the interpolation and
rates in the Tx and Rx so that , i get an exact period of the sine wave
getting transmitted, after selecting the appropriate Interpolation and
Decimation Rates, I connected the FILE SINK and captured the data.
When i plotted the Sent I&Q samples of SINE wave and received I&Q
Sine Wave in MATLAB…, I see the sine wave has come correctly, but
seems to be a cyclic time drift. The Recieved and transmitted wave are
matching perfectly at 350 samples and that point to next 350 samples the
sine wave slowly starts getting out of phase and at 350+350 sample, the
periods of the two transitted sine wave are completely out of phae by
degree, this continues in this manner,…
Samples :- 0 350 700 1050 1400
Phase shift:- 0 90 180 0 -90 -180 0 90 180 0
(Sorry i am not able to attach the resultant plot)
The same results i have been getting with various programs as specified
3)GRC block(mentioned usrp_rx_cfile.cc
Since benchmark_tx.py and benchmark_rx.py were working fantastically,
tried tapping by inserting my I&Q samples through a file in the
gr_frequency_modulator_fc.cc(gr_complex *out[i]) and receiving at the
gr_quadrature_demod_cf.cc (gr_complex *in[i]) .
Even then , the results were showing the time drift as you can see in
Can you please Help me…?
- Is this synchronization error between TWO RF’s.
2)Do i have to synchronize the two USRP2’s with a master clock using GPS
receiver ? (because in the benchmark_tx.py and benchmark_rx.py
algorithms are being used for CLOCK Recovery ( Muller & Muller), and i
not in favour of using these programs being a overhead to my programs
are processing OFDM I&Q samples.
If yes, then can you please suggest me which are the compatible GPS
available and How to connect and synchronize the USRP2’s step by step.
- Can you please suggest me are there any better ways to for me SEND
RECIEVE I&Q samples properly.?
- Also can you tell me , if my current configuration is sufficient to
utilize the maximum bandwidth and throughput of USRP2 ?
*My USRP2 Configuration and Setup:
*Two USRP2’s having RF1800 dughterboards
*First USRP2 is connected to Intel Core 2 Quad Q8400 (2.66GHz),3GB RAM
similarly Second USRP2 is connected to Intel Core 2 Quad Q 8300
RAM both are connected via inbuilt GIGABIT ethernet cards running UBUNTU
The RF of two USRP2’s are connected using 20db(2W) * 3 attenuators
to Male SMA) and 1 mtr RF cable(Male to Male). achieving an total
attenuation of 60db (as per USRP requirement).