Sampling artefact because of two step mixing?

Hello everybody,

I am currently using the flex2400 board and I feed it with some designed
signals from a sophisticated signal generator. I analyse the spectrum of
interest by fft and pass all information to a file sink. I plot the file
data
in Matlab to evaluate the results.
As I feed the USRP with a single sine tone with a frequency of 2.444 GHz
and
an amplitude of -50dbm I saw on my plot a nice peak at 2.444 GHZ but
also a
second peak at 2.452 GHZ but attenuated by 15 db’s when daughter board
is
tuned to 2.452 Ghz. To verify the accuracy of the signal generator I
connected it to a high quality spectrum analyser. The spectrum analyser
verified that the output of the signal generator is a clean peak without
any
side peaks. However, the usrp_fft.py tool from the gnuradio examples
shows
the same phenomenon including the second peak.
The parameters I use in my application are :
Flex2400 daughterboard
Decimation factor 8
complex samples at 16bit I and 16 bits Q each
fft size 64 ( corresponds to 125 kHz bin resolution)

My first idea points to the effect of the second mixing in the DDC from
the
remaining frequency offset after the analog mixing in the daughterboard
tuned
the centre frequency as close as possible to baseband.
When the tune method is set to the centre frequency of 2.452 Ghz, the
flex
mixes with 2.448 GHz and the DDC with -4MHz. By mixing with a cos wave
we get
two peaks, one at (f-f0) and one at (f+f0), but both with half signal
strength. The resulting peak from mixing with the double frequency
(f+f0) can
now explain the appearance of this side peak in my plot.
But:

  1. Why is the second peak attenuated? If it is a result of mixing it
    should be
    as high as the original signal?
  2. If the assumption of the two peaks is correct, why are the assumed
    and the
    real measured peaks mirrored in other configurations (other signal
    frequency
    and center frequency of the usrp)?
  3. The flex2400 is able to tune to every frequency between 2400 and 2500
    MHz
    in steps of 1 MHZ. Why can I not tune the flex directly to the centre
    frequency without another mixing stage in the DDC? The DDC frequency is
    allways between -2 and -5.5MHz. Would this effect disappear if no second
    stage mixing is needed?

I found almost no documentation about the configuration of the DDC.
Which
filters are implemented and what are the parameters used in the logical
steps
of mixing, decimating and low pass filtering?

Is there any way to avoid this physically not existing signals and if
not is
there a detailed explanation why this phenomenon occurs in an irrational
(it
seams so) way?

I am very grateful for any advice,
Perhaps Matt and Eric are the experts in this matter. So this question
is
specially directed to you.
Thanks a lot

Luis

I have observed a similar phenomenon with the LFRX daughterboard. It
seems
there is often (or always?) a peak at DC in the baseband (USRP output)
spectrum, regardless of the tuned frequency of the USRP. I suspect it
is
due to rounding down in the CIC decimation filter. Adding a value of
e*complex(1.0,1.0) where 0.5 <= e <= 0.8 to the USRP output will cancel
it.

– Don W.

----- Original Message -----
From: “Luis Simoes” [email protected]
[snipped]

Hi Don,

the problem is that the second peaks are not at DC in baseband. For
example: I
generate a sine tone at 2.444 Ghz. Then I tune the usrp to centre
frequency
of 2.448 GHz. Now I can see the peak at -3 Mhz in base band. Ok, this is
correct because what Iam seeing is the original sine. When I tune the
USPR to
centre frequency 2.450 Ghz I see an attenuated peak at 1 MHz in baseband
what
correspond to 2.451Ghz. This second peak is 6 Mhz above the original
sine.

If I rise the gain in the usrp_fft.py tool there appear more undesired
peaks
but I am still feeding the USRP with olny one tone. If I decrease the
gain to
eliminate all secondary peaks my original signal gets too weak and it is
less
than 10 db over the noise floor.

I am trying several setting to find out what is the reason of all this.
The
last try was:
1 sine tone at 2.488 Ghz feed into USRP
The result was:
one peak at 2.488 Ghz and one alt 2.432 GHz (20 dB’s lower)
Now the secondary peak is 56 MHz away from the original tone!!!

Please, can anyone help me? I am getting desperate…

Luis