I did single-tone test using USRP2 with RFX2400 and XCVR2450.
There are some undesired signals in the results.
My single-tone test is as follows:
Wired connection between USRP2 and Spectrum analyzer
Single-tone is transmitted from USRP2 using the following commands
./usrp2_siggen.py -f xxxx
./usrp2_siggen.py -f xxxx -w xxxx
For daughter board, RFX2400, XCVR2450 and Basic TX are tested
Newest GNU radio and firmware
PC specification (I’m pretty sure that the spec is good enough to
transmit single-tone stably)
– CPU: Intel core2quad processor Q9550
– Ethernet card: Intel 82567LM Gigabit LAN (PCI express slot)
– Memory: 4GB DDR2 800 MHz SDRAM memory
Except the case of Basic TX, there are some undesired signals in the
results.
So, I guess the undesired signals are generated by RFX2400 and XCVR2450,
not by mother board.
I’m afraid that the undesired signals cause some kind of distortion of
desired signal.
(In fact, when I transmit OFDM signal using XCVR2450, I fail to
demodulate the received OFDM signal)
The resulting spectrum figures are shown in the following link and I
marked
the undesired signals in the figures.
For daughter board, RFX2400, XCVR2450 and Basic TX are tested
not by mother board.
I’m afraid that the undesired signals cause some kind of distortion of
desired signal.
(In fact, when I transmit OFDM signal using XCVR2450, I fail to
demodulate the received OFDM signal)
The resulting spectrum figures are shown in the following link and I
marked
the undesired signals in the figures.
What you are seeing are normal transmitter non-idealities, including DC
offset (aka carrier feedthrough), and IQ imbalance (aka sideband
suppression. These can be improved through tuning, but they are not bad
as is. Also, on the XCVR you are seeing the phase noise skirts as well.
What you are seeing are normal transmitter non-idealities, including DC
offset (aka carrier feedthrough), and IQ imbalance (aka sideband
suppression. These can be improved through tuning, but they are not bad
as is. Also, on the XCVR you are seeing the phase noise skirts as well.
Matt
With the XCVR2450 and USRP2, we also observed that the 2MHz (at
baseband) is
appearing at (f_c-2MHz) not (f_c+2MHz) where f_c is the center
frequency. It
seems that the complex conjugate of original baseband signal is
transmitted at
XCVR2450.
We verified this with OFDM signal which is demodulated
successfully when we flip the left and right of the FFT ouput before
processing (integer frequency offset compensation, channel estimation,
etc)
at the receiver.
On Fri, Apr 24, 2009 at 12:30 AM, Yongsang K.[email protected]
wrote:
For daughter board, RFX2400, XCVR2450 and Basic TX are tested
Newest GNU radio and firmware
I [believe I] am having a similar problem with USRP rev4 and RFX2400.
Sending a QAM-modulated signal in a 2.5GHz carrier with no
synchronization gives me a lot of background noise before the actual
signal. So I am prepending a 2MHz sine wave in a separate block,
executed prior to the QAM modulation, but I cannot find the impulses
in ± 2M after the receiving USRP downconverts it from 2.5GHz.
The part of the signal which is supposed to contain the 2M wave shows
both real and imaginary sinusoidal signals, always close to DC by 3k
Hz or so. Am I missing anything?
That sounds like it could be a frequency offset between TX and RX. You
say you aren’t synchronized (which I interpret to mean you don’t lock
the clocks of the TX and RX together somehow) - do you have a costas
or similar carrier offset recovery block/process on your receiver?
On Fri, Aug 28, 2009 at 12:56 PM, Douglas
Geiger[email protected] wrote:
That sounds like it could be a frequency offset between TX and RX. You
say you aren’t synchronized (which I interpret to mean you don’t lock
the clocks of the TX and RX together somehow) - do you have a costas
or similar carrier offset recovery block/process on your receiver?
Correct, the USRPs are physically disconnected.
Right now, the graphs are:
sig_source_f → float_to_complex → head → usrp.sink_c
usrp.source_c → file_sink (on the other PC)
TX usrp sends the first 1000 cycles of a 2MHz sine wave (sig_source
with 4MS/s), then the “training graph” is disconnected and another one
with the QAM modulator kicks in. Both scripts tune to 2.5G.
The strange thing is no matter what frequency I set the sig_source to
(already tried 1.5k, 2k, 1M and 2MHz, sampling frequency 4MS/s), the
fft on matlab always shows a single impulse at aproximately -3kHz. In
the time domain, the signal is sinusoidal on both real and imaginary
parts, when I expect it to be only real since the carrier has (should
have) been removed.
On Fri, Aug 28, 2009 at 02:05:02PM -0300, Igor A. wrote:
sig_source_f -> float_to_complex -> head -> usrp.sink_c
If you’re trying to send a sine wave, this will work much better:
(Generates a complex sinusoid == exp(jwt))
sig_source_c -> head -> usrp.sink_c
Or you could use a hilbert transform to generate the quadrature
component. float_to_complex will be setting Q to zero the way you’re
using it.
If you’re trying to send a sine wave, this will work much better:
(Generates a complex sinusoid == exp(jwt))
sig_source_c → head → usrp.sink_c
Or you could use a hilbert transform to generate the quadrature
component. float_to_complex will be setting Q to zero the way you’re
using it.
Yes, setting Q to zero was the original idea. The whole point of using
a sine wave was to have a better estimation of when the QAM signal
actually started, but this “solution” gave me another problem to work
on
My question is why the received signal has sinusoidal components on
both I and Q given that the wave has been “translated” to 2.5G (upon
tx) and then back to DC (after the FPGA in rx). Should I not expect
two impulses at ± 2M? Instead, what I get is a single impulse at
aproximately -3kHz, regardless of the frequency set on the sig_source.
Eric
–
Igor A.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.