Hallo zusammen, im Rahmen eine Arbeit muss ich den FFT Radix 2, Radix 4 und Split Radix Algorithmen unter Matlab schreiben. Bis jetzt habe ich erfolgreich den Radix 2 und Radix 4 geschrieben. Da es unter Split Radix keine klar Regelmäßigkeit wie beim Radix 2 und 4 existiert, komme ich leider mit eine For Schleife nicht weiter, die diese Wiederholung gewährleisten musste. Wenn jemanden schonmal den Split Radix unter Matlab programmiert hat, bitte ich ihn mir eine paare Tips zu geben oder gegebenfalls den Code zuschicken. Danke im Vorraus. sihamile
sihamile schrieb: > Hallo zusammen, > > im Rahmen eine Arbeit muss ich den FFT Radix 2, Radix 4 und Split Radix > Algorithmen unter Matlab schreiben. Bis jetzt habe ich erfolgreich den > Radix 2 und Radix 4 geschrieben. Hm, hätte jetzt gedacht dass sowas in Matlab schon eingebaut ist... aber ist auch schon ne Weile her dass ich das letzte Mal damit gearbeitet habe. > Wenn jemanden schonmal den Split Radix unter Matlab programmiert hat, > bitte ich ihn mir eine paare Tips zu geben oder gegebenfalls den Code > zuschicken. Mit der Suchmaschine Deiner Wahl findest Du Implementierungen des Split Radix Algorithmus in Fortran und in C. Die nach Matlab zu portieren sollte so schwer nicht sein. Ein bisschen witzlos erscheint mir die Aufgabe freilich schon.
> Hm, hätte jetzt gedacht dass sowas in Matlab schon eingebaut ist Ich brauche den Algorithmus, der damit gearbeitert wurde, da ich später auf ModSim weiterarbeiten werde. Eine eingebaute Funktion (fft()) brauche ich nicht. > Mit der Suchmaschine Deiner Wahl findest Du Implementierungen des Split > Radix Algorithmus in Fortran und in C. Das habe ich schon gemacht liefert aber mir leider keine sinnvolle Ergebnisse, wenn ich reine cos oder sin Signale als input eingebe. Als Output bekomme ich entweder eine richtige Real Anteil oder Imag Anteil im Vergleich zu fft vom Matlab. Nur wenn ich ein input eingeben, das aus einem Cos und Sin Anteil eingebe, bekomme ein richtiges Output Signal. Leider habe ich unter C nicht passendes gefunden. > Die nach Matlab zu portieren sollte so schwer nicht sein. Es sollte kein Problem sein. > Ein bisschen witzlos erscheint mir die Aufgabe freilich schon. Wenn Du einen effizienten Algorithmus hast, würde ich ihn mir gern anschauen. Danke Ich freue mich auf Rückmeldungen.
sihamile schrieb: > Wenn Du einen effizienten Algorithmus hast, würde ich ihn mir gern > anschauen. Eine Beschreibung des Algorithmus: http://www.fftw.org/newsplit.pdf Auf www.fftw.org findet man generell auch Implementierungen zum Thema FFT. Eine mögliche Implementierung in C habe ich hier gefunden, die aber nicht direkt mit dem Artikel oben zusammenhängt. Verwendung auf eigene Gefahr und keine Gewährleistung für irgendwas: http://www.hackchina.com/en/r/41001/MRELFFT.C__html
Danke Mark, hat sich jemanden schonmal mit den Gewichtungsfaktoren (Wn^(1*n) und Wn^(3*n)) beschäftigt. Bei den Radix 2 und Radix 4 lassen sie sich die Gewichtungsfaktoren (Wn^(2*k) bsw Wn^(4*k)) einfach einem Array speichern und jedesmal wenn ein entsprechnenden Gewichtungsfaktor gebraucht wird, wird aus dem Array (Gewichtung Array) mit dem entsprechenden Index geholt. Diese Idee dient dazu, wenn man hardwarenah implementieren will, dass sich bei einem größeren Länge N die Anzahl der Operation mit den Gewichtungsfaktoren und den Speicherbedarf reduzieren lassen. Da es keine lögische Regelmäßigkeit bei den Split Radix gibt, will ich wissen, ob diesen Fall auch für den Split Radix möglich ist. Danke
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.