0
$\begingroup$

I have an USRP (B205mini) with an RX frequency of 900 MHz and a bandwidth of 100 MHz. I want to distinguish between two raw, unmodulated signals at respectively 875 and 925 MHz.

My approach would be to bandpass filter the output of the USRP, but I am not quite sure how to design and implement filters based on baseband IQ samples. Can anyone provide references or explanations ?

$\endgroup$
2
  • 1
    $\begingroup$ That's a very broad question. Start by researching finite impulse response filters. There are several methods that can be used to design them, which are readily described in textbooks and in Internet resources. $\endgroup$
    – Jason R
    Feb 20, 2018 at 12:53
  • $\begingroup$ The B2xx series does not have a bandwidth of 100 MHz; it can be configured for bandwidths up to 56 MHz and sampling rates up to 61.44 MS/s. $\endgroup$ Feb 20, 2018 at 18:12

2 Answers 2

1
$\begingroup$

There are many possible methods to isolate those 2 signals. You can heterodyne your IQ signal up or down by 25MHz by multiplying by a complex exponential of plus or minus that offset frequency, then baseband filter each IQ component separately with either a real FIR or real IIR low-pass filter. Or you can multiply a FIR low-pass filter kernel by those same complex exponentials. Or you can strip the poles and zeros of any canonical IIR bandpass from either the bottom or top half of the complex plane, and convert that to complex difference equation form.
Or you can use an FFT/IFFT fast convolution filter algorithm with an offset (non-complex conjugate mirrored) response. Or just use FFTs (of the complex IQ input) of moving windows to compare the negative FFT result frequency bins against the positive half bins. The latter is a common source for SDR waterfall visualizations.

etc.

$\endgroup$
1
$\begingroup$

One easy way would be to use GNU Radio, specifically GNU Radio Companion, to design your signal processing chain. GNU Radio has a large library of built-in signal processing blocks. All signal processing in GNU Radio is performed on the complex baseband version of the received signal.

You could tune the USRP to 900 MHz, then have two bandpass filters-- one centered at 25 MHz, and one at -25 MHz, then have an energy detector at the output of each band and compare the ratio between the two over time.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.