From b484d4b751bc08e9324425eadd269e85932f7149 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Sun, 17 Jan 2010 19:18:39 -0500 Subject: Playing with using the resampler to allow any bit rate requested. --- gnuradio-examples/python/digital/usrp_transmit_path.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'gnuradio-examples/python') diff --git a/gnuradio-examples/python/digital/usrp_transmit_path.py b/gnuradio-examples/python/digital/usrp_transmit_path.py index ad9f741a6..ee63dcd2b 100644 --- a/gnuradio-examples/python/digital/usrp_transmit_path.py +++ b/gnuradio-examples/python/digital/usrp_transmit_path.py @@ -62,12 +62,18 @@ class usrp_transmit_path(gr.hier_block2): for attr in dir(tx_path): #forward the methods if not attr.startswith('_') and not hasattr(self, attr): setattr(self, attr, getattr(tx_path, attr)) + #setup usrp self._modulator_class = modulator_class self._setup_usrp_sink(options) - #connect - self.connect(tx_path, self.u) + # Set up resampler based on rate determined by _setup_usrp_sink + rs_taps = gr.firdes.low_pass_2(32, 32, 0.45, 0.1, 60) + self.resampler = gr.pfb_arb_resampler_ccf(self.rs_rate, rs_taps) + + #connect + self.connect(tx_path, self.resampler, self.u) + def _setup_usrp_sink(self, options): """ Creates a USRP sink, determines the settings for best bitrate, @@ -75,6 +81,7 @@ class usrp_transmit_path(gr.hier_block2): """ self.u = usrp_options.create_usrp_sink(options) dac_rate = self.u.dac_rate() + self.rs_rate = options.bitrate # Store requested bit rate if options.verbose: print 'USRP Sink:', self.u (self._bitrate, self._samples_per_symbol, self._interp) = \ @@ -82,6 +89,10 @@ class usrp_transmit_path(gr.hier_block2): options.samples_per_symbol, options.interp, dac_rate, \ self.u.get_interp_rates()) + # Calculate resampler rate based on requested and actual rates + self.rs_rate = self._bitrate / self.rs_rate + print "Resampling by %f to get bitrate of %ssps" % (self.rs_rate, eng_notation.num_to_str(self._bitrate/self.rs_rate)) + self.u.set_interp(self._interp) self.u.set_auto_tr(True) -- cgit