ノイズでのトーンバーストの開始時間の推定


14

ノイズの多い信号で正弦波トーンバーストの開始時間を推定するために、どのような手法を使用できますか?

トーンバーストは既知の固定周波数(ただし未知の位相)と非常に鋭い立ち上がり時間を持ち、目標は立ち上がり時間の半分、および/またはトーンの周波数の1周期以内で開始時間を推定することです、 可能なら。S / N比が非常に低い(1未満)場合、推定手法はどのように変化しますか?

追加:トーンバーストの長さは不明ですが、立ち上がり時間と周波数周期の小さな倍数よりも長いと仮定します。

追加:DFT / FFTは、トーンの存在の可能性が非常に高いことを示しています。問題は、FFTウィンドウ内のトーン(またはおそらく同じ周波数の複数のトーンバースト)がFFTウィンドウ内で開始した場所を正確に把握すること、または現在のトーンがそのDFTウィンドウ外で開始したかどうかを判断することです。追加の時間領域データ。

レーダーパルスの検出精度は、トーンの長さが不明であり、既知の立ち上がり時間以外は変調されていないため、エッジのみがあることを除いて、必要な解像度に近くなります。狭帯域パスフィルターは立ち上がり時間を歪め、したがってエッジ到着推定の解像度を低下させます。


1
ノイズについて何か推測できますか?静止していますか?何らかの分布に従うのですか?
フォノン

2
検出器からの誤警報は望ましくありませんか?各パルスを正しく検出する確率に関する仕様はありますか?これは、フロントエンドレーダーの信号処理(簡略版)と非常によく似ています。ノイズに埋め込まれた(おそらく変調された)パルスの位置を特定し、そのパラメーターを推定します。
ジェイソンR

1
これをリアルタイムで行う必要がありますか、それともオフライン分析ですか?
ニボット

2
@ hotpaw2:このSOの回答によると、Goertzelアルゴリズムについて何が好きではなかったのですか?
ピーターK。

1
Goertzelアルゴリズムは、トーン検出に使用されます。フィルターの出力は、調整される周波数での信号の「パワー」の推定値です。しきい値を選択します。フィルター出力がこれを超えている場合、トーンが検出されています。しきい値を適切に設定すると、トーンの開始をより早く検出できます(また、誤警報を起こしやすくなります)。
ピーターK。

回答:


6

コメントで説明したように、Goertzelアルゴリズムはノイズのトーンを検出する通常の方法です。議論した後、それがあなたが何を求めているかはわかりません(開始時間が必要です)が、Goertzelアルゴリズムがあなたの問題にどのように適用されるかについて混乱があるようでしたので、私はそれを書きたいと思いましたここに。

ゲルツェルアルゴリズム

Goertzelアルゴリズムは、探しているトーンの周波数がわかっている場合(と呼びます)、適切な検出しきい値を選択できるようにノイズレベルについて妥当な考えがある場合に使用するとよいでしょう。fg

Goertzelアルゴリズムは、常に1つのFFTビンの出力を計算するものと考えることができます。

yn=eȷ2πfgnk=0nバツneȷ2πfgk

ここで、は探している周波数です。fg

ウィキペディアのページには、これを計算するより良い方法があります。

以下は、(実行可能な)Scilabによる実装の試みです。

function [y,resultr,resulti] = goertzel(f_goertzel,x)
realW = 2.0*cos(2.0*%pi*f_goertzel);
imagW = sin(2.0*%pi*f_goertzel);

d1 = 0;
d2 = 0;

for n = 0:length(x)-1,
    y(n+1) = x(n+1) + realW*d1 - d2;
    d2 = d1;
    d1 = y(n+1);
    resultr(n+1) = 0.5*realW*d1 - d2;
    resulti(n+1) = imagW*d1;
end
endfunction

およびϕ = 4.4318752の信号を考えますf=0.0239074ϕ=4.4318752

バツ=2πfn+ϕ+ϵn

ここで、はゼロ平均、単位分散ガウスホワイトノイズです。ϵn

この例では、トーンはインデックス1001の信号の3分の1から始まります。

Goertzelアルゴリズムを実行すると、図の上の2つのトレースが得られます。fg=f0.001

fg=f

4つのトレースは次のとおりです。

  • バツyfg=0.0229074
  • resあなたはltr2+resあなたはlt2
  • バツyfg=0.0239074
  • resあなたはltr2+resあなたはlt2

ご覧のとおり、関心のあるトーンは約250にピークがあります。検出しきい値をこの値の約半分(125)に設定すると、検出が行われます(平方根の値は125を超えています) )インデックス1450付近---トーン開始後の450サンプル。

このしきい値(125)は、他のケースでは検出を引き起こしません(とにかくこの実行の場合)が、その出力の最大値は115.24であるため、誤検出を取得せずにしきい値をあまり小さくすることはできません。

しきい値を116に減らすと、インデックス1401で(この実行の場合)真のケースで検出が発生しますが、より多くの誤ったアラームのリスクが発生します。

ここに画像の説明を入力してください


実行中のGoertzelフィルターは、固定長ウィンドウ内でのみ存在推定値を探している場合に適しています。損失/減衰期間のない実行中のGoertzelは、その長さにわたって帯域幅を変更し、時間の経過とともに帯域幅が狭くなると、到着時間の見積もりが悪化し、ノイズやしきい値エラーの影響を受けやすくなります。
hotpaw2

@ hotpaw2:正しい。「忘却の要素」を導入して、Goertzelを実行し続けることができますが、それ以外はすべてを記憶しています。
ピーターK。

すべてを覚えていますか?これは、再帰的な形式で実装できるFIRです。ここで見逃したものは何ですか?
オリバーチャールズワース

yn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.