add a lowpass to improve decoding performance

This commit is contained in:
Jakob Ketterl 2023-08-16 17:07:18 +02:00
parent 473929ce97
commit 8ee5edc9f2
2 changed files with 11 additions and 7 deletions

View file

@ -3,7 +3,7 @@ from csdr.module.msk144 import Msk144Module, ParserAdapter
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, RttyDecoder, BaudotDecoder
from pycsdr.modules import Convert, FmDemod, Agc, TimingRecovery, DBPskDecoder, VaricodeDecoder, RttyDecoder, BaudotDecoder, Lowpass
from pycsdr.types import Format
from owrx.aprs.module import DirewolfModule
@ -94,10 +94,12 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
# this is an assumption, we will adjust in setSampleRate
self.sampleRate = 12000
secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate))
cutoff = self.baudRate / self.sampleRate
workers = [
Agc(Format.COMPLEX_FLOAT),
FmDemod(),
TimingRecovery(Format.FLOAT, secondary_samples_per_bit, 0.5, 2),
Lowpass(Format.FLOAT, cutoff),
TimingRecovery(Format.FLOAT, secondary_samples_per_bit, 5, 2),
RttyDecoder(invert),
BaudotDecoder(),
]
@ -111,4 +113,6 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
return
self.sampleRate = sampleRate
secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate))
self.replace(2, TimingRecovery(Format.FLOAT, secondary_samples_per_bit, 0.5, 2))
cutoff = self.baudRate / self.sampleRate
self.replace(2, Lowpass(Format.FLOAT, cutoff))
self.replace(3, TimingRecovery(Format.FLOAT, secondary_samples_per_bit, 5, 2))

View file

@ -32,13 +32,13 @@ popd
rm -rf js8py
git clone https://github.com/jketterl/csdr.git
# latest develop as of 2023-08-15 (rtty and baudot)
cmakebuild csdr 8966688f748d04486560e973a599c26ed4297f34
# latest develop as of 2023-08-16 (added lowpass)
cmakebuild csdr 64a1603c4433e79f4b6a449711bfd86f977a997b
git clone https://github.com/jketterl/pycsdr.git
cd pycsdr
# latest develop as of 2023-08-15 (rtty and baudot)
git checkout 4e30b6c6a4d73ab4cf99698847c4df68e8206f73
# latest develop as of 2023-08-16 (added lowpass)
git checkout eec718ae365583ebf5f315ae45967d2f635ff209
./setup.py install install_headers
cd ..
rm -rf pycsdr