nextzlog / todo

ToDo lists for ATS-4, CW4ISR, QxSL, ZyLO.
https://nextzlog.dev
1 stars 0 forks source link

完全に無音の時の対応 #183

Closed jucky154 closed 11 months ago

jucky154 commented 11 months ago

問題意識

(以前、どこかで議論しただけなので、解決済みかもしれませんが…) リグとPCを繋ぎ、リグ側でセミブレークインでCWを送出していると、PC側の音声にはモールスの音声が入ってこず、完全に無音(信号強度が0)となる。 その際に、アプリ側は音は継続していると判断してしまうので、その際の処理を検討する必要がある。

解決方法

信号強度が完全に0になることを100ms続いたら、区切りとするという処理が必要

JG1VPP commented 11 months ago

信号の強度が完全に0になるという保証はあるのでしょうか?ちなみに、読み取った符号語が変化しなくなる瞬間を送信の終了として検出しています。

func (d *Decoder) Read(signal []float64) (result []Message) {
    for _, next := range d.Next(signal) {
        for _, prev := range d.List.Present {
            if next.Freq == prev.Freq {
                next = prev.Merge(next)
                next = d.Scan.Scan(next)
                if next.Code == prev.Code {
                    next.Miss = prev.Miss + 1
                }
            }
        }
        result = append(result, next)
    }
    d.List.Push(result)
    return
}
jucky154 commented 11 months ago

ちなみに、読み取った符号語が変化しなくなる瞬間を送信の終了として検出しています。

であればこの問題は発生しないので問題なさそうですね (よって閉めます)

完全に0になる保証はリグによるという感じですね 一応、あの録音はFTDX3000とIC7300の録音なので、あれの無音の時の信号強度が0ならば0ある程度のリグは0になると言えます