diff options
| author | Yuval Adam <_@yuv.al> | 2018-04-05 12:41:18 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-04-05 12:41:18 +0300 |
| commit | 02532c581e0a05c23cc4cae59e12191890803f11 (patch) | |
| tree | d326c31bce673979472bd5db577fb63ac4ac74c5 /numpy_fm_demod.py | |
| parent | e9a4e0abb625cc0f65be62e8cab148d3d0c639cb (diff) | |
WIP
Diffstat (limited to 'numpy_fm_demod.py')
| -rw-r--r-- | numpy_fm_demod.py | 17 |
1 files 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') |
