[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Recording I-Q stream with uhd_rx_cfile

From: Tom Rondeau
Subject: Re: [Discuss-gnuradio] Recording I-Q stream with uhd_rx_cfile
Date: Fri, 25 May 2012 13:40:10 -0400

On Thu, May 24, 2012 at 7:07 PM, Nazmul Islam
<address@hidden> wrote:
> Hello,
> I want to transmit a continuous stream of 1's or 0's (with bpsk modulation)
> and record the received I-Q stream. I am trying to use the
> 'digital_bert_tx.py' code for transmission and the uhd_rx_cfile code
> (gr-uhd/apps) for reception. Thereafter, I use the read_complex_binary code
> to read the data in Matlab.
> Surprisingly, I am receiving similar type of I-Q stream (around 0.3 + j 0.3)
> for both 1 and 0 transmission. I am using the following commands:
> self._bits = gr.vector_source_b([1,], True)                       (I either
> transmit infinite 1 or infinit 0's. When I transmit infinite 0's, I replace
> '1' by '0' in the command)
> ./digital_bert_naz_tx.py -r 5M -m bpsk -f 450M --gain 0.1
> --non-differential    (I am using non-differential since I want to see the
> different amplitude levels for '1's or 0's)
> ./uhd_rx_cfile -N 1000 -f 450M --samp-rate 5M file.dat   (Since I am using
> bpsk, sample-rate should be equal to bit rate, I assume)
> Ideally, the I-Q stream of bpsk should show 180 degree phase shift for 1 and
> 0 transmission. I am getting the same value for both transmission. Can
> anyone suggest where I am making mistakes?
> Thanks,
> Nazmul

Hard to say from this info. A few things to note on, though. First,
1000 samples isn't that much. There are startup transients in
hardware, so you might just be seeing effects of those. I'd capture
ten thousand or a million and just read out the last 1000.

Also, the transmitter and receiver are running on two different
clocks, so their frequency and phases aren't going to match, unless
you've locked them to the same source. It'd be hard to say what you'll
see, exactly, due to this. That's why we use recovery loops for all of
these things.

What I would recommend is to create a transmitter that transmits a
long string of 1's followed by a long string of 0's (100 or 200 each).
When you plot the last 1000 samples, you should see something that
moves between two amplitudes. I wouldn't trust what you see from one
run to another, so just do it at the same time.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]