Wie kann man die „Variabilität“ in einem Frequenzbereich bestimmen?

8

Dies ist eine Fortsetzung einer früheren Frage .

Ich versuche, Atem- und Schnarchgeräusche zu analysieren, und obwohl ich Schnarchen jetzt ziemlich gut erkennen kann, ist das Atmen eine größere Herausforderung.

Ich habe gelernt, dass, wenn ich den analysierten Frequenzbereich (ungefähr 4 kHz, abgetastet bei ungefähr 8 kHz, mit einer Bildgröße von 1024) in ungefähr 5 Unterbereiche aufteile, sehr oft einer der Unterbereiche eine gute Empfindlichkeit (unter Verwendung der spektralen Differenz) aufweist, die vergraben ist im Lärm im Gesamtbereich. Der Trick besteht darin, zu bestimmen, welchem ​​Unterbereich wann "vertraut" werden soll.

Vermutlich würde der "vertrauenswürdige" Unterbereich eine Variabilität mit einer Rate zwischen etwa 2 Hz und 0,05 Hz aufweisen, während sich die "schlechten" Unterbereiche zufälliger verhalten würden, wobei der größte Teil ihrer Variation in kürzeren Intervallen erfolgt.

Ich könnte eine Art Algorithmus zusammenschustern, um die Werte mit einer Auflösung von weniger als einer Sekunde zu glätten und dann die Variabilität über längere Intervalle zu berechnen, aber ich frage mich, ob es für diese Art von Dingen keinen "vordefinierten" Algorithmus gibt - etwas mit vielleicht ein Minimum an Theorie dahinter?

Irgendwelche Vorschläge?

[Anmerkung: Mir ist klar, dass man theoretisch eine FFT verwenden könnte, um diese Informationen zu extrahieren, aber das scheint, als würde man einen Baseballschläger verwenden, um einen Floh zu töten. Vielleicht etwas leichter?]

Hinzugefügt:

In gewisser Weise (um eine Analogie zu verwenden) versuche ich, ein "Basisband" -Signal in einer HF-Übertragung zu erkennen (nur das "HF" sind Audiofrequenzen und das "Basisband" liegt unter 8 Hz). In gewissem Sinne ist "RF" "Spreizspektrum" - die Geräusche, die ich erkennen möchte, erzeugen in der Regel viele Harmonische und / oder haben mehrere separate Frequenzkomponenten. Wenn also ein Band des Spektrums zu verrauscht ist, kann ich wahrscheinlich von einem anderen Gebrauch machen. Das Ziel besteht darin, im Grunde genommen eine Metrik zu bestimmen, die dem SNR für die verschiedenen Frequenzbänder ähnelt, unter der Annahme, dass das meiste "Rauschen"> 2 Hz ist und mein Signal weniger als 2 Hz beträgt.

Ich habe als Eingabe für diesen Algorithmus die Rohamplituden (Summe der FFT-Amplituden bei allen eingeschlossenen Frequenzen) für jedes Band, gemessen in 8-Hz-Intervallen.

(Es sollte beachtet werden, dass, obwohl ich keine formalen SNR-Messungen durchgeführt habe, das Gesamt-SNR über das verarbeitete Spektrum häufig nahe oder unter 1,0 zu liegen scheint - wenn Sie die Klanghüllkurve in einem Werkzeug wie Audacity visuell beobachten, keine Modulation des Die Hüllkurve ist spürbar (obwohl das Ohr Atemgeräusche deutlich erkennen kann). Deshalb müssen Bänder analysiert werden, um solche mit einem anständigen SNR zu finden.)

Daniel R Hicks
quelle
Mit Variabilität meinen Sie zeitlich oder über Frequenzen hinweg?
Phonon
Variabilität über die Zeit. Bei einer Frequenz zwischen ungefähr 0,05 Hz und 2 Hz wird die Variabilität in längeren oder kürzeren Intervallen ignoriert.
Daniel R Hicks
1
@DanielRHicks Wofür versuchen wir hier genau zu erkennen? Ich möchte sicherstellen, dass ich die Frage (n) verstehe. Ich versuche, die Funktion (en) zu quantifizieren, die Sie zuerst messen möchten.
Spacey
Siehe die hinzugefügten Details.
Daniel R Hicks

Antworten:

4

Daniel,

Wenn Sie Ihre Frage erneut lesen, scheint es, dass das, was ich als "Gabor-Bandbreite" bezeichnet habe, in diesem Fall für Sie nützlich sein könnte, wenn Sie versuchen, die "spektrale Variabilität" zu messen. (Dilip gab eine gute Antwort auf meine Frage Frage zu Spektralmomenten hier).

Als ich es weiter studierte, scheint die Gabor-Bandbreite wirklich nur ein Maß dafür zu sein, wie weit das Spektrum von seinem Mittelwert entfernt ist. (Daher die Manipulation von Momenten).

Schauen Sie sich um und sehen Sie, was Sie denken.

Spacey
quelle
1

Was Sie brauchen, scheint viel größer als ein Floh. Möglicherweise müssen Sie also in die entgegengesetzte Richtung gehen und mehr als nur eine FFT ausführen. Vielleicht Niederfrequenz-Cepstrum- oder Cepstral-Analyse, um Ihre "Exiter" -Frequenz zu finden.

hotpaw2
quelle
Ja, das scheint einen Blick wert zu sein (oder sollte ich otni sagen?).
Daniel R Hicks
Ich denke, ich sehe keine offensichtliche Möglichkeit, "Cepstrum" auf meine Daten anzuwenden, um Zeitintervalle zu analysieren, die länger als mein Frame-Intervall sind.
Daniel R Hicks
1

X(m,n)

Folgendes schlage ich vor:

Für jedes n:

  • rn(l)X(:,n)
  • rn(l)

Wählen Sie das Teilband mit der höchsten Autokorrelationsspitze (= je "pechiger").

Peakedness Maßnahmen zu betrachten:

  • maxlLrn(l)rn(0)
  • Kurtosis
  • Verhältnis von geometrischem zu arithmetischem Mittel

Diese Art von Metriken wird zB verwendet, um stimmhafte / stimmlose Sprache zu unterscheiden.

Pichenettes
quelle
Können Sie bitte erläutern, welchen Wert das geometrische Mittel gegenüber dem arithmatischen Mittel hat? Wenn Sie das Maximum der normalisierten Autokorrelation über der Autokorrelation bei tau = 0 erwähnen, warum ist das dann eine Gütezahl?
Spacey