From 73d1989f569ebfa5908ac1fce4bb1d0c67703b98 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Mon, 26 Mar 2018 19:20:00 +0200 Subject: Initial numpy FM demod --- numpy_fm_demod.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 numpy_fm_demod.py diff --git a/numpy_fm_demod.py b/numpy_fm_demod.py new file mode 100644 index 0000000..fb2c46b --- /dev/null +++ b/numpy_fm_demod.py @@ -0,0 +1,33 @@ +import numpy as np +import scipy.signal as signal + +from rtlsdr import RtlSdr + + +class NumpyFmDemod(): + ''' + Numpy-based FM signal demodulation + Based on the great tutorial by Fraida Fund + https://witestlab.poly.edu/blog/capture-and-decode-fm-radio/ + ''' + def __init__(frequency, sample_rate=1140000, sample_count=8192000, dc_offset=250000): + self.freq = int(frequency) + self.sample_rate = sample_rate + self.sample_count = sample_count + self.dc_offset = dc_offset + + def capture_samples(self): + sdr = RtlSdr() + sdr.sample_rate = self.sample_rate + sdr.center_freq = self.freq - self.dc_offset + sdr.gain = 'auto' + + samples = sdr.read_samples(self.sample_count) + sdr.close() + + self.raw_samples = np.array(samples).astype('complex64') + + +if __name__ == '__main__': + nfd = NumpyFmDemod(frequency=96.3e6) + nfd.run() -- cgit v1.3.1