diff --git a/commons.h b/commons.h index 17fc89d..af34b99 100644 --- a/commons.h +++ b/commons.h @@ -29,7 +29,7 @@ #define JS8C_TX_SECONDS 6 #define JS8C_START_DELAY_MS 100 -#define JS8E_IS_ULTRA 0 +#define JS8E_IS_ULTRA 1 #if JS8E_IS_ULTRA #define JS8E_SYMBOL_SAMPLES 384 #define JS8E_TX_SECONDS 4 diff --git a/lib/js8/js8e_params.f90 b/lib/js8/js8e_params.f90 index 9136299..0687aa5 100644 --- a/lib/js8/js8e_params.f90 +++ b/lib/js8/js8e_params.f90 @@ -6,7 +6,7 @@ !parameter (JZ=62) !Sync Search Space over +/- 2.5s relative to 0.5s TX start time. 2.48 = 62/4/(12000/1920) ? -! parameter (NSPS=384, NTXDUR=4, NDOWNSPS=12, NDD=125, JZ=250) ! 250 Hz 31.25 baud 60 wpm -18.0dB (1.0Eb/N0) 2.52s + parameter (NSPS=384, NTXDUR=4, NDOWNSPS=12, NDD=125, JZ=250) ! 250 Hz 31.25 baud 60 wpm -18.0dB (1.0Eb/N0) 2.52s ! parameter (NSPS=384, NTXDUR=5, NDOWNSPS=12, NDD=125, JZ=116) ! 250 Hz 31.25 baud 48 wpm -18.0dB (1.0Eb/N0) 2.52s ! parameter (NSPS=480, NTXDUR=5, NDOWNSPS=12, NDD=125, JZ=116) ! 200 Hz 25 baud 48 wpm -19.0dB (1.0Eb/N0) 3.16s ! parameter (NSPS=480, NTXDUR=6, NDOWNSPS=20, NDD=150, JZ=116) ! 200 Hz 25 baud 40 wpm -19.0dB (1.0Eb/N0) 3.16s @@ -18,7 +18,7 @@ ! parameter (NSPS=1200, NTXDUR=10, NDOWNSPS=20, NDD=100, JZ=116) ! 80 Hz 10 baud 24 wpm -23.0dB (1.0Eb/N0) 7.90s ! parameter (NSPS=1920, NTXDUR=15, NDOWNSPS=32, NDD=100, JZ=116) ! 50 Hz 6.250 baud 16 wpm -25.0dB (1.0Eb/N0) 12.64s ! parameter (NSPS=3840, NTXDUR=30, NDOWNSPS=32, NDD=94, JZ=116) ! 24 Hz 3.125 baud 8 wpm -28.0dB (1.0Eb/N0) 25.28s - parameter (NSPS=4000, NTXDUR=30, NDOWNSPS=32, NDD=90, JZ=32) ! 24 Hz 3 baud 8 wpm -28.2dB (1.0Eb/N0) 26.33s +! parameter (NSPS=4000, NTXDUR=30, NDOWNSPS=32, NDD=90, JZ=32) ! 24 Hz 3 baud 8 wpm -28.2dB (1.0Eb/N0) 26.33s parameter (AZ=12000.0/(1.0*NSPS)*0.8d0) !Dedupe overlap in Hz parameter (ASTART=0.5) !Start delay in seconds diff --git a/mainwindow.cpp b/mainwindow.cpp index e75c493..6a714de 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -4507,7 +4507,23 @@ void MainWindow::readFromStdout() //readFromStdout DecodedText decodedtext {QString::fromUtf8 (t.constData ()).remove (QRegularExpression {"\r|\n"}), "FT8" == m_mode && ui->cbVHFcontest->isChecked(), m_config.my_grid ()}; - bool bValidFrame = decodedtext.snr() > -28; + int snr = decodedtext.snr(); + bool bValidFrame = snr >= -28; + + // these are baseline thresholds for valid frames + switch(decodedtext.submode()){ + case Varicode::JS8CallNormal: + bValidFrame = snr >= -24; + case Varicode::JS8CallFast: + bValidFrame = snr >= -22; + case Varicode::JS8CallTurbo: + bValidFrame = snr >= -20; +#if JS8E_IS_ULTRA + case Varicode::JS8CallUltraSlow: + bValidFrame = snr >= -18; + break; +#endif + } // dupe check auto frame = decodedtext.message();