From: jcorgan Date: Wed, 6 Jun 2007 00:36:25 +0000 (+0000) Subject: Added vector smoothing, removed record reversal X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=616296d9e9e091360101f7f68b0c03ec1a6e382d;p=debian%2Fgnuradio Added vector smoothing, removed record reversal git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@5699 221aa14e-8319-0410-a670-987f0aec2ac5 --- diff --git a/gr-sounder/src/python/sounder.py b/gr-sounder/src/python/sounder.py index ce00e964..7a615712 100644 --- a/gr-sounder/src/python/sounder.py +++ b/gr-sounder/src/python/sounder.py @@ -76,10 +76,11 @@ class sounder_tx: self._u._write_fpga_reg(FR_AMPL, self._amplitude) class sounder_rx: - def __init__(self,subdev_spec=None,gain=None,length=1,msgq=None,loopback=False,verbose=False,debug=False): + def __init__(self,subdev_spec=None,gain=None,length=1,alpha=1.0,msgq=None,loopback=False,verbose=False,debug=False): self._subdev_spec = subdev_spec self._gain = gain self._length = length + self._alpha = alpha self._msgq = msgq self._loopback = loopback self._verbose = verbose @@ -101,8 +102,11 @@ class sounder_rx: print "Generating impulse vectors of length", self._length, "byte length", self._vblen self._s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self._length) + if self._verbose: + print "Using smoothing alpha of", self._alpha + self._lpf = gr.single_pole_iir_filter_cc(self._alpha, self._length) self._sink = gr.message_sink(self._vblen, self._msgq, True) - self._fg.connect(self._u, self._s2v, self._sink) + self._fg.connect(self._u, self._s2v, self._lpf, self._sink) def tune(self, frequency): if self._verbose: @@ -145,7 +149,7 @@ class sounder_rx: class sounder: def __init__(self,transmit=False,receive=False,loopback=False,rx_subdev_spec=None,ampl=0x1FFF, - frequency=0.0,rx_gain=None,degree=12,length=1,msgq=None,verbose=False,debug=False): + frequency=0.0,rx_gain=None,degree=12,length=1,alpha=1.0,msgq=None,verbose=False,debug=False): self._transmit = transmit self._receive = receive self._loopback = loopback @@ -155,6 +159,7 @@ class sounder: self._rx_gain = rx_gain self._degree = degree self._length = length + self._alpha = alpha self._msgq = msgq self._verbose = verbose self._debug = debug @@ -171,8 +176,9 @@ class sounder: self._u = self._trans._u if self._receive: - self._rcvr = sounder_rx(subdev_spec=self._rx_subdev_spec,length=self._length,gain=self._rx_gain, - msgq=self._msgq,loopback=self._loopback,verbose=self._verbose, + self._rcvr = sounder_rx(subdev_spec=self._rx_subdev_spec,length=self._length, + gain=self._rx_gain,alpha=self._alpha,msgq=self._msgq, + loopback=self._loopback,verbose=self._verbose, debug=self._debug) self._u = self._rcvr._u # either receiver or transmitter object will do diff --git a/gr-sounder/src/python/usrp_sounder.py b/gr-sounder/src/python/usrp_sounder.py index 20f18711..9c3f1bee 100755 --- a/gr-sounder/src/python/usrp_sounder.py +++ b/gr-sounder/src/python/usrp_sounder.py @@ -54,6 +54,8 @@ def main(): help="enable debugging output, default is disabled") parser.add_option("-F", "--filename", default=None, help="log received impulse responses to file") + parser.add_option("", "--alpha", type="eng_float", default=1.0, + help="smoothing factor (0.0-1.0), default is %default (none)") (options, args) = parser.parse_args() @@ -78,9 +80,11 @@ def main(): print "Logging impulse records to file: ", options.filename msgq = gr.msg_queue() - s = sounder(transmit=options.transmit,receive=options.receive,loopback=options.loopback, - rx_subdev_spec=options.rx_subdev_spec,frequency=options.frequency,rx_gain=options.gain, - degree=options.degree,length=length,msgq=msgq,verbose=options.verbose,ampl=options.amplitude, + s = sounder(transmit=options.transmit,receive=options.receive, + loopback=options.loopback,rx_subdev_spec=options.rx_subdev_spec, + frequency=options.frequency,rx_gain=options.gain, + degree=options.degree,length=length,alpha=options.alpha, + msgq=msgq,verbose=options.verbose,ampl=options.amplitude, debug=options.debug) s.start() @@ -95,10 +99,8 @@ def main(): rec = msg.to_string()[:length*gr.sizeof_gr_complex] if options.debug: print "Received impulse vector of length", len(rec) - recarray = numpy.fromstring(rec, dtype=numpy.complex64) - imparray = recarray[::-1] - data = imparray.tostring() - f.write(data) + + f.write(rec) except KeyboardInterrupt: pass