----- Original Message ----- From: Martin Dvh <[EMAIL PROTECTED]> Date: Monday, April 17, 2006 3:06 pm Subject: Re: [Discuss-gnuradio] Basic USRP AM Transmission > Robert Roberts wrote: > > Hello everyone, > > > > > > I have been experimenting with the Flex400 board and have been > trying to > > implement a basic AM transmitter. I have a WFM and NFM transmitter > > working, but I cannot get the AM one to transmit correctly. The > code> below generates a much higher frequency tone. Any advice to > what I am > > doing wrong? Does my output need filtering before connecting to > the> sink? > > > > > > self.u = usrp.sink_c () # the USRP sink > > > > # Code here for setting up the USRP, omitted > > > > src = gr.file_source (gr.sizeof_float, "audio-1.dat", True) # > 440Hz tone > > file > What is the sample_rate of the audio file > What is you interpolation rate of the usrp > What is the duc frequency of your usrp.
I have the file source sampled at 32kS/s I use the following code for setting up my usrp: self.dac_rate = self.u.dac_rate() # 128 MS/s self.usrp_interp = 400 self.u.set_interp_rate(self.usrp_interp) self.usrp_rate = self.dac_rate / self.usrp_interp # 320 kS/s self.sw_interp = 10 self.audio_rate = self.usrp_rate / self.sw_interp # 32 kS/s # determine the daughterboard subdevice we're using if options.tx_subdev_spec is None: options.tx_subdev_spec = usrp.pick_tx_subdevice(self.u) m = usrp.determine_tx_mux_value(self.u, options.tx_subdev_spec) self.u.set_mux(m) self.subdev = usrp.selected_subdev(self.u, options.tx_subdev_spec) print "Using TX d'board %s" % (self.subdev.side_and_name(),) self.subdev.set_gain(self.subdev.gain_range()[1]) # set max Tx gain self.set_freq(options.freq) self.subdev.set_enable(True) # enable transmitter This is the same code I used for both a NFM and WFM transmitter, both of which appeared to transmit without problems. Sincerely, ~Chris~ > If the sample rate of your audio file is for example 48000 Herz > Then the usrp interpolation rate should be 128000000/48000 = 2666 > Which is I think way out of range for the usrp > You first have to interpolate in software to something in the range > of the usrp. > > Greetings, > Martin > > const = gr.add_const_ff (1.0) > > conv = gr.float_to_complex() > > > > > > gain = gr.multiply_const_cc (4000.0) # transmitter gain > > > > # connect it all > > > > self.connect (src, const) > > self.connect (const, conv) > > self.connect (conv, gain) > > self.connect (gain, self.u) > > > > > > > > > > Thanks, > > ~Chris~ > > > > > > > > > > _______________________________________________ > > Discuss-gnuradio mailing list > > Discuss-gnuradio@gnu.org > > http://lists.gnu.org/mailman/listinfo/discuss-gnuradio > > > > _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio