Hallo,
ich habe ein Signal bei etwa 4350Hz und taste es mit 128000Hz ab. Jetzt bekomme ich aber immer zusätzlich zu den Realen Frequenzen eine "Spiegelung" (siehe Anhang). Sprich 128000Hz-"vorhandene Frequenzen"=Spiegelung. Gibt es eine einfache Möglichkeit diese wegzubekommen ?
Gruss und vielen Dank im Vorraus
Amin
Hallo Amin,
nach dem Abtasttheorem kannst Du mit 128kHz Abtastfrequenz nur Frequenzen bis max. 64kHz detektieren alles darüber ist Schrott.
Tip:
Anzeige und Auswertung auf maximal 64kHz begrenzen (Tiefpassfilter diskret oder softwaremässig).
kpa
Die Spiegelung in der Fouriertransformation ist eigentlich um den Nullpunkt, d.h es gibt zu jeder postitiven Frequenz (bei reellem Zeitverlauf) eine gleichgroße negative Frequenz. Da es in LV aber keine Arrays mit negativen Indizees gibt, werden in LV die negativen Frequenzen wie bei Dir zu sehen in den oberen Bereich verschoben.
Um diese redundanten Anteile wegzuschaffen hast Du zwei Möglichkeiten:
Entweder: Das VI "FFT" nicht verwenden und satt dessen eines der VIs unter Signalverlaufsmessung verwenden, z.B das VI "FFT Spectrum".
Oder: In einem solchen VI sich das Blockbild anschauen und dort abgucken, wie die Profis von NI das Abschneiden machen, also z.B so:
[
attachment=16073]
Hallo,
danke für Eure schnellen Antworten.
Das mit dem Abschneiden hatte ich schon versucht, jedoch bekommt die FFT auch Frequenzen heraus, die nicht dem Abtasttheorem entsprechen und daraufhin in die untere Hälfte angezeigt werden.
Das VI "FFT Spectrum" habe ich nicht. Nur "FFT Power Spectrum" oder "FFT Spectrum (Mag-Phase)" oder "FFT Spectrum (Real-Im)".
Aber das mit dem Herausklauen der FFT Funktion, aus der der "FFT Spectrum" Funktionen hat super geklappt.
Danke & Gruss
Amin
' schrieb:Hallo,
danke für Eure schnellen Antworten.
Das mit dem Abschneiden hatte ich schon versucht, jedoch bekommt die FFT auch Frequenzen heraus, die nicht dem Abtasttheorem entsprechen und daraufhin in die untere Hälfte angezeigt werden.
Also das einzige was hier wirklich hilft ist halt filtern und zwar bevor man das Signal abtastet. Nach der Abtastung sind die Frequenzen nach Fourier schon gespiegelt und kann man da wirklich nicht mehr unterscheiden zwischen einem richtigen xKHz Signal und einem das von so einer Spiegelung kommt.
Rolf Kalbermatter
' schrieb:Also das einzige was hier wirklich hilft ist halt filtern und zwar bevor man das Signal abtastet. Nach der Abtastung sind die Frequenzen nach Fourier schon gespiegelt und kann man da wirklich nicht mehr unterscheiden zwischen einem richtigen xKHz Signal und einem das von so einer Spiegelung kommt.
Rolf Kalbermatter
ich glaub du meinst "Transformieren" und nicht "Abtasten", oder? *blond guck*
also Abtasten (mit der Hardware) und nach LV holen (z.B. DAQmx) --> Filtern --> Fourier-Transformation
BTW: ich verwende eigentlich fast immer das VI "Auto Power Spektrum", das liefert einem schon die einseitige reelle FFT, nur um die Skalierung muss man sich noch selbst kümmern ...
Hi!
' schrieb:ich glaub du meinst "Transformieren" und nicht "Abtasten", oder? *blond guck*
Nein, das glaube ich nicht, denn genau das ist es eigentlich, was man bei jedem digitalen System machen sollte: Vor der digitalisierung sicherstellen, dass man keine zu hohen Frequenzen im abzutastenden Signal hat. Geht teilweise über Systemkenntnis oder halt wirklich durch eine entsprechende Schaltung...
ch
' schrieb:Also das einzige was hier wirklich hilft ist halt filtern und zwar bevor man das Signal abtastet. Nach der Abtastung sind die Frequenzen nach Fourier schon gespiegelt und kann man da wirklich nicht mehr unterscheiden zwischen einem richtigen xKHz Signal und einem das von so einer Spiegelung kommt.
Rolf Kalbermatter
Da ist alles richtig - nur hat dieses Problem mit der Frage von amin nichts zu tun. Die "Spiegelung", die amin meinte, hat mit der "Spiegelung" auf die Du dich beziehst, überhaupt nichts zu tun. Es handelt sich hier um ganz unterschiedliche Sachverhalte. Die Frage, ob in beiden Fällen "Spiegelung" überhaupt das zutreffendste Wort ist oder ob es dafür in einem oder beiden Fällen einen besseren Fachbegriff gibt, möchte ich mal offen lassen. Das ist nicht wirklich wichtig.
Der Unterschied ist:
Bei "deinen" gespiegelten Frequnzen geht es aber um störende Frequenzkomponenten, die in den Frequenzbereich 0---fs/2 hineingespiegelt werden, und die, wenn sie einmal mit im Spektrum sind, nicht mehr wegzubekommen sind. Das Herausfiltern aller Frequenzkomponenten oberhalb fs/2 im
Zeitverlauf, vor der Fouriertransformation, ist deshalb die einzige Möglichkeit, diesen Fehler zu vermeiden.
Be den "amin"schen Spiegelungen geht es um physikalich überhaupt nicht real existierende Frequenzen im Bereich fs/2.. fs, die die Funktion fft.vi redundanterweise immer mit ausgibt (Und zwar völlig unabhängig davon, ob der Zeitverlauf tiefpassgefiltert wurde oder nicht)
Man kann natürlich fragen, warum die Funktion fft.vi überhaupt diese unsinnigen Frequenzwerte immer mit ausgibt. Die Antwort ist glaube ich die: Bei reellen Zeitverläufen als Eingangsarray machen diese Anteile wirklich keinen Sinn. Als Zeitverlauf sind aber auch komplexe Abtastwerte zulässig (bitte fragt mich nicht, welchen physikalisch Sinn das macht -ich weiß es nicht). Und dann erhalten diese Werte einen Sinn.
' schrieb:ich glaub du meinst "Transformieren" und nicht "Abtasten", oder? *blond guck*
also Abtasten (mit der Hardware) und nach LV holen (z.B. DAQmx) --> Filtern --> Fourier-Transformation
Nein nach dem Abtasten mit der Hardware ist die Spiegelfrequenz schon passiert. Da hilft alles Filtern nichts mehr.
Nehmen wir mal an Du hast ein Signal mit einem 10 kHz Signal und einem 30 kHz Signal. Nach dem Abtasten mit 25kHz bekommst Du ein eingelesenen Signal mit einer 5 kHz und 10 kHz Komponente. Da hilft alles Filtern nichts mehr ausser Du weisst dass der 5kHz Anteil falsch ist und filterst ihn mit einem Bandpass raus. Aber dass ist dann schon wieder verschönbessern und nicht wirklich messen
.
Die einzige wirklich sinnvolle Massnahme ist das Filtern des Eingangssignals vor dem Abtasten mit einem Tiefpass kleiner als der halben Abtastfrequenz.
Rolf Kalbermatter
' schrieb:Da ist alles richtig - nur hat dieses Problem mit der Frage von amin nichts zu tun. Die "Spiegelung", die amin meinte, hat mit der "Spiegelung" auf die Du dich beziehst, überhaupt nichts zu tun. Es handelt sich hier um ganz unterschiedliche Sachverhalte. Die Frage, ob in beiden Fällen "Spiegelung" überhaupt das zutreffendste Wort ist oder ob es dafür in einem oder beiden Fällen einen besseren Fachbegriff gibt, möchte ich mal offen lassen. Das ist nicht wirklich wichtig.
In dem Teil auf den ich geantwortet habe war aber doch wirklich von Spiegelfrequenzen wegen dem Nyquist Theorem die Sprache auch wenn der Poster das etwas anders formulierte.
Zitat:Man kann natürlich fragen, warum die Funktion fft.vi überhaupt diese unsinnigen Frequenzwerte immer mit ausgibt. Die Antwort ist glaube ich die: Bei reellen Zeitverläufen als Eingangsarray machen diese Anteile wirklich keinen Sinn. Als Zeitverlauf sind aber auch komplexe Abtastwerte zulässig (bitte fragt mich nicht, welchen physikalisch Sinn das macht -ich weiß es nicht). Und dann erhalten diese Werte einen Sinn.
Die sind nicht unsinnig. Das Spektrum einer FFT geht effektiv von -fs/2 bis +fs/2. Meistens ist der normale Benutzer nur am positiven Anteil des Spektrums interessiert und dafür kann man einfach die Power Spektrum Funktion in LabVIEW verwenden. Der negative Anteil ist aber durchaus legitim wenn auch imaginär.
Rolf Kalbermatter