|
|
|
FFT OHNE fft() in Matlab was mache ich Falsch? |
|
| Noy |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 16:04
Titel: FFT OHNE fft() in Matlab was mache ich Falsch?
|
 |
Also für ein FH Projekt muss ich von einem Array mit abgetasteten Werten das Spektrum erstellen. Wobei wir aber nicht die fft() Funktion von Matlab verwenden dürfen. Mit einer selbst geschriebenen DFT funktioniert es schon aber es ist halt relativ langsam daher versuche ich gerade es mit einer FFT zu bewerkstelligen. Aber irgendwie klappt da was nicht. Das Spektrum schaut zwar ganz gut aus aber die Frequenzen und die Werte stimmen nicht.
AbtWe() sind die Abtastwerte.
o ist die Anzahl meiner Abtastwerte.(400 insgesamt) Anzahl sind das gleiche.
Hier das sind vorherige Versuche die aber alle nicht so wirklich klappen wollten.:
Vielleicht findet Ihr ja den Fehler.
Nur fals jemand ganz schlau sein will:
WIE GESAGT WIR DÜRFEN KEINE FFT() FUNKTION BENUTZEN!!!
|
|
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 17:46
Titel: Re: FFT OHNE fft() in Matlab was mache ich Falsch?
|
 |
Hallo Noy,
Das Programm ist in Matlab sehr ineffizient geschrieben. Aber das läßt sich verbessern, wenn es erstmal die richtigen Ergebnisse liefert.
Wozu kopierst Du X? Und wieso ist dies 1i*AbtWe(n+1)? Damit enthält doch Z und X die gleichen Elemente (bis auf eines und den imaginären Faktor).
Zudem kommt X später gar nicht mehr vor, oder?
Gruß, Jan
|
|
|
|
| Noy |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.12.2011, 19:07
Titel:
|
 |
Oi,
hab da einen Fehler gemacht, es müsste so heißen:
So müsste es passen. X und Z enthalten nicht die gleichen werte. Z enthält alle ungeraden Werte der Abtastwerte und X alle geraden mit i multipliziert.
Die Formeln hab ich von hier :
http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation
unter Formelle Beschreibung.
Die FFT ist ja nur deshalb so schnell weil die Abtastwerte aufgeteilt werden man also nur noch Anzahl/2 hat die verrechnet werden müssen. Oder?
Weiter unten die Versuche sind noch so gehalten das nur ein Array beschrieben wird wobei dann jeder 2. Wert Imaginär ist. Das funktioniert soweit auch. Nur dann läuft irgendwas schief. Ich denke meine for-Schleifen End Werte von p stimmen nicht ganz.Weiß nicht ob p bis Anzahl oder Anzahl-1 oder Anzahl/2 oder (Anzahl/2)-1 laufen muss.
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 22.12.2011, 00:09
Titel:
|
 |
Ich empfehle dir mal folgendes Skript inkl. Programmcode:
http://www.dspguide.com/ch12/3.htm
Ist zwar eine andere Programmiersprache...wer aber z.B. C kann, versteht die Zeilen auch.
|
|
|
|
|
|
|
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.
|
|