# Bandpass Sampling

**URL:** <https://www.ruby-forum.com/t/bandpass-sampling/233374>\
**Category:** GNU Radio\
**Created:** [December 8, 2014, 8:24pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374 "2014-12-08T20:24:18Z")\
**Posts on this page:** 7\
**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:** [December 8, 2014, 8:24pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/1 "2014-12-08T20:24:18Z")

</div>

I have a binary FSK signal centered at 300 MHz with 160 kHz offset peaks  
from the center freak. Therefore the lowest signal frequency of interest  
is  
300-0.16 = 299.84 MHz and the highest is 300.16 MHz.

I know the maximum sampling rate of the USRPN210 ADC is 100 MSPS. If the  
USRP uses that sample rate of 100 MSPS, it will alias my signal onto  
itself  
in an unwanted manor.

My question is, how does the USRPN210 decide what sample rate to set the  
ADC to? Is it a function of both the center frequency and the sample  
rate  
setting of the UHD source block?

Thanks,  
Rich

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 8, 2014, 8:29pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/2 "2014-12-08T20:29:49Z")

</div>

The N2xx series use a fixed sample rate, so there’s no “deciding what  
sample rate to use based on Fc”.

There’s also the analog bandwidth of the ADC to consider. If you aren’t  
going to use a downconverter card, then the analog bandwidth of the ADC  
will start to roll-off at some point, so even if you narrowband filter  
your input signal to remove aliasing possibilities, you will end up in  
the roll-off skirts of the analog bandwidth of the ADC.

Is there some reason not to use a downconverter card, like the WBX for  
your application?

On 2014-12-08 14:23, Richard B. wrote:

> Discuss-gnuradio mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [Discuss-gnuradio Info Page](https://lists.gnu.org/mailman/listinfo/discuss-gnuradio) [1]

Links:

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 8, 2014, 8:39pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/3 "2014-12-08T20:39:38Z")

</div>

Hi Rich,

just a hint first: this is an interesting question, but it’s very  
USRP-centric; there’s the usrp-users mailing list especially for  
USRP-related things, which I find quite interesting, most of the time  
[1] 🙂

The N210 is a modular USRP, meaning that the mixing is usually done on a  
daughterboard, which will usually actually take your input signal and  
bring it down to baseband. Therefore, the ADC always sees -50MHz to  
+50MHz of signal (it’s a complex sampling ADC, hence the negative  
frequencies), and all daughterboards for the N2x0 are limited to a 40MHz  
baseband bandwidth, so there is no aliasing (^1).

The N2x0 architecture _always_ uses the 100MHz sampling rate on RX, and  
the user is free to choose any integer fraction of that rate (^2). Using  
digital filtering and decimation, the 100MHz Nyquist bandwidth is  
reduced to the desired sampling rate.

Thus, in usual operation, your daughterboard will be tuned, to generate  
a 300MHz (complex) tone, with which it mixes your signal down to -160kHz  
and 160kHz, which you will see with any sampling rate \>320kHz. You are  
free to specify which frequency the daughterboard tunes to, so you can  
also tune to let’s say 295MHz and see your signal at 5MHz ± 160kHz,  
although you’ll need to use a much higher sampling rate, for example  
100MHz/18~=5.56MHz, or your signal will be filtered out.

I hope that answered your question 🙂

Greetings,  
Marcus

^1 there’s the exception of the basicRX daughterboard, which neither  
mixes nor has the 40MHz low pass characteristics; if you use that, you  
will have to make sure that your signal fits into the ADC’s bandwidth,  
otherwise you _will_ see images.  
^2 as long as the resulting rate fits through gigabit ethernet, ie.  
25MS/s for 16bit, 50MS/s for 8bit max.  
[1] [http://lists.ettus.com/mailman/listinfo/usrp-users\_lists.ettus.com](http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 8, 2014, 8:58pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/4 "2014-12-08T20:58:39Z")

</div>

I think Marcus answered my question. Thank you.

On Mon, Dec 8, 2014 at 11:53 AM, Richard B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 8, 2014, 9:26pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/5 "2014-12-08T21:26:16Z")

</div>

There’s so much Marcus in here 😉 so here’s my answer: usually, you’d  
use the USRP+WBX as direct conversion receiver, not an IF one.

Regarding WBX documentation: have you seen the performance measurements  
[1], and the UHD manual [2]?

Is there some specific information you’re missing?

Best regards,  
Marcus

PS: if you’d agree, I’d like to shift this discussion to  
removed\_email\_address@domain.invalid .

[1] [files.ettus.com:/performance\_data/wbx/](http://files.ettus.com/performance_data/wbx/)  
[2] [USRP Hardware Driver and USRP Manual: Daughterboards](http://files.ettus.com/manual/page_dboards.html#dboards_wbx)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 9, 2014, 2:02am UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/6 "2014-12-09T02:02:05Z")

</div>

I’ve seen the the UHD manual but not the performance measures doc. It is  
not opening for me. If it has a block diagram of the WBX board, then  
that  
is what I was looking for.

There is no more information I need at this time. Your previous answer  
was  
helpful and what I was looking for.

Yes you can move this to the usrp list.

Thanks again,  
Rich

On Mon, Dec 8, 2014 at 12:24 PM, Marcus Müller  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![reback](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/b5ac83/32.png) [@reback](https://www.ruby-forum.com/u/reback)\
**Post date:** [December 8, 2014, 8:54pm UTC](https://www.ruby-forum.com/t/bandpass-sampling/233374/7 "2014-12-08T20:54:22Z")

</div>

I’m apologize. I am using a WBX card.

I forgot to mention that I’ve been looking for a datasheet for the WBX,  
but  
all I can find is the PCB schematic doc on the ettus website which isn’t  
very useful. So I don’t know what the IF frequency coming out of the WBX  
is. Does the WBX tune itself given the UHD source settings so that the  
IF  
it produces is proper for the USRP ADC?

Rich
