LabVIEWForum.de - Spectral Measurement and IFFT

LabVIEWForum.de

Normale Version: Spectral Measurement and IFFT
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,
ich hoffe Ihr könnt mir weiterhelfen. Ich arbeite zur Zeit an meiner Abschlussarbeit und benötige eure Hilfe.
Ich bin neu hier im Forum und arbeite seit ca. 3 Monaten mit Labview.

Wie kann ich es schaffen nach dem Express Vi Spectral Measurements (Spektrum ermitteln) die IFFT anzuwenden, um danach wieder das rekonstruierte Eingangssignal wieder herzustellen.
Das Problem ist ja schon mal der Datentyp, der bei FFT (Peak) herauskommt. Mit der Kontexthilfe konnte ich herrausfinden, dass es sich um ein Cluster handelt ... wenn ich es mit "Nach Namen aufschlüsseln" auftrenne, kann ich "magnitude" an den Eingang von IFFT.vi anschließen.

Das Ausgangssignal entspricht aber noch nicht dem Eingangssignal, was muss ich noch machen?

Wenn man ohne das Express.vi arbeitet schaffe ich es mit FFT.vi .... das Eingangssignal zu rekonstruieren, aber wie mache ich es richtig, wenn ich nicht auf das Express.vi verzichten kann?

Ich würde mich freuen wenn Ihr mir ein paar Tips geben könnt.

Danke schon einmal
MfG Philipp

lv11_img
Hallo Phillip,

Zitat:Das Ausgangssignal entspricht aber noch nicht dem Eingangssignal, was muss ich noch machen?
Mal überlegen: du bestimmst ein Amplitudenspektrum und vergisst die kompletten Phaseninformationen. Nur mit den Amplituden versuchst du dein Signal zu rekonstruieren, wunderst dich aber, das nicht das erwartete Ergebnis herauskommt.
Habe ich das korrekt zusammengefasst?

Zitat:Wenn man ohne das Express.vi arbeitet schaffe ich es mit FFT.vi
Dan arbeite doch ohne ExpressVI…

Zitat:aber wie mache ich es richtig, wenn ich nicht auf das Express.vi verzichten kann?
Wieso kann man auf ExpressVIs nicht verzichten?
Da ExpressVIs auch nur aus "normalen" VIs/Funktionen bestehen (die man sich nach "Frontpanel öffnen" auch alle anschauen kann), ist dieser Ansatz recht seltsam!
Das funktioniert aus zwei Gründen nicht:
1. Man braucht zur Rücktransformation Real- und Imaginärteil bzw. Betrag und Phase des Spekrums. Mit dem Amplitudenspektrum allein geht das nicht. Rücktransformation des Leistungsspekrums liefert die Autokorrelationsfunktion und nicht die Zeitfunktion.
2. Wenn man die Zeitfunktion fenstert, dann liefert die Rücktrnaformation natürlich die gefensterte Zeitfunktion und nicht die Originalfunktion.
Hallo Lucki und GerdW,
Danke schon einmal für eure Mühe und eure Antwort. Entschuldigt bitte, dass ich mich noch nicht so gut auskenne, aber ich versuche ja es zu meistern.

@GerdW:
Ich dachte mir schon, das ich das Ausgangssignal nur mit Betrag und Phase oder Re und Im wieder rekonstruieren kann. Aber ich weiß noch nicht so richtig mit den Daten in LabView umzugehen. Mein Ausgang von "Spectral Measurements" ist ja Rosa, also ein Cluster mit je drei Elementen, f0,df, und Magnitude bzw. Phase. Richtig soweit?

Wie kann ich jetzt Magnitude (Betrag) und Phase wieder so miteinander verbinden, dass ich das Ausgangssignal wieder in IFFT.vi reinschicken kann?

Das Express.vi möchte ich aus folgendem Grund benutzen: Meine Arbeit fast Fuß, auf der Arbeit eines Vorgängers, (ehemalige Diplomarbeit) In Dieser Arbeit wird ein Signal erzeugt, dann gefiltert, A/D gewandelt via der PCI-6221 und im Anschluss das abgetastete Signal einer FFT Analyse via "Spectral Measurements" unterzogen. Je nach dem, ob man nun das Signal richtig abtastet oder nicht (nach Shannon) gibt es alias Frequenzen oder nicht.

Zunächst, soll nun aus diesen Frequenz Spektren wieder ein zeitkontinuierliches Signal im Zeitbereich zurücktransformiert werden

Aber wie schon erwähnt, wie gehe ich in in LabView mit den Daten richtig um, um Aus Betrag und Phase, die richtige "Datenleitung" zu erstellen, um dieses Signal dann wieder in IFFT.vi einzugeben?

@Lucki,

Zitat: 2. Wenn man die Zeitfunktion fenstert, dann liefert die Rücktrnaformation natürlich die gefensterte Zeitfunktion und nicht die Originalfunktion.

Ebenfalls schon einmal Danke für deine Hilfe, aber soweit bin ich noch gar nicht von meinem Wissenstand. Ich kann nur soviel dazu sagen, mir war in dem Bsp. gar nicht bewusst, dass ich die Zeitfunktion gefenstert habe, woran hast du das gesehen? Und was muss ich da beachten?

Ich werde weiterhin eure Antworten versuchen bestmöglichst zu verstehen und hoffe, dass ich mit eurer Hilfe ein besseres Verständnis für die Sache bekomme.
Danke noch einmal
Ich werde dann mal weiter rumprobieren.
Hallo FF,

Zitat:Mein Ausgang von "Spectral Measurements" ist ja Rosa, also ein Cluster mit je drei Elementen, f0,df, und Magnitude bzw. Phase. Richtig soweit?
Nein, schon falsch…
Wo siehst du bei "f0, df, magnitude" ein Phasensignal? Du hast dort nur Amplituden (über Frequenz) ähnlich wie bei einer Waveform (t0, dt, values)!
Ich meinte das so: Das Express Vi "Spectral Measurements" hat unter anderem zwei Ausgänge "FFT - (Peak)" und "Phase" wenn ich nun jeweils an diese Ausgänge "Nach Namen aufschlüsseln" ran hänge bekomme ich jeweils f0, df und phase und f0,df und magnitude. Dachte mir, dass ich die rosa Datenleitungen schonmal aufschlüsseln müsste.

@ Lucki:

In einem alten Thread habe ich folgendes von dir gefunden:
Zitat:Dafür gibt es das VI "Inverse FFT". Und abgesehen davon, daß es dieses VI gibt, wäre die Rücktransformation auch so leicht möglich: Die Summe aller Sinusverläufe des Spektrums (mit Phase) ergibt die originale Zeitfunktion. Oder auch so: Die Summe aller Cos-Funktionen (des Realteils) und aller Sin-Funktionen (des Imagonärteils) ergibt die Zeitfunktion.
Wie setze ich das in LabView um?

Muss da noch erfahrung sammeln Blush
Wenn ich meine Schaltung so verdrahte wie auf dem Bild, dann erhält mein Ausgangssignal so eine Art einschnürung, woher kommt den die? Bzw. was mache ich da falsch? Blink
Hallo FF,

1. Was soll es bringen, Magnitude und Phase zu addieren? Geht man so mit komplexen Zahlen um?
2. Da ist immer noch ein fetter CoercionDot. Der hat eine Bedeutung und Auswirkungen auf das Rechenergebnis!
3. Ludwig hatte oben schon einmal den Einfluss der Fensterfunktionen angemerkt. Den musst du auch beachten!

Ansonsten:
4. Aufräumknopf drücken.
5. Symboldarstellung der Terminals in den LabVIEW-Optionen deaktivieren…
(Punkt 4 ist ernst gemeint, Punkt 5 eher ein gutgemeinter Ratschlag.)
Noch arbeite ich an der Lösung, ihr hört wieder von mir Big Grin
Hallo GerdW, Hallo Lucki,

Ich habe nun versucht eure Ratschläge so gut wie möglich in die Tat umzusetzen.

In Sachen Fensterung und Autokorelation habe ich mir etwa Wissen aus der Digitalen Signalverarbeitung angelesen.

(27.05.2014 11:49 )GerdW schrieb: [ -> ]Ansonsten:
4. Aufräumknopf drücken.
5. Symboldarstellung der Terminals in den LabVIEW-Optionen deaktivieren…
(Punkt 4 ist ernst gemeint, Punkt 5 eher ein gutgemeinter Ratschlag.)

Aufräumknopf gedrückt und Symboldarstellung der Terminals in den LabVIEW-Optionen deaktiviert. Big Grin

Im Anhang findet Ihr noch mal eine überarbeitete Version des Programmes. Ich denke mit den Komplexen Zahlen habe ich es jetzt auch etwas besser gemacht Denknach. Im VI Spectral Measurements habe ich nun auch die Fensterung deaktiviert "Kein"

Nun bekomme ich von der Form her das Signal auch rekonstruiert, allerdings passt die Amplitude noch nicht .... und die Frequenz denke ich auch noch nicht so ganz.
Könnt Ihr mir bitte noch weiterhelfen, wo dran das noch liegen kann?

Ich meine mir ist zwar bewusst, dass wenn man zwar das Shannon Theorem beachtet aber die Abtastfrequenz nur geringfügig größer gewählt wurde wie das doppelte der Signalfrequenz, dann bekommt man zwar die original Frequenzen rekonstruiert aber es kann ja zu einem Amplitudenfehler kommen.
Erst mit einer viel höheren Abtastfrequenz (ca das 10 fache der Signalfrequenz) kann man auch die Amplitude wieder annähernd rekonstruieren.

Das die Amplitude so wie aber in meinem Fall um den Faktor 100 kleiner ist, kann doch nicht sein! Da muss doch irgendwas anderes noch falsch sein,
oder ich habe noch Informationen um das Signal richtig zu Konstruieren nicht beachtet.

Kann man in LabView in meinem kleinen Programm, irgendwie noch Simulieren, mit welcher Frequenz ich das Eingangssignal abtaste? Wenn ja wo? Um evtl. den Aliasing Effekt zu simulieren.

Eine weitere Frage hätte ich noch, ist es den möglich, wenn man doch Fenstert, z.B. mit Hamming und dann ja die gefensterte Zeitfunktion bekommt, noch daraus das Original Signal zu rekonstruieren? Wenn ja wie?

Ich bemühe mich wirklich das Problem in den Griff zu bekommen und hoffe auf eure Hilfe
Ich weiß das wirklich zu schätzen.

Gruß PhilippWink2
Seiten: 1 2
Referenz-URLs