feat: Implemented UDP Outbound Adif message, freq to pstrotator
This commit is contained in:
@@ -325,15 +325,12 @@ func (d *Decoder) endMark(hops int) {
|
||||
}
|
||||
|
||||
// adaptDot nudges the dot-length estimate toward an observation (EMA, clamped
|
||||
// to ~5–100 WPM). The first marks of a new signal adapt FAST so the WPM (and
|
||||
// therefore the character/word gap thresholds) converge within the first
|
||||
// character or two — otherwise a wrong seed mis-times early gaps and runs
|
||||
// characters/words together.
|
||||
// to ~5–60 WPM). The EMA is deliberately GENTLE (0.2) and NOT accelerated on the
|
||||
// opening marks: a fast alpha let short noise blips (misclassified as dots) drag
|
||||
// the dot-length down to the clamp within a few marks — the "60 WPM, all dits"
|
||||
// garbage. The slow EMA is self-correcting because genuine marks pull it back up.
|
||||
func (d *Decoder) adaptDot(obs float64) {
|
||||
alpha := 0.2
|
||||
if d.markCount < 6 {
|
||||
alpha = 0.5 // fast convergence on the opening marks
|
||||
}
|
||||
const alpha = 0.2
|
||||
d.markCount++
|
||||
d.dotHops = d.dotHops*(1-alpha) + obs*alpha
|
||||
if d.dotHops < 5 { // 5 hops ≈ 60 WPM ceiling — never 100
|
||||
|
||||
Reference in New Issue
Block a user