discuss-gnuradio
[Top][All Lists]
Advanced

[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






reply via email to

[Prev in Thread] Current Thread [Next in Thread]