Ich brauche mal generelle Hilfe. Ich möchte in sehr beschränkten fpgas mit nur 16 18x18 multifliern eine 256 Punkt DFT bauen. Das möglichst direkt beim abtasten mit 20MHz. Die Formel für DFT ist ja recht simpel, aber: wie komme ich an den sinus und cosinus term? Macht man das mit lookup table? Könnte man in dieser lookup table auch das windowing unterbringen, also direkt verrechnet? Außerdem ist die Frage welches zahlenformat ich nutzen soll. Fixed point Arithmetik?
Tim S. schrieb: > Ich brauche mal generelle Hilfe. Das ist nicht generell, das ist schon sehr speziell. Und für generelle Fragen zur FT im suboptimalen Forum; unter https://www.mikrocontroller.net/forum/dsp finden sich eher die Antworter zu Fenster und signal processing. > Ich möchte > mit 16 18x18 multifliern eine 256 Punkt DFT bauen. Das möglichst > direkt beim abtasten mit 20MHz. > > Die Formel für DFT ist ja recht simpel, aber: wie komme ich an den sinus > und cosinus term? Macht man das mit lookup table? Klar mit ROM-Tabelle, da sollte genug BRAM als ROM auf dem FPGA nutzbar sein und natürlich genügt auch eine Tabelle für eine Viertelperiode plus etwas offsetrechnerei. > Könnte man in dieser > lookup table auch das windowing unterbringen, also direkt verrechnet? Also ein Einheitsrechteck-Fenster sicher ;-) andere m.E. eher nicht. > Außerdem ist die Frage welches zahlenformat ich nutzen soll. Na das was du im Vorfeld durch numerische Experimente als das Beste für Deine Anwendung ermittelt hast. Natürlich Fixpoint, Genauigkeit im wesentlichen durch die (doppelte?) Wortbreite des ADC bestimmt plus ein paar Extrabits und gelegentlichen Skalieren. Es gibt einige Toolpakete für die FPGA-Implementierung von solchen Algos, beispielsweise simulink oder http://notes-application.abcelectronique.com/056/56-39978.pdf Man kann sich aber auch den Algo in C runterhacken, natürlich nicht mit dem intrinsischen '+'-Operator sondern mit einem überladenen der den 18x18 multiplier entspricht. Statt simulink kann man sich heute auch GNU-SDR auf seine Eignung zur Algosimulation anschauen: https://wiki.gnuradio.org/index.php/FFT Anbei ein Auszug zur DFT-Implementierung aus ISBN:3-519-06157-0. Allerdings sollte man IMHO gleich eine FFT implementieren. Oder Goertzel wenn nur bestimmte Spektrallinien interessieren: https://de.slideshare.net/iaeme/implementation-of-modified-goertzel-algorithm-using-fpga Beitrag "FFT Algorithmus in FPGA umsetzen" Beitrag "8192-FFT aufteilen" Beitrag "fft analyse mit Frequenzspektrum" Beitrag "FFT IP Core von Xilinx"
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.