www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Trigonometrische Interpolation - Wie umsetzen???


Autor: Matthias Hartmann (harti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich habe eine Dezimiererstruktur mit anschließender Tiefpassfilterung
im FPGA implementiert. Die Dezimierung war für die weitere
Signalverarbeitung notwendig gewesen.

Nun soll ich das gefilterte Signal mit Hilfe eines Delta-Sigma DAC
wieder analog ausgeben. Hierfür muss die anfangs dezimierte
Samplingrate wieder erhöht werden.
Als Ansatz dachte ich an eine Trigonometrische Interpolation bzw. an
einen CIC-Interpolator (Sinc-Interpolator).
In der Theorie sehen diese Ansätze nicht so schwer aus, bei der
Umsetzung fehlt mir leider jeglicher Ansatz für die Realisierung der
Upsamplingstruktur.

Hat jemand bereits Erfahrungen mit Interpolationsalgorithmen bzw. einen
kleinen Quellcodeansatz.

Schon mal Vielen Dank,
Matthias

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

Du fügst zwischen 2 Samples so viele Nullen ein, wie nötig,
um eben die höhere Abtastrate zu erreichen.
Anschließend folgt ein TP, der alle Signale die größer
sind als die halbe original-Abtastrate unterdrückt.

Einen TP hast Du ja offenbar schon realisiert, also sollte das
kein Problem sein.

Da durch diesen TP sehr viele Nullen geschoben werden und eine
Multiplikation mit 0 ziemlich sinnlos ist, kann man bei
hohen Interpolationsfaktoren vorteilhaft sog. Poly-Phase
Filter einsetzen, aber das führt hier wahrscheinlich zu weit.

Also probiers erstmal mit dem simplen TP.

Autor: Matthias Hartmann (harti)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für Deine schnelle Antwort,

für kleine Interpolationsfaktoren läuft es super.
Werde es mal mit den Poly-Phase Filtern versuchen um Upsamplingraten
von 2^3 bis 2^13 realisieren zu können.

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matthias,

bei Upsampling-Raten > Faktor 8 wird man wahrscheinlich stufenweise
vorgehen müssen, also vielleicht mehrere x8 -Stufen kaskadieren.
Ansonsten werden vermutlich die Anforderungen an das Filter
zu hoch und die Implementierung ineffizient.

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.