Hallo, ich möchte für eine FFT eine Fensterfunktion mit Quartus II generieren. Gibt es da mit den Megacorefunctions eine Möglichkeit die Fensterfunktion automatisch zu generieren? Sonst müsste ich mir die wohl selber schreiben, was sich wohl als relativ schwierig herausstellen wird. Vielen Dank für eure Hilfe. P.S.: Hab selber schon gesucht, konnte aber nur die Generierung von Sinus und Cosinus mit Hilfe des Cordic Bausteines finden.
Thomas Schneider schrieb: > die Fensterfunktion automatisch zu generieren Welches Fenster? > P.S.: Hab selber schon gesucht, konnte aber nur die Generierung von > Sinus und Cosinus mit Hilfe des Cordic Bausteines finden. Viele Fenster beruhen aucf diesen Funktionen: http://www.statistics4u.com/fundstat_germ/ee_fft_windowing.html Willst du das Fenster in Echtzeit berechnen? Ich könnte mir auch ein ROM vorstellen, das die Fensterfunktion (oder wenigstens einige Stützpunkte) enthält...
Lothar Miller schrieb: > Welches Fenster? Dasa Von Haan Fenster, Rechteck Fenster, Flat Top Fenster und eventuell noch andere. Zunächst will ich nur erst einmal wissen, wie ich generell Fenster generieren kann. Lothar Miller schrieb: > Willst du das Fenster in Echtzeit berechnen? > Ich könnte mir auch ein ROM vorstellen, das die Fensterfunktion (oder > wenigstens einige Stützpunkte) enthält... Ja, das soll ich Echtzeit berechnet werden, hatte mir auch grundsätzlich gedacht die Funktion oder ähnliches in ein ROM zu schreiben, aber wenn es Möglichkeiten gibt ein fertiges Projekt zu verwenden, dann ist das wohl einfacher als sich den Code selber zu schreiben.
Thomas Schneider schrieb: > Dasa Von Haan Fenster, Rechteck Fenster, Flat Top Fenster und eventuell > noch andere. Zunächst will ich nur erst einmal wissen, wie ich generell > Fenster generieren kann. Es soll halt die Möglichkeit geben die Fenster anzupassen, um das beste hinterher auszuwählen.
Die Fensterfunktion gehört aber in den A/D Block. (Na ja, eigentlich gehört sie zwischen A/D und FFT) Wie führst du die A/D Wandlung durch?
Ich weiß, das die Fensterfunktion zwischen AD Wandler und FFT Kommt. A/D Wander -> Fensterfunktion -> FFT Das ist ja auch nicht wirklich mein Problem. Stefan R. schrieb: > Wie führst du die A/D Wandlung durch? A/D Wandlung mache ich mit einem 14 BIT AD Wandler von Analog Devices. Der tastet auf 100 MHz ab, da FPGA mit 50 MHz läuft. Aber bei der Lösung meiner Frage hilft mir das jetzt nicht wirklich.
Thomas Schneider schrieb: > Aber bei der Lösung meiner Frage hilft mir das jetzt nicht wirklich. Doch, weil damit die Datenraten bekannt sind. Und die hat beim FPGA entscheidenden Einfluss auf die Implementierung... Ich würde villeicht erstmal mit einem Dreieeckfenster anfangen. Das kannst Du ganz ohne ROM mittels ein paar Zählern erzeugen. Duke
Ich habe bei mir mal nachgesehen und auch keinen IP-Core für ein Fenster gefunden. Da auch die anderen Altera-Funktionen nirgends ein Fenster zur Auswahl anbieten, fürchte ich fast, es ist ein technisches Problem und kein finanzielles (Linzensgebühr)
Stefan R. schrieb: > Da auch die anderen Altera-Funktionen nirgends ein Fenster zur Auswahl > anbieten, fürchte ich fast, es ist ein technisches Problem und kein > finanzielles (Linzensgebühr) Dann werde ich wohl nicht drum herum kommen mir selber eine Fensterfunktion zu generieren... Gibt es dazu denn irgendwelche Beispielcodes, oder muss ich das Rad neu erfinden? Hab bisher noch keine Funktion in einem FPGA erstellt.
Thomas Schneider schrieb: > Gibt es dazu denn irgendwelche Beispielcodes, oder muss ich das Rad neu > erfinden? Wie breit ist deine FFT? > Hab bisher noch keine Funktion in einem FPGA erstellt. Ich würde nach wie vor die ROM-Tabelle vorschlagen, da darf der Synthesizer die Fensterfunktion ausrechnen. So wie dort etwa (unten) http://www.lothar-miller.de/s9y/archives/37-DDFS-mit-BROM.html
Ich benutze gerne das HANN-windows. Nach meinen Erfahrungen reicht je nach Anforderungen eine COS-Funktion mit 1/4 bis 1/8 der Punkte, die für die FFT verwendet werden. Habe das auch mal mit MATLAB untersucht. Du kannst einen DDS aus dem Megacore/Wizzard verwenden oder dir die Tabelle selber machen. Letzteres ist gerade bei kleinen Tabellen sinnvoll, da die Umrechnung von COS auf z.B. HANN entfällt und schon in der Tabelle ladnet. Alternativ nimmst Du, wenn die Genauigkeit der Oberwellenabbildung nicht so von Interesse ist, meine favorisierte Pseudo-Sinus-Funktion: Y = X * (1-x). Das ist 10mal besser, als Dreieick.
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.