Repository navigation
AGC-T zeigte 98 dB daneben; NR1 kostet gemessen 10 dB - #438
Merged
Merged
Conversation
Betreiber am 2026-11-12: "lautstärke ist sehr leise, sobald ich auf nr1 klicke, wird es zu leise!" Gemessen am echten WDSP (tests/tst_nr1_pegel_und_agc_schwelle.cpp): NR1 hinter der AGC -10,2 dB NR1 vor der AGC -8,7 dB AGC: 90 dB Maximalverstärkung -> Schwelle -117,5 dBm AGC: Schwelle -21 dBm -> Maximalverstärkung -6,5 dB Schwelle und Maximalverstärkung sind in wcpAGC.c dieselbe Größe (max_gain). Longpath hielt dafür zwei Zahlen: AgcMaxGain 90 und AgcThreshold -20. WDSP stand auf 90, die Anzeige auf -20 -- 98 dB auseinander, beides gleichzeitig auf dem Schirm. Ein einziger Zug am AGC-T-Regler schrieb die -20 wirklich hinein und riss den Empfänger um 96 dB ein; dass es bisher meist gutging, lag nur an der Gleichheitsschranke in setAgcThreshold, deren eigener Anfangswert zufällig auch -20 ist. Jetzt wird die Schwelle ABGELEITET statt gespeichert geschrieben: RxChannel::setzeMaxVerstaerkungUndMeldeSchwelle setzt die Maximalverstärkung (ohne Gleichheitsschranke) und meldet die Schwelle, die WDSP dazu ausrechnet. Verbindungsweg, Setup-Regler und der Zug am AGC-T-Regler ziehen die jeweils andere Zahl nach. Fünf Prüffälle, alle sechs AGC-Prüfstände grün. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Betreiber am 2026-11-12: „lautstärke ist sehr leise, sobald ich auf nr1 klicke, wird es zu leise!"
Gemessen, nicht vermutet
Neuer Messstand
tests/tst_nr1_pegel_und_agc_schwelle.cppfährt einen echten WDSP-Empfangskanal (USB, 150–3000 Hz, AGC Med, AF 50) mit Ton und Rauschen:rx_anr_position = 1)Der NR1-Verlust ist WDSPs LMS ohne Nachverstärkung; Thetis verhält sich gleich. Die Positionsumstellung bringt 1,5 dB und lohnt nicht.
Der Fehler
wcpAGC.ckennt nur eine Größe,max_gain. Longpath hielt dafür zwei gespeicherte Zahlen nebeneinander:AgcMaxGain90 undAgcThreshold−20. WDSP stand auf 90 dB, die Anzeige auf −20 dBm — 98 dB auseinander, beides gleichzeitig auf dem Schirm.Dass es meist gutging, lag allein an der Gleichheitsschranke in
setAgcThreshold, deren eigener Anfangswert zufällig auch −20 ist. Ein einziger Zug am AGC-T-Regler schreibt den Wert wirklich hinein und reißt den Empfänger um 96 dB ein — und das bleibt so, bis jemand die Maximalverstärkung neu setzt.Die Behebung
RxChannel::setzeMaxVerstaerkungUndMeldeSchwellesetzt die Maximalverstärkung — bewusst ohne Gleichheitsschranke — und meldet die Schwelle zurück, die WDSP dazu ausrechnet. Die Schwelle wird also abgeleitet statt gespeichert geschrieben. Drei Stellen ziehen nach:RadioModel, Scheibe A): statt des gespeichertenagcThresholddie abgeleitete Zahl in die AnzeigerfGainGeprüft
ctest -R agc)tools/syntax_check.sh, Pre-Commit-Kette und die vier übrigen Prüfskripte grünFalle für den nächsten: ohne vorheriges
setAnrTuningnimmt WDSP seine eigenen ANR-Werte, und der NR1-Verlust misst sich zu −17,5 dB statt −10,2.🤖 Generated with Claude Code