From 0edd456c3ef364a3ed4dcdde59ff875a76d455ef Mon Sep 17 00:00:00 2001 From: Marat Fayzullin Date: Thu, 2 Feb 2023 21:04:23 -0500 Subject: [PATCH] Switching RTTY decoder to processing complex input. --- csdr/chain/digimodes.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/csdr/chain/digimodes.py b/csdr/chain/digimodes.py index 22143ce3..32ea6e87 100644 --- a/csdr/chain/digimodes.py +++ b/csdr/chain/digimodes.py @@ -2,7 +2,7 @@ from csdr.chain.demodulator import ServiceDemodulator, SecondaryDemodulator, Dia from owrx.audio.chopper import AudioChopper, AudioChopperParser from owrx.aprs.kiss import KissDeframer from owrx.aprs import Ax25Parser, AprsParser -from pycsdr.modules import Convert, FmDemod, Agc, TimingRecovery, DBPskDecoder, VaricodeDecoder, CwDecoder, RttyDecoder +from pycsdr.modules import Convert, FmDemod, Agc, TimingRecovery, DBPskDecoder, VaricodeDecoder, CwDecoder, RttyDecoder, Shift from pycsdr.types import Format from owrx.aprs.module import DirewolfModule from digiham.modules import FskDemodulator, PocsagDecoder @@ -108,7 +108,7 @@ class CwDemodulator(SecondaryDemodulator, SecondarySelectorChain): if sampleRate == self.sampleRate: return self.sampleRate = sampleRate - self.replace(2, CwDecoder(sampleRate, 0, int(self.baudRate))) + self.replace(1, CwDecoder(sampleRate, 0, int(self.baudRate))) class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain): @@ -118,7 +118,8 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain): self.baudRate = baudRate self.reverse = reverse workers = [ - Agc(Format.FLOAT), + Shift(self.getBandwidth() / 2.0 / self.sampleRate), + Agc(Format.COMPLEX_FLOAT), RttyDecoder(self.sampleRate, 50, int(self.targetWidth), self.baudRate, self.reverse), ] super().__init__(workers) @@ -130,5 +131,5 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain): if sampleRate == self.sampleRate: return self.sampleRate = sampleRate + self.replace(0, Shift(self.getBandwidth() / 2.0 / sampleRate)) self.replace(2, RttyDecoder(sampleRate, 50, int(self.targetWidth), self.baudRate, self.reverse)) -