|
|
[FFT] Harmonische und Zwischenharmonische nach interp1 |
|
HAL-9000 |
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 05.09.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2012, 10:13
Titel: [FFT] Harmonische und Zwischenharmonische nach interp1
|
|
Grüßt Euch,
ich habe mich seit kurzem mit Matlab und die FFT beschäftigt.
Mein Skript funktioniert soweit. Was mir auffällt ist, dass ich durch die Interpolation meiner Eingangsdaten zusätzliche Anteile in meinem Frequenzspektrum erzeuge, die in meinen generierten (Eingangs-)Musterdaten nicht vorhanden sind.
Meine Fragen:
- aufgrund welchen Sachverhalts entstehen diese Anteile (Zwecks einlesen)
- gibt es eine Möglichkeit/Vorgehensweise (in Matlab) dies zu verhindern/reduzieren.
|
|
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 16.05.2012, 12:05
Titel:
|
|
Kannst du hierzu mal bitte ein Bsp. posten (original und interp. Signal)
|
|
|
IchbinundbleibeGast |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.05.2012, 13:33
Titel:
|
|
Hallo,
wieso möchtest Du Deine Daten interpolieren? Um die FFT anwenden zu können, müssen Deine Zeitdaten nach oben hin bandbegrenzt sein. Konkret heißt dies, in Deinen Zeitdaten dürfen maximal Frequenzen mit der halben Abtastrate vorhanden sein ( F_max < (1/t_inc)/2 , wobei t_inc Dein Zeitinkrement darstellt).
Interpolierst Du Deine Daten linear, so erzeugst Du höherfrequente Anteile in Deinen Zeitdaten, die ursprünglich nicht vorhanden waren. Du generierst Dir somit einen Aliasing-Effekt. Der Effekt hat also erst mal nichts mit MATLAB zu tun.
Um dennoch interpolieren zu können (wobei ich darin erst mal keinen Sinn sehe wenn Du mit FFT arbeiten möchtest), müsstest Du bandbegrenzt interpolieren (kannst mal danach googeln).
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 17.05.2012, 13:27
Titel:
|
|
Mit der Funktion
wird das Signal zusätzlich mit einem Aliasingfilter (Tiefpass) gefiltert. Allerdings sollte man davon auch nicht zu viel erwarten, falls die Funktion zum Upsampling genutzt wird. Verdoppelt man die Abtastfreq. erhält man sowohl mit resample als auch interp1 eine Aliasfreq. bei fa/2 - f_signal. Hat man z.B. fa = 2000 Hz gewählt und f_signal = 100 Hz, so liegt die Aliasfreq. bei 900 Hz. Ist der Faktor zwischen fa_alt und fa_neu ungerade, erhalt man sogar zwei Aliasfreq. Beim downsampling treten die Fehler allerdings nicht auf.
Wie IchbinundbleibeGast aber schon schrieb, erhält man durch das Upsampling ja keine zusätzlichen Informationen. Man kann dadurch lediglich die Freq.-auflösung verbessern. Dafür gibt es ja aber Zero-padding und damit sogar ohne angesprochenen Probleme. Da du ja aber die Anzahl Messwerte immer konstant halten wolltest, wirst du wohl mit den Fehlern leben müssen.
|
|
|
HAL-9000 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 05.09.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2012, 16:54
Titel:
|
|
|
|
|
Danke für die Antworten,
hier mal 2 Plots zur Veranschaulichung. Nr.1 ist ein Testsignal welches bereits in 20.48 kHz erzeugt wurde. Nr. 2 ist mit 20kHz Samplerate erzeugt und wird interpoliert. Weshalb? Ich habe aus einer Norm eine Verfahrensvorgabe, die mir 10 Perioden je FFT-Fenster vorschreibt.
@ DSP Du kennst das "Theater" bereits, danke das Du wieder dabei bist
Ich habe hier nur die HF-Gruppen abgebildet. Aus dem "rohen" Amplitudenverlauf der FFT kann man aufgrund der Skalierung kaum etwas erkennen bzw. ist der Effekt bei niederfrequenten Anteilen zu vernachlässigen.
Anbei bei Interesse die Frequenz- und Amplitudendaten die ich für das Testsignal genutzt habe. --> data
Zitat: |
Verdoppelt man die Abtastfreq. erhält man sowohl mit resample als auch interp1 eine Aliasfreq. bei fa/2 - f_signal. |
Verdoppelt wird die Abtastrate des Eingangssignals nicht. Von 20 kHz auf 20.48 kHz (wenn Grundschwingung 50 Hz beträgt).
Kannst Du mir trotzdem hierzu bitte Quellen nennen, um sich da einzulesen?
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 19.05.2012, 17:51
Titel:
|
|
|
|
|
HAL-9000 hat Folgendes geschrieben: |
Ich habe aus einer Norm eine Verfahrensvorgabe, die mir 10 Perioden je FFT-Fenster vorschreibt.
|
Und was machst du nun wenn die Anzahl Messwerte der 10 perioden keine 2er Potenz ist? DFT statt FFT nutzen? Mit Fa = 20.48 kHz und 4096 Messwerten kommst du ja wieder auf deine gewünschte Auflösung von 5 Hz. Wie kommt dann hier aber die Darstellung von 200 Hz Schritten zu stande?
Wenn dein Signal außer dem 50 Hz Signal weitere Anteile enthält (sonst macht deine Analyse bis 10 kHz ja auch keinen Sinn), wie kannst du dann sicherstellen, dass der Leakage Effekt nicht auftritt?
Zu dem Thema Aliasfreq. habe ich keine Literatur. Ich habe das an einem Sinus-Testsignal mit unterschiedlichen Freq. ausprobiert und daraus lies sich diese "Regel" ableiten. In deinem Fall (die min. Anhebung) erhalte ich allerdings viele Aliasfreq. bei einem Testsignal von 50 Hz...siehe Bild.
Beschreibung: |
|
Download |
Dateiname: |
sin_testsignal.jpg |
Dateigröße: |
57.88 KB |
Heruntergeladen: |
976 mal |
|
|
|
HAL-9000 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 05.09.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.05.2012, 19:49
Titel:
|
|
Erstmal Entschuldigung für die irreführende Darstellung. Hierbei wurden zur Bewertung Seitenbänder in eine Untergruppe zusammengefasst, die ich nicht erwähnt habe. Dadurch ergibt sich für den HF-Bereich diese Darstellung.
Zitat: |
Und was machst du nun wenn die Anzahl Messwerte der 10 perioden keine 2er Potenz ist? DFT statt FFT nutzen? |
Ich bleibe erstmal bei der FFT, und werde entsprechend dokumentieren, das die Frequenzauflösung nicht 5 Hz betragen.
Zitat: |
[...], wie kannst du dann sicherstellen, dass der Leakage Effekt nicht auftritt? |
So wie ich das Leckphänomen in Bezug auf die vorgegebene Gruppierung verstehe (und Du hast ja bereits gemerkt das ich nicht vom "Fach" bin), werden diese durch die einbezogenen Seitenbänder mitberücksichtigt.
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 20.05.2012, 11:11
Titel:
|
|
|
|
|
Zitat: |
Ich bleibe erstmal bei der FFT, und werde entsprechend dokumentieren, das die Frequenzauflösung nicht 5 Hz betragen. |
Das verstehe ich jetzt nicht...du hast Fa = 20480 Hz und verwendest 4096 Messwerte. Somit hast du eine 2er Potenz und kannst die FFT benutzen und hast deine Auflösung von 5 Hz. Ein Nutzsignal von 50 Hz würde somit auch mit voller Periodenanzahl in das Fenster passen -> kein Leakage. Wenn dein Signal nun aber weitere Anteile enthält, deren Perioden nicht ganz ins Fenster passen, entsteht dort der Leakage-effekt. Man bezieht das oft auf die ganze Anzahl von Perioden um den Effekt zu erklären. Hiermit wird es evtl. etwas eindeutiger...ALLE Frequenzen in deinem Signal, die kein ganzzahliges Vielfaches von 5 Hz haben, werden nicht sauber im Spektrum dargestellt. Hier tritt dann das Verbreitern des Spektrums (Verschmieren) um die Signalfreq. auf. In dem Bild siehst du ein 50 Hz Grundschwingung und eine Oberschwing. von 1001 Hz. Die Darstellung ist etwas ungenau durch die log. Skalierung...aber so sieht man es besser. Bei 50 Hz tritt kein Leakage auf (auch wenn das hier evtl. den Anschein hat) aber bei den 1001 Hz ist es sehr deutlich zu sehen. Ich hoffe damit ist es klar geworden.
Beschreibung: |
|
Download |
Dateiname: |
leakage.png |
Dateigröße: |
72.83 KB |
Heruntergeladen: |
993 mal |
|
|
|
HAL-9000 |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 22
|
|
|
|
Anmeldedatum: 05.09.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.05.2012, 12:46
Titel:
|
|
Man, man, man, jetzt ist der Groschen gefallen! Danke für den Hinweis! Die vollständigen 10 Perioden beziehen sich immer auf die Grundschwingung.
Ich war der Meinung mit der Bildung der Untergruppen (in diesem Fall für die Anteile > 2 kHz) würden die Autoren der Norm den Leakage-Effekt und ungradzahligen Periodenanzahlen berücksichtigen?
"Auf Dass die hohle Kokosnuss gefüllt werde!"
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 20.05.2012, 14:44
Titel:
|
|
HAL-9000 hat Folgendes geschrieben: |
Ich war der Meinung mit der Bildung der Untergruppen (in diesem Fall für die Anteile > 2 kHz) würden die Autoren der Norm den Leakage-Effekt und ungradzahligen Periodenanzahlen berücksichtigen? |
Das verstehe ich auch nicht...kannst du das mal genauer erläutern?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|