|
|
FFT in Matlab implementieren, Ergebnis ist gespiegelt darges |
|
to_ks |

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 25.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.06.2013, 20:53
Titel: FFT in Matlab implementieren, Ergebnis ist gespiegelt darges
|
 |
|
 |
|
Hallo Leute,
hab mich erst eben im Forum angemeldet.
Habe auch gleich meine erste Frage. Ich bin noch blutiger Anfänger und komme mit einer Aufgabe nicht ganz zurecht.
Ich weiß nicht ob es an der Mathematik dahinter liegt (evtl. ist ja da schon der Fehler), oder am Code.
Wäre für euer schnelle Hilfe sehr dankbar.
Ich muss die FFT in Matlap implementieren, also nicht die vorhandene MATLAB Funktion fft() verwenden. Sondern diese Funktion selber schreiben.
Mit DFT hat es auch recht gut funktioniert.
Das Ergebnis sieht gut aus.
N ist die Anzahl der Signale und wird durch das Messsignal selber gegeben. (ist ein anderes Unterprogramm)
Dasselbe nun als FFT.
Das Ergebnis stimmt jedoch mit der internen Matlab Funktion fft() nicht überein.
Woher kommt diese Spiegelung, was mach ich falsch.
Kann es mir einfach nicht erklären
Danke für jeglichen Hinweis
Gruß
Timo
Beschreibung: |
Die DFT nach der ich es Programmiert habe. |
|
 Download |
Dateiname: |
DFT.jpg |
Dateigröße: |
7.29 KB |
Heruntergeladen: |
694 mal |
Beschreibung: |
Die FFT nach der ich es Programmiert habe. |
|
 Download |
Dateiname: |
FFT.jpg |
Dateigröße: |
26 KB |
Heruntergeladen: |
702 mal |
|
|
|
|
|
Bibonaut |

Forum-Fortgeschrittener
|
 |
Beiträge: 60
|
 |
|
 |
Anmeldedatum: 06.06.13
|
 |
|
 |
Wohnort: Berlin
|
 |
|
 |
Version: 2013a
|
 |
|
|
 |
|
Verfasst am: 25.06.2013, 23:49
Titel:
|
 |
|
 |
|
Hallo,
die FFT lässt sich glaube ich nicht so einfach programmieren.... glaube ich Dass, was du unten als FFT angegeben hastist nur der Ansatz für die Zerlegung, die bei der FFT durchgeführt wird (Vermutung...). Hast du das zufällig aus diesem Buch:
Werner, M.: Digitale Signalverarbeitung mit MATLAB: Grundkurs mit 16
ausführlichen Versuchen. Vieweg+Teubner Verlag, 2008 (Studium Technik).
ISBN 9783834804570
Da steht es nämlich als erster Ansatz oder Einleitung für den Radix2 Algorithmus drin (Hab ich gerade zufällig gesehen, weil ich mich neulich auch mal damit genauer auseinander gesetzt habe).
Schau am besten mal in das Buch. Da ist der Algorithmus ausführlich beschrieben. Oder Google
Zu dem gespiegelten Spektrum:
Wenn du ein reales Spektrum mit der DFT zerlegst, erhältst du ein komplexes Spektrum (liegt an der DFT). Das komplexe Spektrum hat für k> N/2 die komplex Konjugierten Werte von k < N/2. Das Spektrum ist zu N/2 symmetrisch.
Wenn du dann aus dem Spektrum mit der inversen FFT dein Signal zurückzauberst, heben sich die Imaginärteile wieder auf (da komplex konjugiert) und du erhältst wieder dein reales "Mess"-Signal.
Um dir die korrekte Amplitude des realen Signals in Matlab anzeigen zu lassen, muss du die Hälfte des Spektrums nehmen und verdoppeln.
Schau am besten mal in das Buch und in die Matlab Hilfe zu fft().
Anbei ein kleiner Ausschnitt aus einer Hausaufgabe, die ich dazu mal machen musste. Sind nur 2,5 Seiten. Vielleicht hilfts auch ein bisschen.
Viele Grüße und viel Erfolg!
Beschreibung: |
|
 Download |
Dateiname: |
DFT_kurz.pdf |
Dateigröße: |
80.48 KB |
Heruntergeladen: |
7037 mal |
|
|
|
to_ks |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 6
|
 |
|
 |
Anmeldedatum: 25.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.06.2013, 02:03
Titel:
|
 |
|
 |
|
Hallo
erst mal danke für deine Info.
Es ist schon spät und ich hab mir deinen Anhang noch nicht genauer angeschaut.
Aber klar die info hab ich vergesse zu erwähnen , diese ist natürlich nicht die richtige FFT. wie soll ich sagen, es ist nur der "erste Durchgang" der FFT.
das zerlegen in Gerade und ungerade Signale lässt sich ja solange durchführen bis ich nur noch 2 Signale habe.
Aber um das Prinzip zu veranschaulichen und das es wesentlich schneller arbeitet, reicht mir dieses Darstellung. Also das ich das Signal nur einmal in gerade und ungerade indizierte Signalwerte aufteile.
Auch das mit der Spiegelung war wohl die falsche Wort Wahl
Es stimmt das es natürlich ist das sich das Spektrum durch die positiven und negativen Anteile der Komplexenzahl speigelt.
Den Fehler wo ich erhalte ist eine zusätzliche "Spiegelung" (eigentlich ist es keine Spiegelung weiss nur nicht wie ich es Nennen soll).
Ich hänge mal kurz Bilder an um mein Problem zu zeigen.
Ist denk ich einfacher wie es zu erklären.
Am Beispiel des folgenden Signales
Gruß
timo
ps.
oh verdammt, kann ich dir Bilder im Anhang irgendwie kleiner machen, dachte da kommen nur Vorschaubilder zum draufklicken. das wird ja etwas unübersichtlich.
Beschreibung: |
hier der interessante Teil des Spektrums nochmal vergrößert. |
|
 Download |
Dateiname: |
Das Spektrum vergrößert meiner FFT.jpg |
Dateigröße: |
37.06 KB |
Heruntergeladen: |
684 mal |
Beschreibung: |
hier das Spektrum mit meiner FFT. Auf der linken und rechten Seite sieht es gut aus, aber in der Mitte bekomme ich diese "Spiegelung". Woher, wieso? |
|
 Download |
Dateiname: |
Das Spektrum mit meiner FFT.jpg |
Dateigröße: |
40.32 KB |
Heruntergeladen: |
667 mal |
Beschreibung: |
DAs Spektrum mit der internen Matlab fft. Schön zu sehen die Spiegelung an der rechten Seite, das ist soweit OK und verstanden. |
|
 Download |
Dateiname: |
Spektrum mit Matlab internen fft().jpg |
Dateigröße: |
37.5 KB |
Heruntergeladen: |
687 mal |
Beschreibung: |
|
 Download |
Dateiname: |
Signal.jpg |
Dateigröße: |
46.84 KB |
Heruntergeladen: |
699 mal |
|
|
|
|
|
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 - 2025
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.
|
|