Switching RTTY decoder to processing complex input.

This commit is contained in:
Marat Fayzullin 2023-02-02 21:04:23 -05:00
parent 329df158e1
commit 0edd456c3e
1 changed files with 5 additions and 4 deletions

View File

@ -2,7 +2,7 @@ from csdr.chain.demodulator import ServiceDemodulator, SecondaryDemodulator, Dia
from owrx.audio.chopper import AudioChopper, AudioChopperParser from owrx.audio.chopper import AudioChopper, AudioChopperParser
from owrx.aprs.kiss import KissDeframer from owrx.aprs.kiss import KissDeframer
from owrx.aprs import Ax25Parser, AprsParser 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 pycsdr.types import Format
from owrx.aprs.module import DirewolfModule from owrx.aprs.module import DirewolfModule
from digiham.modules import FskDemodulator, PocsagDecoder from digiham.modules import FskDemodulator, PocsagDecoder
@ -108,7 +108,7 @@ class CwDemodulator(SecondaryDemodulator, SecondarySelectorChain):
if sampleRate == self.sampleRate: if sampleRate == self.sampleRate:
return return
self.sampleRate = sampleRate 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): class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
@ -118,7 +118,8 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
self.baudRate = baudRate self.baudRate = baudRate
self.reverse = reverse self.reverse = reverse
workers = [ 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), RttyDecoder(self.sampleRate, 50, int(self.targetWidth), self.baudRate, self.reverse),
] ]
super().__init__(workers) super().__init__(workers)
@ -130,5 +131,5 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
if sampleRate == self.sampleRate: if sampleRate == self.sampleRate:
return return
self.sampleRate = sampleRate 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)) self.replace(2, RttyDecoder(sampleRate, 50, int(self.targetWidth), self.baudRate, self.reverse))