mikrocontroller.net

Forum: FPGA, VHDL & Co. fpga-implementierung eines digitalfilter


Autor: salas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schön guten tag zusammen,ich begrüsse euch ...,
 Ich hätte gern die Implementierung(digitalfiltern FIR und IIR) von
Algorithmen der Digitalen Signalverarbeitung demonstrieren und
untersuchen und das wird durch die anwendung verschiedener Zahlen-und
Arithmetiksysteme.

das ist ja mein problem und hätte gern fragen , wie soll ich mal
anfangen und welche Schritte soll ich folgen.????

ich bedanke mich im voraus.

Autor: TheMason (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo salas,

ganz so einfach ist es nicht. es gibt ja bei filtern unterschiedliche
implementierungsformen (abhängig von der mathematik die dahinter
steckt).
für welchen bereich soll es denn gelten (audio/hf/regelung usw.) ?

ich selbst arbeite an einem audio-prozessor (gibt es auch ein projekt
zu .. siehe http://www.mikrocontroller.net/articles/Audio-Projekt )
und benutze iir-filter mit der kanonischen form (war es glaube ich, bin
mir aber nicht so sicher, da ich in mathe nicht so fit bin).
ein buchtip vielleicht zum einstieg : digitale signalverarbeitung von
udo zölzer. ist speziell für den audio-bereich und enthält
einigermassen anschaulich grundlagen. (und formeln zur berechnung von
filterkoeffizienten)

gruß
rene

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Buch "DSP with Field progr. Gate Arrays" ist auch sehr zu
empfehlen zu diesem Thema. Da stehen konkrete Realisierungen von FIR-
und IIR-Filtern in VHDL und Verilog drin. Aber natürlich muss man sich
die Filterkoeffizienten erstmal vorab berechnen, mit Matlab zB.

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal aus dem Buch den VHDL-Code eines FIR-Filters mit den 4
Koeffizienten: -1, 3.75, 3.75, -1
PACKAGE eight_bit_int IS    -- User defined types
  SUBTYPE BYTE IS INTEGER RANGE -128 TO 127;
  TYPE ARRAY_BYTE IS ARRAY (0 TO 3) OF BYTE;
END eight_bit_int;

LIBRARY work;
USE work.eight_bit_int.ALL;

LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_arith.ALL;

ENTITY fir_srg IS                         ------> Interface
  PORT (clk   :   IN  STD_LOGIC;
        x     :   IN  BYTE;
        y     :   OUT BYTE);
END fir_srg;

ARCHITECTURE flex OF fir_srg IS

  SIGNAL tap : ARRAY_BYTE;   -- Tapped delay line of bytes
  
BEGIN

  p1: PROCESS             ------> Behavioral Style 
  BEGIN
    WAIT UNTIL clk = '1';
  -- Compute output y with the filter coefficients weight.
  -- The coefficients are [-1  3.75  3.75  -1]. 
  -- Multiplication and division for Altera VHDL are only
  -- allowed for powers of two! 
    y <= 2 * tap(1) + tap(1) + tap(1) / 2 + tap(1) / 4 
         + 2 * tap(2) + tap(2) + tap(2) / 2 + tap(2) / 4 
         - tap(3) - tap(0);
    FOR I IN 3 DOWNTO 1 LOOP 
      tap(I) <= tap(I-1); -- Tapped delay line: shift one
    END LOOP;
    tap(0) <= x;                -- Input in register 0
  END PROCESS;

END flex;
Vielleicht nützt dir das was, kannst dich ja mal versuchen
reinzufuchsen. Mich brauchst du zu dem Code nicht zu fragen, hab mich
(noch) nicht gross mit dem Buch beschäftigt...

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.