add a lowpass to improve decoding performance
This commit is contained in:
parent
473929ce97
commit
8ee5edc9f2
|
|
@ -3,7 +3,7 @@ from csdr.module.msk144 import Msk144Module, ParserAdapter
|
||||||
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, RttyDecoder, BaudotDecoder
|
from pycsdr.modules import Convert, FmDemod, Agc, TimingRecovery, DBPskDecoder, VaricodeDecoder, RttyDecoder, BaudotDecoder, Lowpass
|
||||||
from pycsdr.types import Format
|
from pycsdr.types import Format
|
||||||
from owrx.aprs.module import DirewolfModule
|
from owrx.aprs.module import DirewolfModule
|
||||||
|
|
||||||
|
|
@ -94,10 +94,12 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
||||||
# this is an assumption, we will adjust in setSampleRate
|
# this is an assumption, we will adjust in setSampleRate
|
||||||
self.sampleRate = 12000
|
self.sampleRate = 12000
|
||||||
secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate))
|
secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate))
|
||||||
|
cutoff = self.baudRate / self.sampleRate
|
||||||
workers = [
|
workers = [
|
||||||
Agc(Format.COMPLEX_FLOAT),
|
Agc(Format.COMPLEX_FLOAT),
|
||||||
FmDemod(),
|
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),
|
RttyDecoder(invert),
|
||||||
BaudotDecoder(),
|
BaudotDecoder(),
|
||||||
]
|
]
|
||||||
|
|
@ -111,4 +113,6 @@ class RttyDemodulator(SecondaryDemodulator, SecondarySelectorChain):
|
||||||
return
|
return
|
||||||
self.sampleRate = sampleRate
|
self.sampleRate = sampleRate
|
||||||
secondary_samples_per_bit = int(round(self.sampleRate / self.baudRate))
|
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))
|
||||||
|
|
|
||||||
|
|
@ -32,13 +32,13 @@ popd
|
||||||
rm -rf js8py
|
rm -rf js8py
|
||||||
|
|
||||||
git clone https://github.com/jketterl/csdr.git
|
git clone https://github.com/jketterl/csdr.git
|
||||||
# latest develop as of 2023-08-15 (rtty and baudot)
|
# latest develop as of 2023-08-16 (added lowpass)
|
||||||
cmakebuild csdr 8966688f748d04486560e973a599c26ed4297f34
|
cmakebuild csdr 64a1603c4433e79f4b6a449711bfd86f977a997b
|
||||||
|
|
||||||
git clone https://github.com/jketterl/pycsdr.git
|
git clone https://github.com/jketterl/pycsdr.git
|
||||||
cd pycsdr
|
cd pycsdr
|
||||||
# latest develop as of 2023-08-15 (rtty and baudot)
|
# latest develop as of 2023-08-16 (added lowpass)
|
||||||
git checkout 4e30b6c6a4d73ab4cf99698847c4df68e8206f73
|
git checkout eec718ae365583ebf5f315ae45967d2f635ff209
|
||||||
./setup.py install install_headers
|
./setup.py install install_headers
|
||||||
cd ..
|
cd ..
|
||||||
rm -rf pycsdr
|
rm -rf pycsdr
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue