Wie setze ich ein FIR-Filter aus MATLAB um ?

Gast #1084535
Lesenswert?

Habe mal ein Filter mit dem FDATool von MATLAB entworfen.
Verstehe jedoch nicht die Umsetzung in VHDL.
Wo benötige ich welche Bitbreite und welchen Datentype ?
Habe ausserdem ein Warning das Input zugewiesen aber nicht benutzt wird.
Wie kann ich die Wav-Datei die ich unter Simulink verwende auch in der 
Simulation mit Xilinx ISE verwenden ?

Danke
Angehängte Dateien:
Gast #1085495
Lesenswert?

Habe das Programm ausprobiert.
Ich erhalte 41 Warnings. Darunter viele Meldungen der Form "Signal is 
assigned but never used" und ein einzelnes Latch. Weitere 
Fehlermeldungen ergeben sich aus der Verwendung des Latches. Mit 21 
Koeffizienten mit je 8 Bit ergibt sich für einen Spartan 3E folgendes.

Selected Device : 3s100etq144-5

 Number of Slices:                      576  out of    960    60%
 Number of Slice Flip Flops:            975  out of   1920    50%
 Number of 4 input LUTs:                973  out of   1920    50%
 Number of IOs:                          43
 Number of bonded IOBs:                  43  out of    108    39%
 Number of GCLKs:                         1  out of     24     4%

Hat jemand schon Erfahrungen welche FIR-Filtergrösse sich auf welchem 
FPGA realisieren lässt ? So Pi mal Daumen würde ich sagen das vielleicht 
noch ein Filter 30 Ordnung mit 8 Bit Koeffzienten auf den Spartan 3E 
passt.
Trifft es zu das ich für einen IIR-Filter eine wesentlich grössere 
Bitbreite der Koeffizienten, bei gleicher Filterordnung, benötige ? 
(Durch die Rückkopplung des IIRs bedingt ist wahrscheinlich eine 
grössere Auflösung bzw. Rechengenauigkeit erforderlich). Ich habe den 
FIR-Filter 20 Ordnung (Least Squares) auch als IIR-Filter 20 Ordnung 
(Chebyshev Type II) mit dem FDATool "realisiert". Der Passbandbereich 
wird hier zwar sehr viel besser angenähert, bei der Umsetzung in Fixed 
Pont sind jedoch 20 Bit erforderlich.
Der FIR-Filter ist doch im Core Generator der freien Version enthalten. 
Natürlich erhält man dann kein VHDL-File. Werde mir erst mal die 
Beschreibung von Xilinx durchlesen, da ich einige Einstellungen noch 
nicht verstehe.
(Firma: abaxor engineering) #1087377
Lesenswert?

Hans-Werner wrote:
> Den gibt es, denke ich, nur bei der Vollversion.
> Entfällt also.

Also im 10.1 Webpack ist ein coregen mit dabei.

In Matlab gibt es eine Funktion coewrite (welche Tollbox?) die erzeugt 
dir eine coe-File. Das musst du nur noch mit dem Coregen einlesen, der 
Rest passiert von allein. Dann ist nur noch der Core richtig 
anzusteuern.


Tom
Gast #1087877
Lesenswert?

Hallo,

ich habe mit dem FDATool meine Filterdesigned und mir dort die 
Filterkoeffizienten in ein Xilinx Coefficient File (*.coe) vom FDATool 
schreiben lassen. Den Filter selbst habe ich dann per "Hand" in VHDL 
umgesetzt.

Die Größe der Filter hängt auch von der Implementierung ab (Normalform, 
transponierte Form, Polyphasen Filter, ...).

Gute Literatur zur FIR-Filter Implementierung
- Meyer-Baese: Digital Signal Processing with Field Programmable Gate 
Arrays
- Reichardt/Schwarz: VHDL-Synthese, 4. Auflage.

McTen

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