Closed JG1VPP closed 1 year ago
現状は https://github.com/nextzlog/zylo/tree/denoise にあります。実行するには、
$ git clone https://github.com/nextzlog/zylo
$ cd zylo/src/plugin/utils/chotto
$ go build
$ ./chotto
STFTの結果が見にくいと思ったので貼り付けておきます
自分はセル・オートマトンによりスペクトログラムの画像でノイズ低減とエッジ検出を行う方法を検討しています。
セル・オートマトンによるエッジ検出ですが、簡単ながら効果的ですね:
却ってノイズを助長する場合もありますが、もうゴールが見えていますね:
func (d *Decoder) spec(signal []float64) (spec [][]float64) {
spec, _ = gossp.SplitSpectrogram(d.STFT.STFT(signal))
for n := 0; n < 5; n++ {
for _, sp := range spec {
copied := make([]float64, len(sp))
copy(copied, sp)
for idx := 1; idx < len(sp)-1; idx++ {
val := copied[idx]
up := copied[idx-1]
dn := copied[idx+1]
if up > val {
sp[idx] /= 10.0
} else if dn > val {
sp[idx] /= 10.0
}
}
}
}
return
}
問題意識
モールス信号のビート音の区切りで、強力なノイズが発生し、近隣周波数に妨害を与える。このノイズを検出せず、信号周波数のみを検出するアルゴリズムを募集する。
解決方法
募集する。