[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] usb and lsb transmission
From: |
Matteo Campanella |
Subject: |
[Discuss-gnuradio] usb and lsb transmission |
Date: |
Sat, 11 Mar 2006 19:53:25 +0100 |
Today i dedicated my spare time to the tx basci board, experimenting with
usb, lsb and am signal synth.
The idea was tp get voice from pc microphone and usb or lsb modulate it. I
used a phasing modulator, based on the code excerpt reported below;
basically I apply a pass band to the float source, then an hilbert filter
followed by a software interpolation, to finish with the usrp interpolating
the final jump to 128MS.
To my surprise, I got USB with this graph, and i had to conjugate the output
of the hilbert filter to get the LSB.
That is because in my mind i had modelized the tx path of the usrp as the
usual NCO (sine and cosine) multiplied by the real and imaginary stream
arriving from usb and an ADDER in the end. Now, from what I recall, if I sum
I should get LSB and if I subtract i should get USB; here it looks like it
behaves the other way around. Any explanation for that?
ciao
Matteo iz2eeq
audio_rate = 32000
sw_interp = 8
usrp_interp = 512
fg = gr.flow_graph ()
ampl = 20000
src0 = gr.sig_source_f (audio_rate, gr.GR_SIN_WAVE, 700 , ampl)
src2 = audio.source(audio_rate)
moni = audio.sink(audio_rate)
gain = gr.multiply_const_ff (20000)
interp_taps = gr.firdes.band_pass (sw_interp,
audio_rate*sw_interp,
300,
3300,
1000,
gr.firdes.WIN_HANN)
print len(interp_taps)
hilb_taps = gr.firdes.hilbert(199)
hilb_filt = gr.filter_delay_fc(hilb_taps)
interp = gr.interp_fir_filter_ccf (sw_interp, interp_taps)
conj = gr.conjugate_cc()
u = usrp.sink_c (0, usrp_interp)
tx_subdev_spec = usrp.pick_tx_subdevice(u)
m = usrp.determine_tx_mux_value(u, tx_subdev_spec)
print "mux = %#04x" % (m,)
u.set_mux(m)
subdev = usrp.selected_subdev(u, tx_subdev_spec)
print "Using TX d'board %s" % (subdev.side_and_name(),)
print "Gain Range %s" % (subdev.gain_range(),)
u.set_tx_freq (0, cordic_freq)
u.set_pga(0,0)
fg.connect (src2, gain)
fg.connect (gain, hilb_filt)
#fg.connect (src1,hilb_filt)
fg.connect (hilb_filt,interp)
fg.connect (interp,conj)
fg.connect (conj,u) #LSB
#fg.connect (interp, u) #USB
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] usb and lsb transmission,
Matteo Campanella <=