From 664c6e049f6055bd5cf69762ae9dba0fb032aa50 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Tue, 15 Dec 2020 23:01:42 +0100 Subject: [PATCH] pycsdr based ffd (baby steps) --- csdr/csdr.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/csdr/csdr.py b/csdr/csdr.py index b6d4453..b4e96b5 100644 --- a/csdr/csdr.py +++ b/csdr/csdr.py @@ -35,6 +35,8 @@ from owrx.audio import AudioChopper from csdr.pipe import Pipe +from pycsdr import SocketClient, Fft, LogAveragePower, FftExchangeSides + import logging logger = logging.getLogger(__name__) @@ -754,6 +756,26 @@ class dsp(object): self.direwolf_config = None def start(self): + if self.demodulator == "fft": + with self.modification_lock: + if self.running: + return + self.running = True + + nc = SocketClient(self.nc_port) + + fft = Fft(self.fft_size, int(self.fft_block_size())) + fft.setInput(nc.getBuffer()) + + lap = LogAveragePower(-70, self.fft_size, self.fft_averages) + lap.setInput(fft.getBuffer()) + + fes = FftExchangeSides(fft_size=self.fft_size) + fes.setInput(lap.getBuffer()) + + self.output.send_output("audio", fes.getBuffer().read) + + return with self.modification_lock: if self.running: return