Problem
activateRADE() currently sets the slice filter to the full passband edge:
- DIGU:
filterWidth(0, 3500)
- DIGL:
filterWidth(-3500, 0)
This does not match the accepted FreeDV / freedv-waveform convention. The RADE OFDM modem operates with its passband centred at 1500 Hz, with a 1500 Hz wide window — not starting from 0 Hz.
Expected behaviour
The filter should be set to match the modem's actual audio band:
| Mode |
Low |
High |
| DIGU |
+750 Hz |
+2250 Hz |
| DIGL |
−2250 Hz |
−750 Hz |
This is centre 1500 Hz ± 750 Hz, mirrored for DIGL.
Why this matters
- Correctness — the passband currently includes 0–750 Hz and 2250–3500 Hz, which the modem never uses. This lets in interference (mains hum, carrier leakage, adjacent signals) that the modem's actual audio band would exclude.
- Interference immunity — a tighter passband matched to the modem window reduces noise floor and adjacent-channel interference.
- Alignment with reference implementation — the freedv-waveform Docker container sets these exact filter edges. AetherSDR should match so both paths behave identically.
Fix
In MainWindow::activateRADE() (src/gui/MainWindow.cpp), change:
if (mode == "DIGL")
s->setFilterWidth(-3500, 0);
else
s->setFilterWidth(0, 3500);
to:
if (mode == "DIGL")
s->setFilterWidth(-2250, -750);
else
s->setFilterWidth(750, 2250);
Test plan
- Enable RADE on a USB band (e.g. 20m) — verify filter shows 750–2250 Hz in the slice filter display
- Enable RADE on an LSB band (e.g. 40m) — verify filter shows −2250 to −750 Hz
- Disable RADE — verify previous filter is restored correctly
- Confirm RADE audio path still functions end-to-end
Principle I (FlexLib / reference implementation authority).
Problem
activateRADE()currently sets the slice filter to the full passband edge:filterWidth(0, 3500)filterWidth(-3500, 0)This does not match the accepted FreeDV / freedv-waveform convention. The RADE OFDM modem operates with its passband centred at 1500 Hz, with a 1500 Hz wide window — not starting from 0 Hz.
Expected behaviour
The filter should be set to match the modem's actual audio band:
This is centre 1500 Hz ± 750 Hz, mirrored for DIGL.
Why this matters
Fix
In
MainWindow::activateRADE()(src/gui/MainWindow.cpp), change:to:
Test plan
Principle I (FlexLib / reference implementation authority).