Fensterfunktion Quartus II

Gast #2073759
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.
Moderator (Firma: Titel) Persönliche Seite #2073791
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...
Gast #2073812
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.
Gast #2073862
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.
Gast #2073882
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
Gast #2073893
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.
Moderator (Firma: Titel) Persönliche Seite #2073906
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
Persönliche Seite #2075316
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren