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
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.
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
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
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...
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.
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
Das DSP-Board, das ich Dir vorgeschlagen habe, dürfte das Ganze locker in Echtzeit erledigen, also quasi sofort bei der Aufnahme. fchk
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
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 :)
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.
Überleg Dir mal ob nicht ein einfacher Schmidt-Trigger am Timereingang reichen würde. Nicht immer ist gleich eine FFT notwendig.
Das reicht ganz bestimmt nicht, um die höchste Amplitude zu bestimmen und dann auch noch die Frequenz :-)
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.