[Top][All Lists]

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

Re: [Discuss-gnuradio] Aliasing on USRP N210

From: Marcus Müller
Subject: Re: [Discuss-gnuradio] Aliasing on USRP N210
Date: Tue, 1 Mar 2016 11:58:27 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0

Dear Roee,

I'd like to illustrate a bit how the USRP generates spectrum from the signal you provide

1. get baseband samples from host with $f_\text{sample}$
2. upsample to $f_\text{master
      clock rate}$, suppressing aliases
3. shift digitally in frequency by multiplication with a complex sinusoid $f_\text{offset}$: $y[n] = x[n]
      \cdot e^{n\,2\pi \frac{f_\text{offset}}{f_\text{master clock
4. Digital-to-analog convert
(5. on daughterboard, mix with local oscillator generated by the daughterboard.)

On Basic and LF, 5. doesn't happen -- these daughterboards don't have an LO or a mixer. Hence, all the carrier frequency "mixing" happens in the FPGA in step 3.

Your 26.5MHz sine happens in 2.:
Upsampling from $f_\text{sample}=\SI{25}{\mega\hertz}$ to $f_\text{master
      clock rate}=\SI{100}{\mega\hertz}$ simply is padding the incoming complex sample stream with three zeros after each sample (resulting in (1+3) * 25 = 100 MHz rate); the result is very similar to what you know as imaging from Digital-to-Analog-conversion: $\frac{1}{4}$ of the spectrum represented at $f_\text{master
      clock rate}$ is the original spectrum, the rest is images of it. Since we don't want these images, we need to suppress them with a low pass filter, ideally with a cut-off frequency exactly at the $\frac{1}{4}$ of the output rate, infinite suppression above that frequency, and a perfectly ripple-free, constant gain below.

Now, real-world filters that behave like that don't exist. Instead, the USRP uses a cascade of three interpolators including anti-imaging filters that are used/disabled as required by the upsampling factor, which are concatenated in the following order:
  1. one large half band FIR interpolator (first factor of 2)
  2. one smaller half band FIR interpolator (second factor of 2)
  3. a CIC (cascaded integrator comb), which is a flexible filter/interpolator that has a FIR-like frequency response, but due to its adjustable IIR interpolation allows for nearly arbitrary factors

Since we're interpolating by 4, the CIC is disabled.
Filter 1 has the "best" (read: sharpest and flattest) frequency response, and 2. is not so much worse [1].

For the first halfband interpolator, which interpolates from 25 to 50 MHz, the 11 MHz tone and its image are $\pm 0.06$ of $\frac{f_\text{sample,higher side}}{2}$, for the second, it's only 0.03. I hence take the freedom to claim that regarding that tone, the difference of magnitude response for the second filter is insignificant (it being "flatter" in that region, and the frequency distance being half as large).

Now, roughly read from [1], the "passband-side" suppression of your tone is -1.5dB, and the stopband side is approximately -18dB, leaving us with a magnitude suppression of -16.5dB, which is pretty close to your observed spectrum (-17.2dB). The remainder might just be measurement error or the slight frequency selectivity of the analog components on the LFTX.

Hope that explains this reasonably well!

As a recommendation: Don't try to work too close to your Nyquist band edge. If necessary/applicable, just use the digital frequency shifter (step 3. from my TX chain description above) to get your desired frequency closer to what you want to see alias-free.

Best regards,

[1] Ian Buckley's plots: http://witestlab.poly.edu/~ffund/el9043/labs/images/lab2-filters.png (which he made for the RX chain, but at least for the first halfband, I know that the filter coefficients should be identical, and hence, the response should be the same, too. I think the same applies for the small half band filter.)

On 29.02.2016 22:31, Roee Bar wrote:
I am observing aliasing on the spectrum analyzer in the following simple transmission scenario:
sampling freq=25M, carrier freq=12.5MHz, and a sine wave freq=-11MHz at baseband.
I use the following command:
uhd_siggen -s 25e6 -f 12.5e6 --sine -x -11e6

I expect to see a delta at freq=1.5MHz, but there is another one freq=26.5MHz (see attached jpeg).

It occurs on LFTX or BasicTX doughterboards. When I move the sine wave from -11MHz toward zero, the aliasing gradually disappears. It appears again when moving up toward +10MHz.

Why does it happen? Can I avoid it?

Thanks in advance.

Discuss-gnuradio mailing list

reply via email to

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