summaryrefslogtreecommitdiff
path: root/gr-digital/examples/example_timing.py
diff options
context:
space:
mode:
Diffstat (limited to 'gr-digital/examples/example_timing.py')
-rw-r--r--gr-digital/examples/example_timing.py49
1 files changed, 22 insertions, 27 deletions
diff --git a/gr-digital/examples/example_timing.py b/gr-digital/examples/example_timing.py
index 51e9e06518..d6abc36da3 100644
--- a/gr-digital/examples/example_timing.py
+++ b/gr-digital/examples/example_timing.py
@@ -31,20 +31,15 @@ from gnuradio import eng_notation
from gnuradio.eng_arg import eng_float, intx
from argparse import ArgumentParser
import sys
+import numpy
try:
- import scipy
+ from matplotlib import pyplot
except ImportError:
- print("Error: could not import scipy (http://www.scipy.org/)")
+ print("Error: could not from matplotlib import pyplot (http://matplotlib.sourceforge.net/)")
sys.exit(1)
-try:
- import pylab
-except ImportError:
- print("Error: could not import pylab (http://matplotlib.sourceforge.net/)")
- sys.exit(1)
-
-from scipy import fftpack
+from numpy.fft import fftpack
class example_timing(gr.top_block):
def __init__(self, N, sps, rolloff, ntaps, bw, noise,
@@ -59,8 +54,8 @@ class example_timing(gr.top_block):
rrc_taps_rx = filter.firdes.root_raised_cosine(
nfilts, sps*nfilts, 1.0, rolloff, ntaps*nfilts)
- data = 2.0*scipy.random.randint(0, 2, N) - 1.0
- data = scipy.exp(1j*poffset) * data
+ data = 2.0*numpy.random.randint(0, 2, N) - 1.0
+ data = numpy.exp(1j*poffset) * data
self.src = blocks.vector_source_c(data.tolist(), False)
self.rrc = filter.interp_fir_filter_ccf(sps, rrc_taps)
@@ -73,7 +68,7 @@ class example_timing(gr.top_block):
self.taps = self.clk.taps()
self.dtaps = self.clk.diff_taps()
- self.delay = int(scipy.ceil(((len(rrc_taps)-1)//2 +
+ self.delay = int(numpy.ceil(((len(rrc_taps)-1)//2 +
(len(self.taps[0])-1)//2 )//float(sps))) + 1
self.vsnk_err = blocks.vector_sink_f()
@@ -112,7 +107,7 @@ def main():
help="Set the samples per symbol [default=%(default)r]")
parser.add_argument("-r", "--rolloff", type=eng_float, default=0.35,
help="Set the rolloff factor [default=%(default)r]")
- parser.add_argument("-W", "--bandwidth", type=eng_float, default=2*scipy.pi/100.0,
+ parser.add_argument("-W", "--bandwidth", type=eng_float, default=2*numpy.pi/100.0,
help="Set the loop bandwidth (PFB) or gain (M&M) [default=%(default)r]")
parser.add_argument("-n", "--ntaps", type=int, default=45,
help="Set the number of taps in the filters [default=%(default)r]")
@@ -139,14 +134,14 @@ def main():
put.run()
if args.mode == 0:
- data_src = scipy.array(put.vsnk_src.data()[20:])
- data_clk = scipy.array(put.vsnk_clk.data()[20:])
+ data_src = numpy.array(put.vsnk_src.data()[20:])
+ data_clk = numpy.array(put.vsnk_clk.data()[20:])
- data_err = scipy.array(put.vsnk_err.data()[20:])
- data_rat = scipy.array(put.vsnk_rat.data()[20:])
- data_phs = scipy.array(put.vsnk_phs.data()[20:])
+ data_err = numpy.array(put.vsnk_err.data()[20:])
+ data_rat = numpy.array(put.vsnk_rat.data()[20:])
+ data_phs = numpy.array(put.vsnk_phs.data()[20:])
- f1 = pylab.figure(1, figsize=(12,10), facecolor='w')
+ f1 = pyplot.figure(1, figsize=(12,10), facecolor='w')
# Plot the IQ symbols
s1 = f1.add_subplot(2,2,1)
@@ -190,28 +185,28 @@ def main():
diff_taps = put.dtaps
ntaps = len(diff_taps[0])
nfilts = len(diff_taps)
- t = scipy.arange(0, ntaps*nfilts)
+ t = numpy.arange(0, ntaps*nfilts)
- f3 = pylab.figure(3, figsize=(12,10), facecolor='w')
+ f3 = pyplot.figure(3, figsize=(12,10), facecolor='w')
s31 = f3.add_subplot(2,1,1)
s32 = f3.add_subplot(2,1,2)
s31.set_title("Differential Filters")
s32.set_title("FFT of Differential Filters")
for i,d in enumerate(diff_taps):
- D = 20.0*scipy.log10(1e-20+abs(fftpack.fftshift(fftpack.fft(d, 10000))))
+ D = 20.0*numpy.log10(1e-20+abs(numpy.fft.fftshift(fftpack.fft(d, 10000))))
s31.plot(t[i::nfilts].real, d, "-o")
s32.plot(D)
s32.set_ylim([-120, 10])
# If testing the M&M clock recovery loop
else:
- data_src = scipy.array(put.vsnk_src.data()[20:])
- data_clk = scipy.array(put.vsnk_clk.data()[20:])
+ data_src = numpy.array(put.vsnk_src.data()[20:])
+ data_clk = numpy.array(put.vsnk_clk.data()[20:])
- data_err = scipy.array(put.vsnk_err.data()[20:])
+ data_err = numpy.array(put.vsnk_err.data()[20:])
- f1 = pylab.figure(1, figsize=(12,10), facecolor='w')
+ f1 = pyplot.figure(1, figsize=(12,10), facecolor='w')
# Plot the IQ symbols
s1 = f1.add_subplot(2,2,1)
@@ -239,7 +234,7 @@ def main():
s3.set_xlabel("Samples")
s3.set_ylabel("Error")
- pylab.show()
+ pyplot.show()
if __name__ == "__main__":
try: