[USRP-users] Getting rid of one of the sidebands on transmit

Marcus Müller marcus at hostalia.de
Wed Sep 11 11:37:29 EDT 2013


Hi Frank!
> When I try to transmit a signal that is not at baseband, I get an upper sideband and a lower sideband.
I reckon you're trying to transmit a signal that is frequency shifted 
bandpass signal; that's baseband. You actually can't do anything else 
using your daughterboard.
> How can I get rid of one of the sidebands?
Is this really what you want to do? It seems as you are trying to 
transmit a real baseband signal s_r, meaning that the spectrum S_r is 
always symmetric to the f=0 axis: (beware, ASCII art)
          ^ |S_r|
      ----|----
----/    |    \----
_________|___________>f
If you're really just trying to have your real signal on a carrier 
frequency, you might just shift it in frequency domain, giving you a 
complex signal s_c

          ^ |S_c|
  --------|
/        \----    ----
_________|____________>f
by multiplying it with exp(jt) (in time domain), before applying a low 
pass filter, cutting off any frequency that is far away from DC. That is 
equivalent to using a band-pass filter to filter out one halfband*.
> Is the data for the send() call for the tx streamer really complex?
Yes. The USRP has a two-channel I/Q DAC, therefore complex baseband is 
what you do. You really need to grep all the complex baseband theory to 
do useful stuff  with it ;)
> I am pretty sure it is from one of the tx examples.  Right now, I am processing it on the receive side to remove one of the sidebands, but I would like to get rid of it on the transmit side.
Good choice, since throwing away half your signal is wasteful in means 
of signal power and spectrum usage.
If you do know, however, how to throw away half of the baseband on the 
rx side, why don't you just do exactly the same on tx? There is no 
"mathematical" difference between samples going into and samples coming 
out of the USRP...

Greetings,
Marcus

*in fact, band passes can be constructed as frequency shifted low 
passes, which just multiplies the filter taps with exp(jt)




More information about the USRP-users mailing list