From 68305b68dce9be5d6cb267cb3a67c544f7aa86bb Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Thu, 12 Apr 2018 13:49:07 +0300 Subject: Async fm demod sorta working --- async_fm_demod.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'async_fm_demod.py') diff --git a/async_fm_demod.py b/async_fm_demod.py index 4c291cd..b7d0da5 100644 --- a/async_fm_demod.py +++ b/async_fm_demod.py @@ -1,16 +1,41 @@ import asyncio +import numpy as np +import scipy.signal as signal + from rtlsdr import RtlSdr + async def streaming(): sdr = RtlSdr() + sdr.sample_rate = 1800000 + sdr.center_freq = 91.8e6 + + audio = None + i = 0 async for samples in sdr.stream(): - print(len(samples), samples[0], type(samples[0])) + samples = np.array(samples).astype('complex64') + samples = signal.decimate(samples, int(1800000 / 200000)) + samples = np.angle(samples[1:] * np.conj(samples[:-1])) + samples = signal.decimate(samples, int(200000 / 44100)) + samples *= 10000 - await sdr.stop() + if audio is not None: + audio = np.append(audio, samples.astype('int16')) + else: + audio = samples.astype('int16') + i += 1 + if i > 200: + break + else: + print(len(audio)) + + audio.tofile('test.out') + await sdr.stop() sdr.close() + loop = asyncio.get_event_loop() loop.run_until_complete(streaming()) -- cgit v1.3.1