hallo zusammen, ich bin auf der Suche nach einer Antwort zu folgenden Fragen: 1. Im Datenblatt von meinem MSP430 Favourit steht zum AD-Wandler 200000 Konv/Sekunde. Was das bedeutet weiß ich , aber wenn ich nun ein Signal habe, welches Frequenzen von 1kHZ is 10kHz enthalten kann... Wie gehe ich am Besten vor? Sagen wir mal, die Ergenisse schreib ich in den Flash, EEPRom hat mein FAv nicht. Ich denke 256Bytes ist für ne FFT nicht gerade Luxus? 2. Ich habe auf TI - Seiten und auch sonst nach Beispielen gesucht. FFT rein auf C - Code Basis ist nicht möglich, oder? Assembler in IAR möglich? Freue mich über jeden Beitrag, ubi
Was willst Du denn genau machen? Ein Signal mit 200kHz sampeln und anschliessend eine FFT über 10kHz? Welchen MSP hast Du dir denn ausgesucht?
Naja, die 200kS/s sind ein sehr optimistischer Wert von TI. Schau mal im User Guide beim ADC, wie man den anspricht. Für die 200kS/s muss man schon minimale Sample&Hold Zeiten einstellen, einen schnellen CPU-Takt haben und am besten per DMA-Burst in den RAM speichern. Und dann sowieso nur Summen-Abtastrate.... Und in den Flash? Wieso? Der ist doch sau-langsam, da schaffst du keine 200kS/s. Ein 10 kHz Signal reicht laut Nyquist/Shannon mit 20kHz abzutasten, besser ist aber faktor 5...10 um sinnvolle Ergenisse zu erzielen. Dazu müsstest du zuerst einen Block aufnehmen, per DMA in den RAM speichern und nachher die FFT drüber laufen lassen....
erstmal danke für die schnelle antwort. @Klaus: msp430f1132.. 1khZ - 10kHz sind mein erstes Ziel... hab mit "optimistischen" Werten gerechnet.. doch hab eigentlich gehofft, dass ich damit auch wohl in die Nähe von 100kHz komme, aber wird eng oder? Was meinst du mit Summen-Abtastrate. @supachris: stimmt, direkt ins Flash geht nicht.. aber ist der RAM nicht zu klein? Ich hätte erwartet, dass ich zwischenpuffern muss. Ich hab leider noch nicht ganz raus, ob ich für den Bereich 1kHz bis sagen wir mal 80 kHz die FFT öfter durchlaufen lassen muss, damit es schneller oder besser geht. denn je kleiner die Frequenz ist umso weniger Abtastpunkte brauche ich doch. Man bekommt doch gerade für die hohen Frequenzen keine Information dazu. Vom Gefühl her müsste man doch schachteln. Man beginnt mit kleinen Frequenzen und schiebt immer höhere dazwischen um dann später wieder die kleinen Frequenzen auszuwerten. Quasi lässt man die Abtastfrequenz hochlaufen und dann wieder runter. Das klingt im ersten Moment aufwendiger, aber man benötigt dann doch weniger Rechenoperationen.
Mit nur 256 Bytes RAM ist der F1132 vielleicht für die Aufgabe etwas arg unterdimensioniert. Das Flash-ROM ist jedoch gänzlic ungeeignet, da es nur eine gewisse Anzahl an Schreibzyklen überlebt und danach ausfällt - auch ist das Beschreiben des Flash-ROMs für die Aufgabe viel zu langsam. Verwende einen anderen MSP430 mit erheblich mehr RAM, der F1611 beispielsweise hat 10 kByte, mit denen schon mehr anzufangen sein sollte.
...du solltest dich nochmal genauer mit dem Funktionsprinzip der FFT beschäftigen....das sollte deine Fragen nach dem Zusammenhang zwischen Aufnahmelänge, Abtastfrequenz und erreichbarer Frequenzauflösung klären. Und mit so einem Mini-Controller wie dem F1132 wird das schwer. Mit 256 Byte RAM hast du ja bestenfalls noch Platz für 100 Abtastpunkte, oder 200, wenn du die Auflösung auf 8 Bit minimierst....
Also ich hab vor ca. 2 Jahren mal eine rekursive DFT nach dem Muster von http://www.ultimaterobolab.com/pdfs/5_RFT.pdf auf nem F1611 mit 8 MHz implementiert. Um die 60 Harmonische konnte ich damit in Echtzeit bei einer Abtastrate von 250 Hz berechnen. Den 1611 hab ich damals wegen des grossen RAM und des integrierten Hardwaremultiplizierers genommen. Der MSP hat dabei 250mal pro Sekunde (also in Echtzeit): - einen Wert per SPI vom ADC (AD7715) geholt - 60 Harmonische berechnet - mit den 60 Harmonischen noch ein paar Summen gebildet (Bandleistungen berechnet) - Die Leistungen pro Band auf einer LED-Zeile ausgegeben - Die Harmonischen per RS232 versendet. Der Controller lief dabei ziemlich am Anschlag... Schau Dir den Artikel mal an.
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.