Regarding Filtering Aliasing in USRP B210

Hello,

We are generating a single tone at 875MHz and we are able to see it
using
the USRP and Gnuradio while sampling at 16MHz. However, when tuning to
860MHz we see an alias tone near 859MHz; something similar occurs when
we
tune to 890MHz, we see an alias tone near 905MHz.

We tried to get rid of the aliasing by using a band-pass filter with the
following parameters:

 -Sample Rate: 16MHz
 -Low Cutoff Freq: 856MHz
 -High Cutoff Freq: 864MHz
 -Transition Bandwidth: 1MHz

But we obtained this error: “IndexError: gr_firdes check failed: 0 < fa
<=
sampling_freq / 2”. We later found that lowering the low cutoff
frequency
to 1MHz and the high cutoff frequency to 8MHz (<= sampling_freq / 2),
the
program checks pass but the GUI scope will not show any output. Are we
using
this correctly? Is there perhaps a better way to get rid of the
aliasing?

Thanks,
Matias Ponce
CellAntenna Engineer
CellAntenna Corporation

12453 NW 44th Street
Coral Springs, FL 33065

Office: 954-340-7053 ext 10251
E-mail: [email protected]
Web: http://www.cellantenna.com


View this message in context:
http://gnuradio.4.n7.nabble.com/Regarding-Filtering-Aliasing-in-USRP-B210-tp49771.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On Tue, Aug 5, 2014 at 10:07 PM, Matias [email protected] wrote:

Hello,

We are generating a single tone at 875MHz and we are able to see it using
the USRP and Gnuradio while sampling at 16MHz. However, when tuning to
860MHz we see an alias tone near 859MHz; something similar occurs when we
tune to 890MHz, we see an alias tone near 905MHz.

No amount of baseband digital filtering alone is going to fix that.
It’s part of the inherent imperfections of real world radio.

When you tune to 860M, your tone ends up at + 15M at baseband. Which
is outside of what the ADC can sample without aliasing. Now it’s going
to be attenuated because there is an analog low pass filter before the
ADC but it’s not perfect, you might still see it, especially if you
have a siggen connected directly to it (you’ll have a very low noise
floor, no real world noise).

And that +15M tone in baseband will alias to -1M which is where 859M is.

If you want to reduce that effect, the general idea is to :

  • Sample at a higher frequency
  • Use tighter analog filter at the baseband (some SDR have it
    configurable)
  • Use a digital low pass filter on the baseband data.

In the end, you might end up sampling at 32 Msps but only have 16 MHz
of usable spectrum without alias and a flat response.

Cheers,

 Sylvain

On 08/05/2014 10:07 PM, Matias wrote:

We tried to get rid of the aliasing by using a band-pass filter with the
following parameters:

 -Sample Rate: 16MHz
 -Low Cutoff Freq: 856MHz
 -High Cutoff Freq: 864MHz
 -Transition Bandwidth: 1MHz

Hey Matias,

did you put these settings in a GRC-generated filter? I’m asking because
you’re using pass-band frequency values, not baseband frequency values.

But we obtained this error: “IndexError: gr_firdes check failed: 0 < fa <=
sampling_freq / 2”. We later found that lowering the low cutoff frequency
to 1MHz and the high cutoff frequency to 8MHz (<= sampling_freq / 2), the
program checks pass but the GUI scope will not show any output. Are we using
this correctly? Is there perhaps a better way to get rid of the aliasing?

…this would also confirm my suspicion.

M