Sinussignal aus Spektrum rekonstruieren - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Signaldarstellung (/Forum-Signaldarstellung) +---- Thema: Sinussignal aus Spektrum rekonstruieren (/Thread-Sinussignal-aus-Spektrum-rekonstruieren) |
Sinussignal aus Spektrum rekonstruieren - DrHoas - 31.05.2012 13:03 Hallo, ich hab ein VI angehängt mit dem ich ein Sinussignal erzeuge, davon das Spektrum berechne und dann daraus wieder das Sinussignal rekonstruieren möchte. Leider funktioniert das nicht so ganz. Das erzeugte Spektrum sieht nicht so aus, wie ich mir das gedacht hätte. Wahrscheinlich verstehe ich die Fourier-Transformation einfach nicht. Wäre nett, wenn mir jemand weiterhelfen könnte. Dank Philipp RE: Sinussignal aus Spektrum rekonstruieren - Lucki - 31.05.2012 13:51 Also bei mir wird genau das gemacht, was Du selbst als richtig erkannst hast: [attachment=39996] Der Peak ist natürlich verbreitert, bedingt durch das Fenstern. Ideale Verhältnise hat man dann: Genau ganzzahlige Anzahl von Schwingungen, und dann nicht fenstern. RE: Sinussignal aus Spektrum rekonstruieren - DrHoas - 31.05.2012 14:03 Ich hatte einen Fehler drin, den Du korrigiert hast. Im Text bin ich davon ausgegangen, dass der Sinus am Eingang mit einem Offset von 1 überlagert wird. Bitte die 0 durch 1 ersetzen. Hätten in diesem Fall nicht Peaks bei 0 Hz und bei 30 Hz mit der Amplitude 1 entstehen müssen? Wir haben zwar den Peak bei 30 Hz mit A=1, der Peak bei 0 Hz hat aber die Höhe Wurzel(2). Außerdem haben wir noch Punkte bei 25 Hz und 35 Hz mit A=0,5. Was soll das denn? Ich dachte, das könnte davon kommen, dass wir ja keine kontinuierliche Funktion haben, sondern diskrete Werte. Deshalb versuche ich das Signal zu rekonstruieren. Dabei erhalte ich aber nicht das Ausgangssignal. Daraus schließe ich, dass ich einen Denkfehler habe und bin für Hilfe dankbar. Philipp RE: Sinussignal aus Spektrum rekonstruieren - Lucki - 01.06.2012 18:00 Nochmals kurz etwas zur FFT: 1.) Der Witz der FastFT ist, das sich bedeutende Rechenvorteile ergeben, wenn die Anzahl der Samples 2^N ist. Ich weiß jetzt nicht, was Labview macht, wenn das nicht der Fall ist (ich glaube es werden zusätzliche Samples angehängt) Auf jeden Fall sollte man sich bemühen, diese Voraussetzung zu schaffen. 2) Bei der Fourieranalyse muß man sich denken, dass es sich bei der gesamplten Zeitfunktion um genau eine Periode eines beidseitig unendlich ausgedehnten Vorganges handelt. Besteht die Sample nun z.B aus 5 1/2 Perioden, und denkt man sich diese Waveform immer wiederholt, so wird klar, daß es ich hier nicht um einen reinen Sinus handelt: es ist ein Sinus mit einem ekelhaftem Phasenprung alle paar Perioden, und das ergibt in der Fourieranalyse jede Menge Oberwellen. 3) Die eleganteste Methode ist natürlich, bei der Messung darauf zu achten, dass eine genau ganzzahlige Anzahl von Perioden abgetastet wird. Wenn man die Frequenz selbst generiert, z.B für Frequrnzgangmessungen, dann lässt sich das machen. Habe das mal mit Deinem Vi gemacht: 1024Samples, 10Hz, ft=1024Hz (ergibt genau 10 Perioden) Im Ergebnis sieht man eine reine Spektrallinie (Fensterfunktion natürlich ausgeschaltet, siehe weiter unten): [attachment=40019] 4) In vielen Fällen wird man diese Vorgabe nicht einhalten können. Man sollte dann aber über möglichst viele Perioden messen, also nicht über 5 1/2, sondern z.B über 100 perioden: Der Phasensprung fällt dann nicht so ins Gewicht, der Peak bei der erwarteten Frequenz ist schärfer. Außerdem ist es dann üblich zu "Fenstern". Der Zeitverlauf wird denn mit einer Funktion mutipliziert, die in der Mitte ein Maximum um 2 hat und an den Enden des Bereichs null ist oder nur einen geringen Wert hat. Der Arithmetrische Mittelwert über die Samplelänge ist immer genau 1. Der Effekt ist, daß die Phasensprünge an den Enden fast oder ganz wegfallen. Die Samples in der Mitte des Breiches werden hoch gewichtet, die an den Ränden niedrig. Damit werden die Oberwellen im Spektrum stark gedämpft. Allerdings, und das hast Du ja selbt erlebt: Die aus den Fourierdaten wieder rekonstruierte Zeitfunktion sieht ganz anders aus als die Originalfunktion. Es ist eben nicht die Originalfunktion, sonden die Originalfunktion multiplziert mit der Fensterfunktion. RE: Sinussignal aus Spektrum rekonstruieren - DrHoas - 05.06.2012 12:02 Danke für die ausführliche Antwort. Unter 4) schreibst Du, dass man möglichst viele Perioden aufnehmen soll (sagen wir n Perioden). Das kann ich doch aber im realen Fall nur abschätzen, oder? Ich schätze, dass die kleinste Frequenz f_k beträgt und messe dann über eine Dauer von T=n/f_k. Jetzt könnte ich noch vorschreiben, dass die Anzahl der Samples eine Potenz von 2 ist. Ist das soweit für die Praxis richtig? Das mit dem Fenstern hab ich aber noch nicht verstanden. Wie entscheide ich welche Methode für mich geeignet ist? Philipp RE: Sinussignal aus Spektrum rekonstruieren - Lucki - 10.06.2012 18:10 (05.06.2012 12:02 )DrHoas schrieb: Das mit dem Fenstern hab ich aber noch nicht verstanden. Wie entscheide ich welche Methode für mich geeignet ist?Welche Methode? Meist ist es egal, nicht egal ist nur ob Fensterung oder nicht (nicht = Rechteck). LV schreibt in der Hilfe zu "Fensterung" dass man es probieren soll. Grundlegendes zur Fensterung. Beispiel cos-Signal 10.5 Hz, Dauer 1 sec, Anz.Samples 1024, Samplerate 1024 /s So die Schwingung aus: [attachment=40104] Da bei der Fouriertransformation die Schwingung beiderseits undendlich lang fortgesetzt wird, hat man bei jeder vollen Sekunde einen hässlichen Phasensprung: [attachment=40105] Bei der Spektralanalyse hat man hier Frequenzen als Vielfaches von 1/T = 1Hz. Da eine Spektrallinie 10.5 Hz nicht darstellbar ist, erwartet man 2 gleichstarke Spektrallinien bei 10 und 11 Hz. Das ist auch so, aber darüber hinaus hat man jede Menge andere Linien, bedingt durch die Sprünge in der Zeitfunktion: (weiße Kurve) [attachment=40109] Um diese anderen Linien zu schwächen, wird der Signalverlauf mit einer "Fensterfunktion" multipliziert. Im Falle des Hann-Fensters ist das eine (1-cos)-Funktion: [attachment=40107] Der neue Signalverlauf hat bei den vollen Sekunden keinen Sprung mehr, sondern ist stetig und hat beiderseite den Wert 0: [attachment=40108] Die aus dem Sprung resulitereden Oberwellen (der Grundfrequenz 1 Hz) werden damit entscheidend gedämpft. Das Leistungssprekrum (s. oben rote Kurve) sieht damit wesentlich besser aus. Ich hänge mal das VIs, mit dem ich die Diagramme auf die Schnelle erstellt habe, mit an. Es ist alles durcheinander, bitte nicht meckern. --> Irrtum: Geht leider nicht, das System gestattet nur 5 Anhänge, obwohl ich noch "unbegrenzt Speicherplatz" frei habe. RE: Sinussignal aus Spektrum rekonstruieren - DrHoas - 05.07.2012 15:40 Hallo, in der LV-Hilfe steht: Zitat:"Spektrale Leistungsdichte—Misst das Spektrum und zeigt als Ergebnis die spektrale Leistungsdichte (PSD) an. Die Spektrale Leistungsdichte ist eine skalierte Version von Leistungsspektrum, wobei die Leistung jedes Ausschlags auf dem Spektrum durch die Breite der Frequenzbalken normalisiert wird. Mit dieser Messung wird in der Regel das Grundrauschen oder die Leistung eines Signals in einem bestimmten Frequenzbereich untersucht. Durch das Normalisieren des Leistungsspektrums durch die Balkenbreite wird die Messung von der Signaldauer und der Anzahl von Signalwerten unabhängig." Was ist die Breite der Frequenzbalken? Grüße Philipp RE: Sinussignal aus Spektrum rekonstruieren - Lucki - 06.07.2012 08:19 Wenn Du mich fragst: keine Antwort. Habe mich vor einem Monat echt geschunden, deine letzte Frage ausführlich zu erklären - keine Reaktion. Jetzt also übergangslos neue Frage. Nun brauchst Du mir nicht mehr antworten, du bist jetzt in der Liste von Namen, deren Beiträge mir nicht angezeigt werden. RE: Sinussignal aus Spektrum rekonstruieren - DrHoas - 06.07.2012 08:48 Schade eigentlich, war im Urlaub. Ich hatte die Antworten bisher verstanden. Trotzdem war für mich noch nicht alles geklärt. Deshalb gab's noch keine abschließende Rückmeldung. Philipp |