# Regarding Filtering Aliasing in USRP B210

**URL:** <https://www.ruby-forum.com/t/regarding-filtering-aliasing-in-usrp-b210/231386>\
**Category:** GNU Radio\
**Created:** [August 5, 2014, 10:08pm UTC](https://www.ruby-forum.com/t/regarding-filtering-aliasing-in-usrp-b210/231386 "2014-08-05T22:08:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [August 5, 2014, 10:08pm UTC](https://www.ruby-forum.com/t/regarding-filtering-aliasing-in-usrp-b210/231386/1 "2014-08-05T22:08:58Z")

</div>

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: removed\_email\_address@domain.invalid  
Web: [http://www.cellantenna.com](http://www.cellantenna.com)

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

---

<div class="post-metadata">

**Author:** ![Matias](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ea924/32.png) [@Matias](https://www.ruby-forum.com/u/Matias)\
**Post date:** [August 7, 2014, 11:02am UTC](https://www.ruby-forum.com/t/regarding-filtering-aliasing-in-usrp-b210/231386/2 "2014-08-07T11:02:04Z")

</div>

On Tue, Aug 5, 2014 at 10:07 PM, Matias [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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

```

---

<div class="post-metadata">

**Author:** ![Matias](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/7ea924/32.png) [@Matias](https://www.ruby-forum.com/u/Matias)\
**Post date:** [August 7, 2014, 10:39am UTC](https://www.ruby-forum.com/t/regarding-filtering-aliasing-in-usrp-b210/231386/3 "2014-08-07T10:39:27Z")

</div>

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
