瀏覽代碼

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)
}

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() {
Register(NFM{})
Register(WFM{})


+ 3
- 0
web/app.js 查看文件

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

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

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

Loading…
取消
儲存