summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2007-06-06 00:36:25 +0000
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2007-06-06 00:36:25 +0000
commit616296d9e9e091360101f7f68b0c03ec1a6e382d (patch)
tree4d21916f4381b5ad83c3440d087165a9aa80f2f9
parente283fe844c88aa33b6bde4a7cb74f0d1c2ddbbc5 (diff)
Added vector smoothing, removed record reversal
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@5699 221aa14e-8319-0410-a670-987f0aec2ac5
-rw-r--r--gr-sounder/src/python/sounder.py16
-rwxr-xr-xgr-sounder/src/python/usrp_sounder.py16
2 files changed, 20 insertions, 12 deletions
diff --git a/gr-sounder/src/python/sounder.py b/gr-sounder/src/python/sounder.py
index ce00e964d0..7a6157125e 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 20f1871147..9c3f1bee9e 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