Forum: Mikrocontroller und Digitale Elektronik Frequenzanalyse von Aufnahme. Welchen Mikrocontroller?


von Thomas M. (thomas_ma)


Lesenswert?

Hallo Forum,
habe mit LabView ein kleines Programm „gezeichnet“, mit welchem ich 
kurze Aufnahmen (5 sec ) mittels FT analysieren lassen kann. Beim 
Programmstart wird das Signal aufgenommen. Nach abgelaufener Zeit wird 
die Frequenz mit der höchsten Amplitude ausgegeben.
Mein Ziel ist es nun das Ganze auf ein unabhängiges Gerät zum Laufen zu 
bringen.
Meine Fragen:
1.)  Ist dies mit Mikrocontrollern realisierbar? (Geschwindigkeit, 
Speicher)
2.)  Wenn ja, welche würdet ihr mir raten? (ev. mit LabView 
programmierbar, oder Mikrocontroller für Einsteiger (Arduino?))


Vielen Dank

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Hallo Thomas, ich würde sagen, nimm dafür keinen 
Wald-und-Wiesen-Mikrocontroller, sondern einen DSP deiner Wahl...

Eigene Erfahrung hab ich damit allerdings nicht.

von Walter (Gast)


Lesenswert?

Thomas Ma schrieb:
> ev. mit LabView
> programmierbar,
gibt et nich

>oder Mikrocontroller für Einsteiger (Arduino?))
ist wohl zu langsam

ich würde dir ja zu einem Discoveryboard raten, aber ich fürchte der 
Schritt ist für dich zu gross,
aber Versuch macht kluuch

von Frank K. (fchk)


Lesenswert?

Schau Dir mal das hier an:

http://www.digikey.de/product-detail/en/TMDX5515EZDSP/296-25752-ND/2217362

Damit kannst Du so einiges machen.

Prozessor:
http://www.ti.com/product/tms320c5515
100-120 MHz
Tightly-Coupled FFT Hardware Accelerator

Einzelpreis des DSP (120 MHz): etwa 17 Euro
http://www.digikey.de/product-detail/en/TMS320C5515AZCHA12/296-34509-5-ND/2353678

von Arc N. (arc)


Lesenswert?

Thomas Ma schrieb:
> 1.)  Ist dies mit Mikrocontrollern realisierbar? (Geschwindigkeit,
> Speicher)

Kommt drauf an... Geht's um Abtastraten im kHz oder GHz-Bereich...
Welche Genauigkeit (reichen Integer, Floats, Double, muss es eine 
komplexe FFT sein...)
Wie lange kann auf das Ergebnis gewartet werden, Mikrosekunden, Minuten?

> 2.)  Wenn ja, welche würdet ihr mir raten? (ev. mit LabView
> programmierbar, oder Mikrocontroller für Einsteiger (Arduino?))

Irgendein Cortex-M4 oder Renesas RX600...

von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, es sollten doch aufgezeichnete Daten verarbeitet werden - wozu 
braucht es da Super-Rechen-Power?
Problematisch wirds immer erst, wenn sozusagen online gerechnet werden 
muss.

von Thomas M. (thomas_ma)


Lesenswert?

Hallo, danke für die Antworten!
Bezüglich Genauigkeit, wäre eine Stelle nach dem Komma ausreichend. 
Bezüglich Geschwindigkeit.. ich würde sagen, wenn der Controller 
zwischen sofort und 1,5sec nach der Aufnahme benötigt, ist das ok.Leider 
hab ich keine Ahnung wie komliziert die FFT sein soll, damit ich das 
gewünschte Ergebnis (Frequenz mit höchster Amplitude) heraus bekomme. 
Zur Abtastrate: es sollen Frequenzen von 50 bis max 1000Hz analysiert 
werden. Weiß nicht wie hoch diese sein muss, sodass das Ergebnis auf 
eine Kommastelle korrekt berechnet werden kann?

Danke

von Frank K. (fchk)


Lesenswert?

Das DSP-Board, das ich Dir vorgeschlagen habe, dürfte das Ganze locker 
in Echtzeit erledigen, also quasi sofort bei der Aufnahme.

fchk

von Arc N. (arc)


Lesenswert?

Thomas Ma schrieb:
> Hallo, danke für die Antworten!
> Bezüglich Genauigkeit, wäre eine Stelle nach dem Komma ausreichend.

Auflösung der FFT soll 0.1 Hz sein d.h. laut Nyquist mit einer 
Abtastfrequenz von minimal 2000 Hz (höchste Frequenz 1000 Hz).
1000 Hz / Anzahl Bins = 0.1 -> Anzahl Bins = 10000
10000 Bins * 2 = 20000 Samples

Bei der gewünschten Antwortzeit reicht eigentlich jeder Cortex-M3 mit 
genügend Speicher

von markus (Gast)


Lesenswert?


von Thomas M. (thomas_ma)


Lesenswert?

Hallo vielen Dank für eure Beiträge!!
Also generell ist es mir wichtig, wenig Leistung zu benötigen und je 
kleiner das Board desto besser. Echtzeitanalyse soll gar nicht sein, 
sondern „einfach“ von den 5 sec Aufnahme die Frequenz mit der größten 
Amplitude ausgeben. Aber kann man nicht davon ausgehen, dass wenn ein 
Arduino die Echtzeitanalyse schafft,
>Arduino FFT: http://forum.arduino.cc/index.php/topic,8559.0.html
er auch eine Analyse des aufgenommenen Signals, sofort (bis 1,5sec) nach 
der Aufnahme schafft?
Zur Rechnung:
Mich würde noch interessieren wie genau man aus dieser Rechnung auf die 
Rechenfrequenz des Mikrocontrollers schließen kann und wie man daraus 
den benötigten Speicher eruiert?

Stimmt das wie folgt?:
2.000Hz (Abtastfrequenz) x 4  (Anzahl der bit)
= 8.000 bit/s
x 5 sec (Länge der Aufnahme)
= 40.000bit
40.000bit/8 = 5.000Bytes
Also 5KB Speicher?

(Quelle: 
http://www.peter-junglas.de/fh/vorlesungen/praktinfMB1/html/kap4-2.html)

Danke :)

von Stefanus (Gast)


Lesenswert?

5KB für die Aufnahme, zuzüglich Stack, Variablen, usw. Ich würde lieber 
mit 8 bit arbeiten, weil der Controller sonst die zwischen 4 bit und 
seiner Speicherbreite von 8 bit konvertieren muss. Außerdem ist 4 bit 
sehr wenig. Da hast du ja nur 8 Werte unter Null und 7 über Null.

von Christian B. (casandro)


Lesenswert?

Überleg Dir mal ob nicht ein einfacher Schmidt-Trigger am Timereingang 
reichen würde. Nicht immer ist gleich eine FFT notwendig.

von H.Joachim S. (crazyhorse)


Lesenswert?

Das reicht ganz bestimmt nicht, um die höchste Amplitude zu bestimmen 
und dann auch noch die Frequenz :-)

von Thomas M. (thomas_ma)


Lesenswert?

Hallo Forum,
Danke für eure Tipps!!
Jetzt weiß ich was ich hardwaretechnisch benötigen würde, um das 
Programmierte umzusetzen.
Bin für Anregungen natürlich offen. Nach dem ich mich kurz eingelesen 
habe, glaube ich auch, dass das mit dem Schmidt-Trigger nicht 
funktionieren wird. Es soll ja genau ausgewertet werden, welche Frequenz 
in der Aufnahme die höchste Amplitude hat. Also für Frequenz den genauen 
Wert (eine Kommastelle, wie gesagt). Der genaue Wert der Amplitude ist 
egal. Da ein Schmidt-Trigger an einer bestimmten Schwelle schaltet, wird 
mir dies nicht viel weiter helfen. Aber danke trotzdem für die Idee. 
Wenn jemand andere, einfachere Lösungen (auch analog) wüsste, nur her 
damit!! :)

Danke nochmals!
Ciao ciao

von Tommy (Gast)


Lesenswert?

Hallo, habe zur Zeit eine ähnliche Aufgabenstellung.
Bist Du in Deinem Projekt weitergekommen.
Würde mich gerne mal austauschen.
Am besten per EMAIL antworten.
Danke und Gruß Tommy

von Forist (Gast)


Lesenswert?

Tommy schrieb:
> Am besten per EMAIL antworten.

E-Mail an Tommy@Gast.welt oder wie hast du dir das gedacht?

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.