mikrocontroller.net

Forum: FPGA, VHDL & Co. Fensterfunktion Quartus II


Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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_w...

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

Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan R. (stefripp)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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-m...

Autor: Thomas Schneider (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar Miller schrieb:
> Wie breit ist deine FFT?

1024

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.