Forum: Digitale Signalverarbeitung / DSP / Machine Learning Auswahl DSP Board für FFT Anwendung


von Max (Gast)


Lesenswert?

Hallo zusammen,

ich habe mich in den letzten Tagen mit der Auswahl von DSPs, FPGAs etc. 
für ein universitäres Forschungsprojekt beschäftigt. Ich brauche nun mal 
euren unabhängigen und fachkundigen Rat:

In dem Projekt werden zwei rauschähnliche Signale mit der maximalen 
Frequenz von 1 MHz  untersucht.

Das Board braucht daher also 2 parallele ADCs mit einer Auflösung von 16 
Bit und Abtastrate von mehr als 2 MHz (am besten auch einstellbar).

Danach soll von beiden Signalen eine FFT (4096 Punkte, Radix 2) erstellt 
werden, und ein bisschen Filterung betrieben werden. Das ganze hat dann 
also eine Zykluszeit von 2 ms - daher also eine Echtzeitanwendung.

Ausgehend von der Laufzeitkomplexität der FFT N*log2(N) und 500 
Berechnungen pro Sekunde plus kleinere Filter plus Overhead und das 
ganze 2 mal "parallel" würde ich die Rechenleistung auf 80-90 Mio 
Berechnungen/sekunde abschätzen.

Zum Schluss sollen die Daten per Ethernet an eine Kontrolleinheit 
gesendet werden.
Ich würde das ganze gerne mit einem Eval Board machen. Hat jemand 
Erfahrung und könnte mir einen Rat geben, welches sich für solche 
Anwendungen eignet und wo die Toolchain günstig oder quelloffen ist?

Grüße
Max

von Martin S. (strubi)


Lesenswert?

Moin,

auf die Schnelle kommen mir da nur BF707 (Analog Devices) oder 
STM32-Varianten in den Sinn, aber mit 2MSPS wird's eng, und 16 bit 
sowieso, besagte Käfer schaffen nur 12. Und die MIPS-Kraft des STM32 
wird ev. nicht reichen. Bei den mir bekannten Blackfin-Boards muss man 
seine gewünschten ADC-Karten für Spässe im SDR-Bereich ranbacken. 
Könntest ev. noch in der SHARC-Ecke fündig werden, aber da wird's dann 
teurer.
Was TI grad so am Lager hat, weiss ich auch nicht. Quäl doch einfach mal 
einen FAE deiner Wahl :-)

von Sven B. (scummos)


Lesenswert?

Wenn deine Signale rauschähnlich sind, wozu braucht dein ADC dann 16 
Bit? Das widerspricht sich m.E. ein bisschen. Haben die Signale denn 16 
Bit Dynamik?

Die einfache Methode FFTs in dieser Menge schnell zu berechnen ist halt 
$Gammel-ATX-Mainboard mit i5-CPU für 300 Euro. Ist das Problem mit einem 
ganz normalen Rechner definitiv nicht lösbar?

von Dynamik Durch Filtern (Gast)


Lesenswert?

Sven B. schrieb:
> Wenn deine Signale rauschähnlich sind, wozu braucht dein ADC dann 16
> Bit? Das widerspricht sich m.E. ein bisschen.

Sehr richtig. 16 Bit in diesem Zusammenhang (und in vielen
anderen) ist völlig daneben und weltfremd.

von Max (Gast)


Lesenswert?

Hallo,

danke erstmal für die Antworten!

zu den zu messenden Signalen: Zu erwarten ist eine hohe Peak-to-Average 
Power Ratio (PAPR) und die genaue Auflösung des Messsignals ist 
fundamental für die Funktion des Gerätes. Daher war meine Idee, mit 16 
Bit zu quantisieren.

Sven B. schrieb:
> Die einfache Methode FFTs in dieser Menge schnell zu berechnen ist halt
> $Gammel-ATX-Mainboard mit i5-CPU für 300 Euro. Ist das Problem mit einem
> ganz normalen Rechner definitiv nicht lösbar?

Schön wäre es, wenn die ADCs auf dem Board schon integriert wären, und 
nicht durch Kommunikations-Buffer laufen würden. Dann bräuchte ich dafür 
ja nochmal eine extra Platine.

von Krapunzel (Gast)


Lesenswert?

Max schrieb:
> genaue Auflösung des Messsignals ist
> fundamental für die Funktion des Gerätes.

So so, die "genaue Auflösung".

Dann löse doch mal auf wie hoch die genaue Auflösung
sein soll. 96 dB? Märchenonkel.

von Krapunzel (Gast)


Lesenswert?

Max schrieb:
> Daher war meine Idee, mit 16 Bit zu quantisieren.

Warum kamst du nicht auf die glorreiche Idee gleich mit
24 Bit zu sampeln? Mehr Bits ist doch immer gut.

von Frank (Gast)


Lesenswert?

Du hast zwar nichts zu Spannungsbereichen, ob Simultan oder nicht usw. 
gesagt, aber wie wäre es mit einem fertigen ADC-EVAL-Board für die ADCs 
wie sowas in der Art:
http://www.analog.com/en/design-center/evaluation-hardware-and-software/evaluation-boards-kits/dc2395a-c.html

Sind anscheinend 4 getrennte ADCs mit bis zu 5 MSPS. Da kannst Du Dir 
aussuchen ob sie synchron abtasten sollen oder zu unterschiedlichen 
Zeitpunkten.
Selber würde ich kein ADC Board machen. Bekommst Du sowieso nicht 
gehandelt mit den 16 Bit.

Dann noch ein FPGA-SoC dran wie das DE0-Nano-SoC-Kit:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=941

Dann hast Du die Parallelität im FPGA wo Du Datenakquise(ADC) und 
Datenvorverarbeitung (FFT/Filter,...) machen kannst.
Und den HPS + Linux nimmst Du für die Übertragung über Ethernet.
Costa Quanta um die 300 USD.


Vllt. taugt das ADC-SoC-Board von Terassic was:
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=1061&PartNo=1

Bei 150MSPS kannst du noch etwas Mittelwertfiltern auf Deine 2MSPS.
Kostet halt etwas mehr.

von Frank (Gast)


Lesenswert?

Frank schrieb:
> Vllt. taugt das ADC-SoC-Board von Terassic was:

Ok, geht anscheinend nicht. Der High-Speed-ADC scheint Transformator 
gekoppelt. Du willst ja aber scheinbar bis DC...

von Max (Gast)


Lesenswert?

Krapunzel schrieb:

> So so, die "genaue Auflösung".
>
> Dann löse doch mal auf wie hoch die genaue Auflösung
> sein soll. 96 dB? Märchenonkel.

Willst du mir konstruktiv beim Problem lösen helfen oder nur dumme 
Kommentare abgeben? Du hast ganz klasse in die 6dB Regel eingesetzt und 
hast mich kein bisschen weitergebracht.

__________________________________


Hallo Frank, danke für die Links sehen interessant aus!

Frank schrieb:
> Ok, geht anscheinend nicht. Der High-Speed-ADC scheint Transformator
> gekoppelt. Du willst ja aber scheinbar bis DC...

Nein das Signal besitzt keinen Gleichanteil. Daher könnte das passen.

Der Spannungsbereich ist relativ klein, aber insgesamt doch variable 
weil ein VGA vorgeschaltet werden wird.


Würde eurer Meinung nach auch sowas in Frage kommen? Also von der 
Rechenleistung her...

https://de.rs-online.com/web/p/products/7989711/?grossPrice=Y&cm_mmc=DE-PLA-DS3A-_-google-_-PLA_DE_DE_Halbleiter-_-Entwicklungskits%7CEntwicklungskits_Prozessor_And_Mikrocontroller-_-PRODUCT+GROUP&matchtype=&gclid=CjwKCAjw4PHZBRA-EiwAAas4ZgAOf49t

von chris (Gast)


Angehängte Dateien:

Lesenswert?

Der hier kommt vielleicht in die Nähe der Anforderung.

von Nils P. (torus)


Lesenswert?

Der DSP vom OMAP3 würde passen (Beagleboard).

Ich hab mal alte Benchmarks von mir rausgesucht. Gemessen wurde bei 
einem DSP Tackt von nur 360Mhz. Gemessen wurde die 16 bit FFT von der TI 
DSPlib:

    8       0.58 µs
   16       0.30 µs
   32       0.58 µs
   64       0.96 µs
  128       2.14 µs
  256       4.03 µs
  512       9.11 µs
 1024       17.7 µs
 2048       40.3 µs
 4096       80.1 µs
 8192       0.86 ms
16384         10 ms
32767         21 ms
65536         44 ms

Die 4096 FFT passt noch gerade in den first level Cache, daher bricht 
die Performance für 8192 Samples um Faktor 10 ein.

Du würdest auf dem DSP also bequem die beiden FFTs und die Ansteuerung 
der ADCs unterbringen können. Auf dem ARM-Teil kannst Du dann Linux 
laufen lassen und damit die Ergebnisse über Ethernet versenden.

SPI geht bis 48Mhz, ist also auch schnell genug.

Einen Selbstgänger den DSP zum Laufen zu bringen ist es allerdings 
nicht. Auf die Performance kommst Du nur, wenn Du den SPI von DSP Seite 
betreibst. Du wirst Dich auch mit dem DMA vom DSP auseinandersetzen 
müssen, damit Du gleichzeitig Rechnen, Daten Empfangen und Daten an das 
Linux System senden kannst.

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.