import numpy as np import matplotlib.pyplot as plt import scipy as sp from rtlsdr import RtlSdr import asyncio import dsp class Spectrum(Display): def __init__(self): pass def put(self, samples): self.buffer.put(samples) def update(self): samples = self.buffer.get() spectrum = np.abs(sp.fft.fftshift(sp.fft.fft(samples)))**2 spectrum_db = dsp.db(spectrum) self.ax.clear() self.ax.plot(spectrum_db) self.ax.relim() self.ax.autoscale_view() self.fig.canvas.draw() self.fig.canvas.flush_events()