[USRP-users] Getting rid of one of the sidebands on transmit
marcus at hostalia.de
Wed Sep 11 11:37:29 EDT 2013
> 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)
----/ | \----
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
/ \---- ----
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...
*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