From 02532c581e0a05c23cc4cae59e12191890803f11 Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Thu, 5 Apr 2018 12:41:18 +0300 Subject: WIP --- numpy_fm_demod.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/numpy_fm_demod.py b/numpy_fm_demod.py index f689064..bb577b9 100644 --- a/numpy_fm_demod.py +++ b/numpy_fm_demod.py @@ -24,6 +24,10 @@ class NumpyFmDemod(): self.samples = sdr.read_samples(self.sample_count) sdr.close() + def load_samples(self, filename): + with open(filename, 'rb') as f: + self.samples = f.read() + def samples_to_np(self): ''' Convert samples to a complex numpy array @@ -44,7 +48,7 @@ class NumpyFmDemod(): BANDWIDTH = 200000 # wideband FM signal is always 200kHz decimation_rate = int(self.sample_rate / BANDWIDTH) self.samples = signal.decimate(self.samples, decimation_rate) - self.sample_rate /= dec_rate + self.sample_rate /= decimation_rate def polar_discriminator(self): ''' @@ -68,8 +72,8 @@ class NumpyFmDemod(): ''' audio_freq = 44100.0 decimation_rate = int(self.sample_rate / audio_freq) - audio_rate = self.sample_rate / decimation_rate self.samples = signal.decimate(self.samples, decimation_rate) + self.sample_rate /= decimation_rate def scale_volume(self): ''' @@ -80,8 +84,7 @@ class NumpyFmDemod(): def output_file(self, filename): self.samples.astype('int16').tofile(filename) - def run(self): - self.capture_samples() + def demod(self): self.samples_to_np() self.mix_down_dc_offset() self.lowpass_filter() @@ -89,8 +92,10 @@ class NumpyFmDemod(): self.de_emphasis_filter() self.mono_decimate() self.scale_volume() - self.output_file() if __name__ == '__main__': nfd = NumpyFmDemod(frequency=96.3e6) - nfd.run() + nfd.capture_samples() + #nfd.load_samples('963fm.out') + nfd.demod() + nfd.output_file('wbfm-mono.raw') -- cgit v1.3.1