Forum: Digitale Signalverarbeitung / DSP / Machine Learning Verständnisproblem - FIR-Filter


von Tom (Gast)


Lesenswert?

Hallo,

ich habe ein Verständnisproblem bei den FIR-Filtern. Vieeleicht kann mir 
jemand weiterhelfen.

Ich möchte meinen Analogeingang per Bandpass filtern und diese Daten am 
Analogausgang wieder ausgeben.

Dazu bekomme ich per DMA Audio-Happen die 64 Elemente umfassen. Setze 
ich auf diesen Buffer jetzt den FIR-Filter an, so bekomme ich bei den 
ersten Elementen ein Problem, da die Werte X[n-k] ja nicht mehr 
vorhanden sind. Diese wurden ja in dem vorangegangenen Buffer bereits 
geschickt.

Meine Frage: Das ließe sich ja lösen in dem ich den vorangegangen Buffer 
zusätzlich speichere.  Da ich wenig RAM habe würde ich das aber doch 
gerne vermeiden. Muss ich das tun oder gibt es für das Problem einen 
anderen Weg?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Wenn es ein FIR-Filter sein soll, dann kommst du nicht drum rum 
entsprechend der Filterlänge genügend alte Samples zu speichern. 
Allerdings musst du nicht den ganzen vorherigen DMA-Block speichern. 
Spendier dem Filter einen eigenen Ring Buffer der die letzten K 
(K=Filterlänge) Samples speichert.

von Tom (Gast)


Lesenswert?

Danke für die Info.

Ich habe meinen Buffer jetzt zu einem Ring-Buffer abgeändert. Allerdings 
stoße ich dabei auf ein weiteres Problem. Wenn ich die DSP-Lib von TI 
verwenden will, dann kann ich diese gar nicht nutzen ohne die Daten 
vorher in einen anderen Buffer zu kopieren. Ein Ring-Buffer wird von der 
Bibliothek nicht unterstützt.

Mal von meinem RAM-Problem abgesehen, wäre damit der gesamte 
Zeit-Vorteil der DSP-Lib hinfällig.

Hat die DSP-Lib schon jemand mal benutzt?

von Mark B. (markbrandis)


Lesenswert?

Tom schrieb:
> Wenn ich die DSP-Lib von TI verwenden will, dann kann ich diese gar nicht
> nutzen ohne die Daten vorher in einen anderen Buffer zu kopieren. Ein
> Ring-Buffer wird von der Bibliothek nicht unterstützt.

Das finde ich jetzt insofern ein wenig kurios, als dass gerade 
Ringpuffer in der Signalverarbeitung oft und gerne verwendet werden. So 
werden zum Beispiel die Koeffizienten für ein FIR-Filter üblicherweise 
als Ring betrachtet, man setzt einen Zeiger auf das erste Element und 
dann geht's fröhlich immer in die Runde rum ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.