diff options
| author | Yuval Adam <_@yuv.al> | 2018-04-05 16:14:52 +0300 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2018-04-05 16:14:52 +0300 |
| commit | 5211b5d543bbdad6e5de54e4a46302c3d4f2d01f (patch) | |
| tree | 9f56618d31c2b5552cdb4226e99bb56f75f132aa /numpy_fm_demod.py | |
| parent | 02532c581e0a05c23cc4cae59e12191890803f11 (diff) | |
Final usage works
Diffstat (limited to 'numpy_fm_demod.py')
| -rw-r--r-- | numpy_fm_demod.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/numpy_fm_demod.py b/numpy_fm_demod.py index bb577b9..9d4be21 100644 --- a/numpy_fm_demod.py +++ b/numpy_fm_demod.py @@ -10,7 +10,7 @@ class NumpyFmDemod(): Based on the great tutorial by Fraida Fund https://witestlab.poly.edu/blog/capture-and-decode-fm-radio/ ''' - def __init__(self, frequency, sample_rate=1140000, sample_count=8192000, dc_offset=250000): + def __init__(self, frequency, sample_rate=1800000, sample_count=8192000, dc_offset=250000): self.freq = int(frequency) self.sample_rate = sample_rate self.sample_count = sample_count @@ -28,6 +28,10 @@ class NumpyFmDemod(): with open(filename, 'rb') as f: self.samples = f.read() + def decimate(self, rate): + self.samples = signal.decimate(self.samples, rate) + self.sample_rate /= rate + def samples_to_np(self): ''' Convert samples to a complex numpy array @@ -47,8 +51,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 /= decimation_rate + self.decimate(decimation_rate) def polar_discriminator(self): ''' @@ -72,8 +75,7 @@ class NumpyFmDemod(): ''' audio_freq = 44100.0 decimation_rate = int(self.sample_rate / audio_freq) - self.samples = signal.decimate(self.samples, decimation_rate) - self.sample_rate /= decimation_rate + self.decimate(decimation_rate) def scale_volume(self): ''' @@ -94,8 +96,8 @@ class NumpyFmDemod(): self.scale_volume() if __name__ == '__main__': - nfd = NumpyFmDemod(frequency=96.3e6) + nfd = NumpyFmDemod(frequency=91.8e6) nfd.capture_samples() #nfd.load_samples('963fm.out') nfd.demod() - nfd.output_file('wbfm-mono.raw') + nfd.output_file(f'wbfm-mono-{nfd.sample_rate}.raw') |
