mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik msp430 - FFT


Autor: ubi eckbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst Du denn genau machen? Ein Signal mit 200kHz sampeln und 
anschliessend eine FFT über 10kHz? Welchen MSP hast Du dir denn 
ausgesucht?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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....

Autor: ubi eckbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...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....

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ubi eckbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für eure  anregungen...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.