summaryrefslogtreecommitdiff
path: root/gr-filter/examples/decimate.py
diff options
context:
space:
mode:
authorMarcus Müller <marcus@hostalia.de>2018-08-24 23:00:55 +0200
committerMarcus Müller <marcus@hostalia.de>2018-11-02 22:15:53 +0100
commit797994a11ac5ec6bee9ea01c092947d0c34115f1 (patch)
tree7381f53008ba56e6b93398fa92be482d12da4f43 /gr-filter/examples/decimate.py
parente07751acc8424f4dd987f79c32dd247ed347902c (diff)
Replace scipy/pylab where numpy/pyplot is sufficient
This should reduce the number of times users are prompted to install pylab || scipy when they'd actually get away with functionality fully contained in numpy and matplotlib. This only solves the obvious cases. There's some usage of `pylab.mlab` that would need more than 20s of consideration.
Diffstat (limited to 'gr-filter/examples/decimate.py')
-rw-r--r--gr-filter/examples/decimate.py37
1 files changed, 16 insertions, 21 deletions
diff --git a/gr-filter/examples/decimate.py b/gr-filter/examples/decimate.py
index fb37d8047e..7ebd5a28ed 100644
--- a/gr-filter/examples/decimate.py
+++ b/gr-filter/examples/decimate.py
@@ -27,6 +27,7 @@ from gnuradio import gr
from gnuradio import blocks
from gnuradio import filter
import sys, time
+import numpy
try:
from gnuradio import analog
@@ -34,16 +35,10 @@ except ImportError:
sys.stderr.write("Error: Program requires gr-analog.\n")
sys.exit(1)
-try:
- import scipy
- from scipy import fftpack
-except ImportError:
- sys.stderr.write("Error: Program requires scipy (see: www.scipy.org).\n")
- sys.exit(1)
try:
- import pylab
- from pylab import mlab
+ from matplotlib import pyplot
+ from matplotlib import pyplot as mlab
except ImportError:
sys.stderr.write("Error: Program requires matplotlib (see: matplotlib.sourceforge.net).\n")
sys.exit(1)
@@ -63,7 +58,7 @@ class pfb_top_block(gr.top_block):
window=filter.firdes.WIN_BLACKMAN_hARRIS)
# Calculate the number of taps per channel for our own information
- tpc = scipy.ceil(float(len(self._taps)) / float(self._decim))
+ tpc = numpy.ceil(float(len(self._taps)) / float(self._decim))
print("Number of taps: ", len(self._taps))
print("Number of filters: ", self._decim)
print("Taps per channel: ", tpc)
@@ -106,14 +101,14 @@ def main():
print("Run time: %f" % (tend - tstart))
if 1:
- fig1 = pylab.figure(1, figsize=(16,9))
- fig2 = pylab.figure(2, figsize=(16,9))
+ fig1 = pyplot.figure(1, figsize=(16,9))
+ fig2 = pyplot.figure(2, figsize=(16,9))
Ns = 10000
Ne = 10000
fftlen = 8192
- winfunc = scipy.blackman
+ winfunc = numpy.blackman
fs = tb._fs
# Plot the input to the decimator
@@ -124,8 +119,8 @@ def main():
X,freq = mlab.psd(d, NFFT=fftlen, noverlap=fftlen / 4, Fs=fs,
window = lambda d: d*winfunc(fftlen),
scale_by_freq=True)
- X_in = 10.0*scipy.log10(abs(fftpack.fftshift(X)))
- f_in = scipy.arange(-fs / 2.0, fs / 2.0, fs / float(X_in.size))
+ X_in = 10.0*numpy.log10(abs(numpy.fft.fftshift(X)))
+ f_in = numpy.arange(-fs / 2.0, fs / 2.0, fs / float(X_in.size))
p1_f = sp1_f.plot(f_in, X_in, "b")
sp1_f.set_xlim([min(f_in), max(f_in)+1])
sp1_f.set_ylim([-200.0, 50.0])
@@ -137,8 +132,8 @@ def main():
Ts = 1.0 / fs
Tmax = len(d)*Ts
- t_in = scipy.arange(0, Tmax, Ts)
- x_in = scipy.array(d)
+ t_in = numpy.arange(0, Tmax, Ts)
+ x_in = numpy.array(d)
sp1_t = fig1.add_subplot(2, 1, 2)
p1_t = sp1_t.plot(t_in, x_in.real, "b")
p1_t = sp1_t.plot(t_in, x_in.imag, "r")
@@ -156,8 +151,8 @@ def main():
X,freq = mlab.psd(d, NFFT=fftlen, noverlap=fftlen / 4, Fs=fs_o,
window = lambda d: d*winfunc(fftlen),
scale_by_freq=True)
- X_o = 10.0*scipy.log10(abs(fftpack.fftshift(X)))
- f_o = scipy.arange(-fs_o / 2.0, fs_o / 2.0, fs_o / float(X_o.size))
+ X_o = 10.0*numpy.log10(abs(numpy.fft.fftshift(X)))
+ f_o = numpy.arange(-fs_o / 2.0, fs_o / 2.0, fs_o / float(X_o.size))
p2_f = sp2_f.plot(f_o, X_o, "b")
sp2_f.set_xlim([min(f_o), max(f_o)+1])
sp2_f.set_ylim([-200.0, 50.0])
@@ -170,8 +165,8 @@ def main():
Ts_o = 1.0 / fs_o
Tmax_o = len(d)*Ts_o
- x_o = scipy.array(d)
- t_o = scipy.arange(0, Tmax_o, Ts_o)
+ x_o = numpy.array(d)
+ t_o = numpy.arange(0, Tmax_o, Ts_o)
sp2_t = fig2.add_subplot(2, 1, 2)
p2_t = sp2_t.plot(t_o, x_o.real, "b-o")
p2_t = sp2_t.plot(t_o, x_o.imag, "r-o")
@@ -180,7 +175,7 @@ def main():
sp2_t.set_xlabel("Time (s)")
sp2_t.set_ylabel("Amplitude")
- pylab.show()
+ pyplot.show()
if __name__ == "__main__":