Wie soll ich ein reales Signal vorverarbeiten, um den Schätzer von Kay zu verwenden?

21

Ich habe 100.000 Samples eines Signals , das mit 20 kHz abgetastet wurde. Die Daten sind Schwingungsdaten von einer rotierenden Maschine und enthalten eine signifikante spektrale Komponente, die mit der Rotationsgeschwindigkeit der Maschine zusammenhängt.x[n]

Da die Geschwindigkeit der Maschine über die Dauer der Probe variiert, liefert die Verwendung des Spitzenwerts der FFT nicht das gewünschte Ergebnis.

Daher möchte ich Schätzer wie Kays Schätzer verwenden , die kurzfristige Schätzungen ermöglichen, aber ein Signalmodell annehmen von:

x[n]=Aexp(jωn+θ)+z[n]

Dabei ist = 0 ... 99.999, die Amplitude, die zu schätzende Frequenz, der anfängliche Versatz und das komplexe Rauschen.nAωθz[n]

Mein Signal ist jedoch echt und sieht eher so aus:

x[n]=Acos(ωn+θ)+zr[n]

Dabei sind und A jetzt reelle .zrA

Wie wandle ich mein reales Signal in ein komplexes Signal um, damit ich den Schätzer von Kay verwenden kann?

Peter K.
quelle

Antworten:

12

Das Werkzeug, um reale Signale in ihre analytische Darstellung umzuwandeln, ist die Hilbert-Transformation .

Angenommen, Ihr Signal ist eine Projektion einer helikalen Rotation mit variabler Amplitude auf die Echtzeitebene, wie im folgenden Bild dargestellt.

Bildbeschreibung hier eingeben

Quelle

Die Hilbert-Transformation erzeugt angesichts ihres Realteils ein derart komplexes Signal. Es ist eine lineare Transformation und im Frequenzbereich sehr einfach durchzuführen. Ohne zu sehr in die Mathematik und Ableitungen einzugehen, ist der imaginäre Teil Ihres Signals mit der Fouriertransformation derselbe wie der Ihres realen Signals multipliziert mit (um 90 Grad gedreht). Durch symmetrische Eigenschaften des realen Signals erhalten Sie die folgende Beziehung:j

Alle Ihre negativen Frequenzkomponenten werden zu 0.

Ihre Gleichstromkomponente bleibt unverändert.

Alle Ihre positiven Frequenzkomponenten verdoppeln sich

In Matlab würden Sie beispielsweise Folgendes tun:

a = rand(1,201);

hilbert_a = ifft( [ 1, 2*ones(1,100), zeros(1,100)] .* fft(a) );

oder verwenden Sie einfach die eingebaute hilbertFunktion.

Phonon
quelle
Entschuldigung, ich hätte die Quelle zitieren sollen. Es ist von hier
Phonon
7

Wenn Sie den Kay-Schätzer verwenden möchten, müssen Sie das interessierende Signal in seine "analytische Signal" -Darstellung konvertieren. Dies beseitigt im wesentlichen die redundanten (z. B. negativen) Frequenzen aus dem ursprünglichen realwertigen Signal. Da bei diesem Vorgang die konjugierte Symmetrie der Frequenzdomänendarstellung des Signals zerstört wird, ist das Ergebnis komplex. Dann sollten Sie in der Lage sein, die gewünschte Technik anzuwenden.

Es gibt auch andere Ansätze für das Frequenzverfolgungsproblem. Es ist möglich, den LMS-Algorithmus anzuwenden, um eine sofortige Frequenzschätzung durchzuführen (Haykin, "Adaptive Filter Theory", S. 244-246). Alternativ können Sie eine Phasenregelschleife verwenden, um die diskrete Spektralkomponente über die Zeit zu verfolgen. Die richtige Lösung hängt davon ab, was Ihr Endziel ist und welche spezifischen Merkmale Ihr Signal aufweist.

Jason R
quelle
-1

Es sollte keine Rolle spielen. Das Model:

EINexp(jωn+θ)

ist ein in der Signalverarbeitung und Elektrotechnik weit verbreitetes Modell, das als Zeiger bezeichnet wird . Im Wesentlichen handelt es sich um ein sinusförmiges Signal mit einem gewissen Phasenversatz und einem gewissen Amplitudenversatz. Sie müssen überhaupt keine Transformationen durchführen, Ihr Signal ist mehr als ausreichend, um in Kays Schätzer eingehen zu können.

PearsonArtPhoto
quelle