Hello:
How can I get SSB modulation with the USRP2?
Currently I have a Signal Source producing a sine wave, and I’ve
connected it into a USRP2 Sink. The spectrum of the output shows the
upper sideband, the lower sideband, and the carrier. For example, if my
tone is 1 MHz and I tune the USRP2 Sink to 900 MHz, then I see spikes at
901 MHz, 900 MHz, and 899 MHz.
I’d like to just get the upper sideband. The Signal Source outputs
complex samples. I tried changing its output to float, and using a
float-to-complex converter to input into the USRP2 Sink, but that didn’t
work. How can I do this?
Also, for some reason, the lower sideband is of a lower magnitude than
the upper sideband. Why is this? Shouldn’t they be of equal magnitude?
Thanks for your help.
Steve McMahon
On 12/18/2010 04:07 PM, Steve M. wrote:
Thanks for your help.
Steve McMahon
http://www.sbrac.org/files/ssb_xmitter.grc
This does a narrow-band SSB transmitter using an audio source, and you
can select upper or lower sideband. It uses the
filter method.
–
Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
Steve M. wrote in post #969326:
Also, for some reason, the lower sideband is of a lower magnitude than
the upper sideband. Why is this? Shouldn’t they be of equal magnitude?
How many dBc is the 899 MHz image below the 901 MHz tone? -40 dBc? You
are driving the USRP with a complex sinusoid; e^jw1 * e^jw2 = e^j(w1+w2)
where w1=1 MHz and w2=900 MHz. You should be getting a SSB signal at
901 MHz, but you can only get so much image rejection and carrier
supression from the I/Q modulator on the WBX. You would actually have
to drive the USRP with an IF; 11 MHz + 890 MHz gives you 901 MHz but
puts the image and carrier far enough away to hardware filter.
I suppose you could also offset the NCO within the FPGA by 20 MHz, that
way you can still drive the USRP with 1 MHz and not have to use a crazy
amount of baseband bandwidth just for a sinusoid.
Hello Marcus:
Thanks a lot for providing the GRC file. I did not realize it was so
complicated to create a SSB-modulated signal. I thought it might be a
parameter of the USRP2 Sink block.
So the USRP2 Sink will always generate a full-modulated (both upper- and
lower-sideband) signal? Because it inputs complex values?
Steve McMahon
On 12/20/2010 03:26 PM, Steve M. wrote:
Hello Marcus:
Thanks a lot for providing the GRC file. I did not realize it was so complicated
to create a SSB-modulated signal. I thought it might be a parameter of the USRP2
Sink block.
So the USRP2 Sink will always generate a full-modulated (both upper- and
lower-sideband) signal? Because it inputs complex values?
Steve McMahon
The USRP2/USRP1/N200/N210/E100/future hardware “knows” nothing about
modulation at all. It faithfully reproduces whatever
you give it in the complex stream going into it, and possibly both
digital and analog up-converts it to the desired place in the
spectrum, but it knows nothing about modulation at all.
Any time you mix two signals (multiply them), you end up with upper and
lower sidebands. Conceptually, AM is a process whereby
the modulation signal (audio) is simply mixed (multiplied) with the
carrier and sent on its way. This produces the carrier and
the two sidebands. With SSB (Single SideBand), you lop off one of
those sidebands and the carrier.
There are a few extant methods for generating SSB signals–the so-called
“filter method” is the one I’ve used in my flow-graph, since
it’s easy to understand once you realize that SSB is nothing more
than a lobotomised AM signal. There is also the so-called
“phasing” method which is used in analog SSB transmitters.
–
Marcus L.
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
I just verified with my spec-an that driving the USRP with a complex
cosine source does indeed yield a DSB signal. The cosine signal source
generates cos(wt)+j0, however, wouldn’t it be better if it generates
cos(wt)+jsin(wt)? A complex sine source should generate
sin(wt)-jcos(wt). If you wire together cos(wt)+j*sin(wt) you do indeed
get a SSB signal with 44 dBc carrier suppression and 50 dBc image
suppression; USRP2 + WBX. After all, if one is requesting a complex
sinusoid, one should get that. If one wants a real sinusoid, select a
float output.