Преглед изворни кода

Add WFM de-emphasis and stabilize live audio playback

master
Jan Svabenik пре 3 дана
родитељ
комит
dd9219935e
2 измењених фајлова са 17 додато и 0 уклоњено
  1. +14
    -0
      internal/demod/fm.go
  2. +3
    -0
      web/app.js

+ 14
- 0
internal/demod/fm.go Прегледај датотеку

@@ -109,6 +109,20 @@ func RDSBaseband(iq []complex64, sampleRate int) []float32 {
return dsp.ApplyFIRReal(out, lp) return dsp.ApplyFIRReal(out, lp)
} }


func deemphasis(x []float32, sampleRate int, tau float64) []float32 {
if len(x) == 0 || sampleRate <= 0 {
return x
}
alpha := math.Exp(-1.0 / (float64(sampleRate) * tau))
out := make([]float32, len(x))
var y float64
for i, v := range x {
y = alpha*y + (1-alpha)*float64(v)
out[i] = float32(y)
}
return out
}

func init() { func init() {
Register(NFM{}) Register(NFM{})
Register(WFM{}) Register(WFM{})


+ 3
- 0
web/app.js Прегледај датотеку

@@ -92,6 +92,7 @@ const liveListenBtn = qs('liveListenBtn');


let latest = null; let latest = null;
let currentConfig = null; let currentConfig = null;
let liveAudio = null;
let stats = { buffer_samples: 0, dropped: 0, resets: 0, last_sample_ago_ms: -1 }; let stats = { buffer_samples: 0, dropped: 0, resets: 0, last_sample_ago_ms: -1 };
let gpuInfo = { available: false, active: false, error: '' }; let gpuInfo = { available: false, active: false, error: '' };


@@ -1327,3 +1328,5 @@ setInterval(loadGPU, 1000);
setInterval(() => fetchEvents(false), 2000); setInterval(() => fetchEvents(false), 2000);
setInterval(fetchRecordings, 5000); setInterval(fetchRecordings, 5000);
setInterval(loadSignals, 1500); setInterval(loadSignals, 1500);
ordings, 5000);
setInterval(loadSignals, 1500);

Loading…
Откажи
Сачувај