Forum: FPGA, VHDL & Co. Fensterfunktion Quartus II


von Thomas Schneider (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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...

von Thomas Schneider (Gast)


Lesenswert?

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.

von Thomas Schneider (Gast)


Lesenswert?

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.

von Stefan R. (stefripp)


Lesenswert?

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?

von Thomas Schneider (Gast)


Lesenswert?

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.

von Duke Scarring (Gast)


Lesenswert?

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

von Stefan R. (stefripp)


Lesenswert?

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)

von Thomas Schneider (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Thomas Schneider (Gast)


Lesenswert?

Lothar Miller schrieb:
> Wie breit ist deine FFT?

1024

von J. S. (engineer) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.