信号の平滑化/データストリームのバンプの検出


11

(編集:この質問は、生のWAVからのバイナリ磁気ストリップカードデータの抽出から続きます

これが私の信号です(上の行)と基本的なIIRフィルターが適用されています(下の行)

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

(編集:私のタスクは、信号をバイナリ0(周波数F)とバイナリ1(周波数2F)に分割することです-これがF2Fと呼ばれる理由です。したがって、誤ったピークが発生しないように処理する必要があります。スクリーンショットはそれを些細に見えるようにします、二重ピークを取得する潜在的な問題があり、実際のピーク間の谷で偽陽性を取得する可能性もあります。)

私の質問は、この信号を平滑化するために利用できる方法は何ですか?IIRは私の最善の策ですか?

私は少なくとも3つの可能性を見ることができます:

  • IIR y [n] = 0.9 * y [n-1] + 0.1 * x [n]ここで、x <0の場合、y [x] = 0

  • 移動/ウィンドウ平均-面積1.0のベル曲線を周囲に配置し、両側をw = 10サンプルと統合し、bellSmooth(x)= integral [xw、x + w] {bell(k).samp(k)} dk

  • 予想される周波数とFFTを決定する/高次のビンを削除する/逆FFT

私は自分の質問に答えたかもしれませんが、おそらくこれは不完全であり、間違った用語を使用していると確信しています。また、私は長所と短所を実際に予測することはできません。最後の方法は、基本的な信号周波数の知識を必要とするため、あまり魅力的ではありません。しかし、2番目の方法も同様です。適切なウィンドウの長さを選択する必要があります。

他の方法はありますか?


6
保持/測定しようとしている元の信号の特性は何ですか?たとえば、ピークポイント間のタイミング、ピークの高さ、しきい値を超える時間など、他に何かありますか?
Martin Thompson、

ピーク間のタイミング...そしてこれはあまり正確である必要はありません-F2F信号です(質問を修正して信号源を参照し、コンテキストを示します)
P i

これはオンラインまたはオフライン処理用ですか?

私の論文のトピックは、データストリームのノイズの平滑化です。この記事またはトピックが好きですか?

回答:


6

平均化の影響

移動平均フィルターを使用すると、信号の不規則性が滑らかになります。ノイズはE / Nになります。Nは移動平均フィルターの長さです。MAを使用することの副作用は、信号のピークが広く、浅くなることです。

さらに、信号の周波数成分が変化します。時間領域の移動平均フィルターは、周波数領域信号をsinc関数でたたみ込み、すべてが不鮮明になるのと同じことです。

ピーク検出アルゴリズム ピーク検出は、9/10のエンジニアリング問題でよくある問題です。(実際にはそうではありませんが、TONはそれらに依存しています)

通常、これは次のようになります。

中央値しきい値

1) Look for all peaks in your signal. (i.e., a point that is larger than the two
   adjacent points
2) take this list of points and for each one of them compute:
   med_threshold = median(Peak,Width) + constantThresholmedian   where median is the
   median value of the data centered at "Peak" with Width being the number of 
   points to look at.
       a) The Width(usually written as Lambda in literature) and constantThreshold
          (usually written as C) are determined by trial and error and using the ROC
          curve (Acronym below)
3) if the peak's magnitude is above this threshold accept it as a true peak. 
   Else: Discard it, its a false peak
4) Generate a Receiver Operating Characteristic Curve(ROC) to how well the algorithm
   is performing.

次に例を示します。

suppose we have the signal X = [ 0 0 0 0 1 3 **9** 2 1 1 **2** 1 1 ] 
1) 9 and 2 are both potential peaks 
2) Lets use a window of 5 and  a threshold =2
so at 9 we have [1 3 9 1 2] -> [1 1 2 3 9]  so Median(9,5) = 2
9 > 2 +2, therefor its a peak
Lets take a look at 2: [ 1 1 2 1 1] -> [1 1 1 1 2 ] Median(2,5) = 1
2 < 1+2, therefor it is NOT a peak. 

頻度の決定

ピークの時間の特定が周波数を見つけようとするのを効果的に見つけたので:

1) Use the locations of the peaks to generate a pulse train
      a) this means create sum(Dirac_delta[t-L(n)]) where L(n) is the nth time that 
      you've localized through median thresholding
2) Apply FFT Algorithm
3) Look for largest peak. 

代替周波数推定

1) Think of this like a beat in a piece of music (I learned about thresholding by
   researching Onset Detection.
2) Compute the average time distance between detected peaks.
3) now call your results BPM or PPM (pulses per minute) 

追加の研究分野

ピーク信号はそのままで満足できるかもしれませんが、開始検出と呼ばれるまったく別の問題に適用されるアルゴリズムがあります。

開始検出は、音楽情報検索研究の大きな領域です。いつノートが演奏されているかを決定するために使用されます。

発症の音楽サンプル

テープヘッド信号を高度にサンプリングされた信号と考える場合、このペーパーで見つけるアルゴリズムの多くを適用できます。

http://www.elec.qmul.ac.uk/people/juan/Documents/Bello-TSAP-2005.pdf


"[1 3 9 1 2]"ウィンドウの幅が5の場合、どのようにして数値2を取得しますか?
Spacey

数字の並び方に注目してください。中央値は、順序付けられたセットの中央の数値です。[1 1 2 3 9] < -順序付けられ、中央数は2である
Cyber​​Men

あなたの数を見てください、彼らは[1 3 9 1 1]です。2はどこから入手したのですか。
Spacey

@Mohammadは作業中にいくつかの編集を行い、削除されました。修繕。
Cyber​​Men 2012

よろしくお願いします。さて、音楽の文脈で「音符」と言うとき、それは単一の周波数を意味しますか、それとも多くの周波数を意味しますか?それとも関係ありませんか?これが、狭帯域(シングルトーン)である他のいくつかのアプリケーションでも使用できる方法かどうかを確認するように求めています。
Spacey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.