Forum: Digitale Signalverarbeitung / DSP / Machine Learning Welcher DSP reict für FIR (3000 Werte)


von Dirk (Gast)


Lesenswert?

Hi, ich muss einen Filter bauen und muss einen FIR Filter umsetzen.
Die Daten kommen mit ca. 100KHz rein und ich brauche einen Filter mit 
3000 Werten.
Das macht somit maximal 10us für die ganze Berechnung.
Ist das mit einem DSP überhaupt machbar und wenn ja welchen würdet Ihr 
mir empfehlen?

Dirk

von Detlef _. (detlef_a)


Lesenswert?

100kHz mal 3000 MACs macht nach A.Riese 300MMACs.
Dann geht man dorthin
http://focus.ti.com/en/multimedia/flash/selection_tools/dsp/dsp.html
oder zu den anderen Verdächtigten, zieht die Schieberegler und weiß 
Bescheid.

So geh das.
Cheers
Detlef

von Mark B. (markbrandis)


Lesenswert?

Nur mal so aus Interesse, was ist denn das für eine Monster-Anwendung? 
:-)

von Dirk (Gast)


Lesenswert?

Ein einfacher Filter mit ein wenig zurecht biegen der Frequenzen.
Ist eine Signalaufbereitung von einem nicht linearen Sensorsystems und 
kleinere Filter zeigten in der Simulation nicht den gewünschten Erfolg.

Die DSPs kosten für dieses Projekt dann doch recht viel, der gesamt 
preis wird dadurch glatt auf das Doppelte bis 4 fache teurer.
Da muss ich wohl nach was anderem suchen.
Ob ein kleiner FPGA (max 15 Euro) gehen würde?

VG, Dirk

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Eine Möglichkeit wäre IIR statt FIR (weniger Koeffizienten, dafür 
komplizierteres Design und Implementierung). Falls FIR nötig, dann 
blockweise mit FFT statt Faltung (Overlap-Add, Overlap-Save) -> 
Komplexität O(N log(N)) statt O(N²).

von Strubi (Gast)


Lesenswert?

Moin,

die Frage stellt sich v.a. nach der Peripherie, soll die Verarbeitung 
direkt oder RAM-gepuffert geschehen, und wo müssen die Daten nachher 
hin? Welches Interface?
Reichen 16 Bit? Wieviel RAM brauchst du für dein Konzept?

Für 16bit per SPORT wüsste ich eine Lösung mit dem Blackfin, da würde es 
auch einer aus der billigen 50x-Reihe eventuell tun. Das kritische ist 
meist  nicht die Berechnungsdauer sondern das Zusammenspiel 
Peripherie/DMA, usw.
Und den FIR solltest du auf jeden Fall in Assembler programmieren um die 
Pipeline schön voll zu halten und die parallelen Befehle voll 
auszunutzen.
Unter Umst. ist da das FPGA geeigneter im Sinne von "keep it simple". 
Ein Killerkriterium bei den DSPs ist, dass die Effizienz flöten geht, 
wenn man während der Berechnung (in der HW-Schleife) irgendwelche 
Overflow/Range-Checks macht (if/else). Tut man normalerweise nicht, aber 
das so am Rande.

Gruss,

- Strubi

von Stefanie B. (sbs)


Lesenswert?

Andreas Schwarz schrieb:
> Eine Möglichkeit wäre IIR statt FIR (weniger Koeffizienten, dafür
> komplizierteres Design und Implementierung). Falls FIR nötig, dann
> blockweise mit FFT statt Faltung (Overlap-Add, Overlap-Save) ->
> Komplexität O(N log(N)) statt O(N²).

Wenn die Latenz kritisch ist, ein partitioniertes Overlap-Add/Save ;)

IIR kann keine linearphasig Implementation, (das sollte aber nur für 
Sprachsignale wichtig sein?)

von Dirk (Gast)


Lesenswert?

Danke für die Antworten.

Ich bekomme von einem AD-Wandler 16/24Bit mit 96,... KHz Daten.
Das ist ein Audio Wandler, es wird aber nur ein Kanal ausgewertet.

Die Daten gehen durch den Filter und werden wieder raus gegeben an einen 
DA-Wandler und an einen ARM7.

Der DA-Wandler ist zur direkten Ausgabe der Daten zum ansehen und ob der 
Filter sauber arbeitet.
Der ARM7 macht ein paar Auswertungen damit und kümmert sich um alles 
andere auf dem System.

VG, Dirk

von Martin K. (mkmannheim) Benutzerseite


Lesenswert?

Dirk schrieb:
> Ob ein kleiner FPGA (max 15 Euro) gehen würde?

Eher nein. Meine Suchen fallen regelmäßig zugunstens eines DSPs aus.
Nur wenn es vom speed her garnicht geht. Aber was für einen FPGA bekommt 
man schon für 15,-?

Spartan 3A50?

von Dirk (Gast)


Lesenswert?

Wird ein XMOS Prozessor (ca. 6 EURO) als Schnittstelle.
Und entweder bleibt der ARM dahinter oder Alternativ kommen weiter 1-3 
XMOS L1 drauf. Den kann ich noch löten!

von Dirk (Gast)


Lesenswert?

Ich meinte mit Schnittstelle den Filter!

Der eine oder andere TI DSP hatte es mir auch angetan, aber da stand 
dann immer wieder das Löten im weg.
Vielleicht bin ich aber auch nur blind und übersehe den richtigen DSP 
ständig.

von Uwe (Gast)


Lesenswert?

Bist du dir sicher das du einen Filter mit 3000 taps brauchst ? Ich 
glaube da hast du irgendwas nicht verstanden.

> Ich bekomme von einem AD-Wandler 16/24Bit mit 96,... KHz Daten.
>Das ist ein Audio Wandler, es wird aber nur ein Kanal ausgewertet.

>Die Daten gehen durch den Filter und werden wieder raus gegeben an einen
>DA-Wandler und an einen ARM7.

guck dir mal die Signal Processing Features vom tlv320aic3204 an (Seite 
45). http://www.ti.com/lit/ds/symlink/tlv320aic3204.pdf

von Dirk (Gast)


Lesenswert?

Das ganze System wird sich nochmal komplett ändern.
Manche Projekte hätte man lieber nie angefangen.

Aufgrund vom geänderten System habe ich, nach weiteren Berechnungen und 
Simulationen das ganze auf knapp 2000 Taps reduziert.
Aber aufgeteilt auf 9 einzelne Filter. Zerlegen in 5 Bänder und wieder 
zusammen fügen!
Die einzelnen Signale (5 Bänder und gesamt) werden dann entsprechend 
weiter verarbeitet.


Audio ist leider was anderes wie Sensoren.
Glaube das bei Audio ein Filter mit 50-100Taps mehr als ausreichen 
würde.
Das könnte der ARM7 locker noch alleine machen.

von Uwe (Gast)


Lesenswert?

> Ich bekomme von einem AD-Wandler 16/24Bit mit 96,... KHz Daten.
>Das ist ein Audio Wandler, es wird aber nur ein Kanal ausgewertet.

oder

> Audio ist leider was anderes wie Sensoren.
> Glaube das bei Audio ein Filter mit 50-100Taps mehr als ausreichen
> würde.

Was denn jetzt ?

von Max G. (l0wside) Benutzerseite


Lesenswert?

Dirk schrieb:

> Aber aufgeteilt auf 9 einzelne Filter. Zerlegen in 5 Bänder und wieder
> zusammen fügen!
> Die einzelnen Signale (5 Bänder und gesamt) werden dann entsprechend
> weiter verarbeitet.

Wenn Du ohnehin schon in einzelne Bänder zerlegst (wie? Mit blockweiser 
FFT?), warum rechnest Du dann nicht gleich das ganze Filter im 
Frequenzbereich?

Max

von Dirk (Gast)


Lesenswert?

Sensor Signal aber mit einem Audiowandler aufgenommen!

FFT ist zwar auch möglich aber ... Nein will ich nicht!

von Max G. (l0wside) Benutzerseite


Lesenswert?

Dirk schrieb:
> Sensor Signal aber mit einem Audiowandler aufgenommen!

Das ist zunächst mal ziemlich egal.

> FFT ist zwar auch möglich aber ... Nein will ich nicht!

Das hört sich ja an wie der Suppenkaspar ("Meine Suppe ess ich nicht, 
nein meine Suppe ess ich nicht"). Aber ein jeder ist seines Glückes 
Schmied...

Max

von Dirk (Gast)


Lesenswert?

Manchmal muss man halt stur sein und was entscheiden.
Sonst kommt am ende nichts raus, weil man schon beim Start immer was 
besseres findet. Was verbessern kann man später immer noch, aber erst 
einmal muss was funktionierendes auf dem Tisch liegen.
Und die Planung beende ich jetzt, hat genug Zeit verbraten.
Nun wird das stur durch gesetzt.

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.