WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

[FFT] Harmonische und Zwischenharmonische nach interp1

 

HAL-9000
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 05.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2012, 10:13     Titel: [FFT] Harmonische und Zwischenharmonische nach interp1
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 16.05.2012, 12:05     Titel:
  Antworten mit Zitat      
Kannst du hierzu mal bitte ein Bsp. posten (original und interp. Signal)
Private Nachricht senden Benutzer-Profile anzeigen
 
IchbinundbleibeGast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.05.2012, 13:33     Titel:
  Antworten mit Zitat      
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

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 17.05.2012, 13:27     Titel:
  Antworten mit Zitat      
Mit der Funktion

Code:


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.
Private Nachricht senden Benutzer-Profile anzeigen
 
HAL-9000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 05.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2012, 16:54     Titel:
  Antworten mit Zitat      
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 Wink

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?
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.05.2012, 17:51     Titel:
  Antworten mit Zitat      
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.

sin_testsignal.jpg
 Beschreibung:

Download
 Dateiname:  sin_testsignal.jpg
 Dateigröße:  57.88 KB
 Heruntergeladen:  981 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
HAL-9000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 05.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.05.2012, 19:49     Titel:
  Antworten mit Zitat      
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.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.05.2012, 11:11     Titel:
  Antworten mit Zitat      
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.

leakage.png
 Beschreibung:

Download
 Dateiname:  leakage.png
 Dateigröße:  72.83 KB
 Heruntergeladen:  998 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
HAL-9000
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 05.09.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2012, 12:46     Titel:
  Antworten mit Zitat      
Man, man, man, jetzt ist der Groschen gefallen! Rolling Eyes 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!"
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 20.05.2012, 14:44     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.