Glättungssignal / Erkennen von Unebenheiten in einem Datenstrom


11

(BEARBEITEN: Diese Frage ergibt sich aus dem Extrahieren von binären Magnetstreifen-Kartendaten aus WAV-Rohdaten. )

Hier ist mein Signal (obere Zeile) und ein grundlegender IIR-Filter angewendet (untere Zeile)

Geben Sie hier die Bildbeschreibung ein

(BEARBEITEN: Meine Aufgabe ist es, das Signal in binäre 0 (Frequenz F) und binäre 1 (Frequenz 2F) zu unterteilen - deshalb heißt es F2F. Deshalb muss ich es so verarbeiten, dass keine falschen Spitzen garantiert werden Der Screenshot lässt es trivial aussehen, es besteht das potenzielle Problem, einen doppelten Peak zu erhalten und auch falsch positive Ergebnisse im Trog zwischen echten Peaks zu erhalten.)

Meine Frage ist, welche Methoden stehen zur Glättung dieses Signals zur Verfügung? Ist IIR meine beste Wahl?

Ich kann mindestens drei Möglichkeiten sehen:

  • IIR y [n] = 0,9 · y [n - 1] + 0,1 · x [n] wobei y [x] = 0 ist, wenn x <0 ist

  • Gleitender / fenstergesteuerter Durchschnitt - Platzieren Sie eine Glockenkurve mit einer Fläche von 1,0 über der Umgebung, z. B. w = 10 Abtastwerte auf jeder Seite, und integrieren Sie bellSmooth (x) = Integral [xw, x + w] {Glocke (k) .samp (k)} dk

  • Bestimmen Sie die erwartete Frequenz und FFT / entfernen Sie Bins höherer Ordnung / kehren Sie die FFT um

Ich habe vielleicht meine eigene Frage beantwortet, aber wahrscheinlich ist diese unvollständig und ich bin sicher, dass ich die falsche Terminologie verwende. Auch kann ich die Vor- und Nachteile nicht wirklich vorhersagen. Die letzte Methode ist weniger attraktiv, da sie die Kenntnis der Grundsignalfrequenz erfordert. Aber dann auch die zweite Methode; Ich muss eine geeignete Fensterlänge wählen.

Gibt es noch andere Methoden?


6
Welche Eigenschaften des ursprünglichen Signals möchten Sie beibehalten / messen? Zum Beispiel Timing zwischen Spitzenpunkten, Höhe der Spitze, Zeitspanne über einem Schwellenwert, etwas anderes?
Martin Thompson

Timing zwischen Peaks ... und selbst das muss nicht zu genau sein - es ist ein F2F-Signal (ich werde die Frage ändern, um auf die Signalquelle zu verweisen und einen Kontext anzugeben)
P i

Ist dies für die Online- oder Offline-Verarbeitung?

Mein Thema ist die Rauschglättung im Datenstrom. Gefällt dir dieser Artikel oder dieses Thema?

Antworten:


6

Auswirkungen der Mittelwertbildung

Durch die Verwendung eines Filters mit gleitendem Durchschnitt werden die Unregelmäßigkeiten im Signal ausgeglichen. Das Rauschen wird zu E / N, wobei N die Länge des Filters mit gleitendem Durchschnitt ist. Der Nebeneffekt der Verwendung eines MA besteht darin, dass die Signalspitzen breiter und flacher werden.

Außerdem ändert sich der Frequenzinhalt des Signals. Ein Filter mit gleitendem Durchschnitt im Zeitbereich ist dasselbe wie das Falten des Frequenzbereichssignals durch eine Sinc-Funktion. Alles wird verwischt.

Peakerkennungsalgorithmus Die Peakerkennung ist ein häufiges Problem bei technischen 9/10-Problemen. (nicht wirklich, aber eine TONNE hängt von ihnen ab)

In der Regel wird Folgendes getan:

Medianschwelle

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.

Hier ist ein Beispiel:

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. 

Frequenz bestimmen

Nachdem Sie die Zeitlokalisierung des Peaks gefunden haben, versuchen Sie, deren Häufigkeit zu ermitteln:

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. 

Alternative Frequenzschätzung

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) 

Zusätzliche Wege der Forschung

Während Sie möglicherweise mit dem Spitzensignal zufrieden sind, gibt es Algorithmen, die auf eine ganz andere Art von Problemen angewendet werden, die als Onset-Erkennung bezeichnet werden.

Onset Detection ist ein großer Bereich in der Musikinformations-Retrieval-Forschung. Es wird verwendet, um zu bestimmen, wann eine Note gespielt wird.

Musikbeispiel eines Beginns

Wenn Sie sich Ihr Bandkopfsignal als ein stark abgetastetes Signal vorstellen, können Sie viele der Algorithmen anwenden, die Sie in diesem Dokument finden würden:

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


"[1 3 9 1 2]" Wie erhalten Sie die Nummer 2, wenn Ihr Fenster die Breite = 5 hat?
Spacey

Beachten Sie, wie ich die Zahlen aufgereiht habe. Der Median ist die mittlere Zahl in einer geordneten Menge. [1 1 2 3 9] <- bestellt, mittlere Nummer ist 2.
CyberMen

Schauen Sie sich Ihre Zahlen an, sie sind [1 3 9 1 1]. Woher hast du die 2?
Spacey

@Mohammad hat während der Arbeit einige Änderungen vorgenommen und wurde gelöscht. Fest.
CyberMen

Cool, danke! Wenn Sie im musikalischen Kontext "Note" sagen, bedeutet das dann eine einzelne Frequenz oder viele Frequenzen? Oder spielt es keine Rolle? Ich frage, ob dies eine Möglichkeit ist, auch mit einigen anderen Anwendungen, die schmalbandig sind (Einzelton), verwendet zu werden.
Spacey
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.