Forum: Digitale Signalverarbeitung / DSP / Machine Learning Brauche Entscheidungshilfe für HW für Digitalfilter


von Alexxx (Gast)


Lesenswert?

Hallo,

ich habe die Aufgabe in einer Firma einen vorhandenen (genialen) 
Digitalfilter (FIR, sym. 512 Pole, programmierbar)in einem Sensor leider 
ersetzen zu müssen. Ein Xmega ist für die Steuerung schon vorhanden...

Einmal habe ich 16Bit 140KSPS, im anderen Fall 24Bit 40KSPS (mit 
Dezimation der Ausgangswerte). Die Messwerte kommen über 3,3V SPI von 
ADCs.
Gewünscht: Durchlassbereich: 0,003 * Fabtast; Sperrdämpfung >= -120dB 
bei 0,012*Fabtast
Die Lösung sollte möglichst klein sein, "einfach" und mit unter 1/2 Watt 
auskommen.
FIR-Filter sind mir bis jetzt lieber, wegen leichter Berechenbarkeit der 
Koeffizienten und wegen der nötigen Integer-Arithmetik.
Prinzipiell bin ich aber auch für eine IIR-Lösung offen.

Als Möglichkeiten gibt es ja die FPGAs, habe aber noch keine Ahnung von 
VHDL und eine Entwicklungsumgebung kostet auch eine Stange Geld.
Außerdem brauchen die ja einen externen Flash.

Wie sieht es mit den ARM-/ Cortex-Prozessoren aus, wie leistungsfähig 
sind die für digitale Filterung (FIR / IIR)? Welche Typen wären am 
geeignetsten?

Die dsPICs sind ja schon ziemlich betagt. Lohnt sich das noch da 
einzusteigen? Wären die überhaupt leistungsfähig genug?

Welche Erfahrungen habt ihr mit den Analog Devices-DSPs?
Welche Alternativen gibt es noch?

Suche also dringendst fundierte Entscheidungshilfen.

von foo (Gast)


Lesenswert?

Alexxx schrieb:
> Als Möglichkeiten gibt es ja die FPGAs, habe aber noch keine Ahnung von
> VHDL und eine Entwicklungsumgebung kostet auch eine Stange Geld.
> Außerdem brauchen die ja einen externen Flash.

Die Altera Quartus Web-Edition ist kostenlos und kann alles was du 
brauchst.

Von Altera gibts demnächst die MAX10, die eingentlich ganz gut auf deine 
Aufgabe passen sollten.

von Jost .. (jojocp)


Lesenswert?

Hallo Alex.

Xilinx bietet auch eine kostenlose Entwicklungsumgebung für ihre FPGA's 
an.
Grundsätzlich sind FPGA's bei solchen Aufgaben die schnellsten 
Kandidaten, scheinen mir für deinen Zweck jedoch etwas übertrieben und 
im Vergleich zu anderen Lösungen zu teuer (selbst die kleinsten kommen 
schnell an 30€ ran).

Meiner Meinung nach ist die beste Alternative ein ARM µC. Die sind schon 
ziemlich Leistungsfähig und recht günstig zu haben.
Für deinen speziellen fall würde ich dir einen M4 Kern empfehlen. Kann 
jedoch schon mit M3 oder sogar mit M0 laufen - einfach ausprobieren. 
Klarer Vorteil des M4 Kerns ist auf jeden fall die DSP Erweiterung und 
die Floating Point Unit.

Grüße

von foo (Gast)


Lesenswert?

Jost H. schrieb:
> Grundsätzlich sind FPGA's bei solchen Aufgaben die schnellsten
> Kandidaten, scheinen mir für deinen Zweck jedoch etwas übertrieben und
> im Vergleich zu anderen Lösungen zu teuer (selbst die kleinsten kommen
> schnell an 30€ ran).

Red kein Blech! Die kleinsten kosten nicht mal 3€ (wenn man nicht grad 
Einzelstückzahlen nimmt) und haben haben ein paar DSP-Böcke drin.

von Detlef _. (detlef_a)


Angehängte Dateien:

Lesenswert?

>>>>Gewünscht: Durchlassbereich: 0,003 * Fabtast; Sperrdämpfung >= -120dB
bei 0,012*Fabtast

Mit den Anforderungen komme ich mit schnellem hack auf ein FIR 512ter 
Ordnung oder ein elliptisches Filter (IIR) 7ter Ordnung, Frequnzgänge 
als Bild.

>>Einmal habe ich 16Bit 140KSPS, im anderen Fall 24Bit 40KSPS (mit
Fürs 140/40KSPS beim FIR also 71/20 MegaMACs/sec (multiply/accumulate), 
beim IIR (15MACs/sample) 2.1/0.6 MegaMACs/sec.

Son kleiner ARM Cortex kann den IIR auf jeden Fall, ansonsten können die 
doch in der Regel einen MAC/Takt, bißchen schneller getaktet und alles 
ist gut.

Auf jeden Fall braucht man da als hardware höchstens obere Unterklasse, 
FPGA ist da Kanone auf Spatzen.

Cheers
Detlef

clear
fb=firls(512,[0  0.0001/2 2*0.012 1],[1 1 1e-6 1e-6]);
[feb,fea]=ellip(7,3,120,0.0105);
%fb=fir1(1024,0.003);
f=linspace(0,20,1000)/1000;
H=freqz(fb,1,f,1);
He=freqz(feb,fea,f,1);
clf
plot(f,20*log10(abs(H)/max(abs(H))),'.-',...
    f,20*log10(abs(He)/max(abs(He))),'.-');
grid

return

von Alexxx (Gast)


Lesenswert?

Danke schon mal für eure Einschätzungen.

Bei den FPGAs schrecken mich auch die komplexen Entwicklungsschritte und 
die für Anfänger komplexe Oberfläche ab.

Zu den ARM M4: Welchen Hersteller / Welche Entwicklungsumgebung könntet 
ihr da empfehlen? Wie liegt die Preislich?

von Detlef _. (detlef_a)


Lesenswert?


: Bearbeitet durch User
von IT-Ingenieur (Gast)


Lesenswert?

Alexxx schrieb:
> Bei den FPGAs schrecken mich auch die komplexen Entwicklungsschritte und
> die für Anfänger komplexe Oberfläche ab.

Es gibt auch nicht wirklich einen Grund, in einem FPGA eine Schaltung 
reinzuprogrammieren, die es für dasselbe Geld fertig zu kaufen gibt und 
den halben Strom verbraucht.

von Alexxx (Gast)


Lesenswert?

@  IT-Ingenieur
>> ...die es für dasselbe Geld fertig zu kaufen gibt und
den halben Strom verbraucht.

Welche fertige Schaltung meinst du? Gibt es da eine?

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.