Hallo, für eine Projektarbeit im Studium muss ich ein periodisches Analogsignal im Frequenzspektrum untersuchen. Die digitale Signalverarbeitung soll mit einem Mikrocontroller und integriertem 12 Bit ADC erfolgen. Dahinter findet eine FFT statt. Mir fehlen noch einige Infos und das Verständnis über die FFT in Mikrocontrollern, um damit arbeiten zu können. Habt ihr Erfahrungen damit? Könnt ihr Bücher oder Dokumente vorschlagen, in denen ich mich einlesen sollte? Eigenschaften des Analogsignals: - 0 bis 10 V - Frequenzen bis max. 180 Hz - Signalformen: Sinus, Dreieck, Trapez Eigenschaften des ADC: - 12 Bit deltasigma - 200 ksps Vielen Dank für eure Hilfe!
Speicherdrossel schrieb: > Mir fehlen noch einige Infos und das Verständnis über die FFT in > Mikrocontrollern, um damit arbeiten zu können. Bitte angeben welche Infos und Verständnis du wohl beherscht. Hast du zB schon mit einen microcontroller programmiert ? Welches ? Hast du die mathematische hintergrund und verstehst du voellich wie FFT (und fourier analyse) funktioniert und hast du eine idee welche resultaten mann erwarten kann ? Hast du ein vorschlag von hardware die du benutzen wollst ? Patrick aus die Niederlaende
Ich habe schon viel mit Mikrocontrollern gearbeitet und fühle mich in den Sprachen C und C++ sicher. Mit fehlt einfach das Verständnis zur FFT, hauptsächlich der mathematische Hintergrund. Als Hardware kommt bei mir wie meistens ein MSP430 zum Einsatz. In diesem Fall ein MSP430FR5994.
Moin, Wenn dir die Fouriertransformation nicht so ganz geheuer ist - hier hab' ich mal Spektrumanalyse ohne Fourier gemacht: Beitrag ""LED-Spectrumanalyzer"software ohne Fouriertransformation" Jenachdem, ob du das Spektrum eher linear(fourier) oder logarithmisch(kaskadierte Filterbank) aufloesen willst... Gruss WK
Wo ist das problem? Du haust die ADC werte in einen pingpong buffer und lässt dann eine FFT drüberlaufen. Herauszufinden wie man die bufferlänge anhand des gewünshcten resultats bestimmt ist wohl die aufgabe, das sollst du lernen. Für das verständniss der FFT würd ich die DFT anschauen und genau nachvollziehen. Welcher sin welcher frequenz wird mit was multipliziert und so. Die DFT ist nur eine auf rechenspeed getrimmte DFT, das prinzip ist das gleiche. Wenn du gute note willst hätt ich da einen tip einer DFT die kontinuierlich resultate liefert ohne jedesmal alles neu zu rechnen. Falls dein prof begreift was das ist gibts 1+.
Jonas H. schrieb: > Mit fehlt einfach das Verständnis zur > FFT, hauptsächlich der mathematische Hintergrund. Dann fang erstmal mit dem einfachen Artikel FFT in der Wikipedia (https://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation) an. Der ist nicht so schlecht. Dann DFT (https://de.wikipedia.org/wiki/Diskrete_Fourier-Transformation) und wenn es Dir dann noch nicht reicht, https://de.wikipedia.org/wiki/Fourier-Analysis Haengt latuernich empfindlich davon ab, was Du brauchst und welche Vorbildung (Mathematik) Du hast. Gruesse Th.
> Könnt ihr Bücher oder Dokumente vorschlagen, in denen ich mich einlesen > sollte? Klaro! Titel : Butterfly-Algorithmus Untertitel : Theorie und Praxis der Fourier-Transformation Autor(en) : Norbert Schaefer, Manfred Bertuch Redakteur : be Zeitschrift : c't 8/86, S. 44 Querverweise: siehe 10/86, S. 8 Schlagw�rter: Know-how Der Artikel erklaert es in epischer Breite. Das konnten damals normale c't leser verstehen. Ich war damals noch Schlosserlehrling und hab es mit dem Artikel in Turbopascal implementiert. Im Studium (bei mir Nachrichtentechnik) kommt das natuerlich auch vor, aber eher etwas weniger Anwendungsorientiert. .-) Aber vermutlich gibt es da auch dutzende Buecher drueber. Olaf
Meine Erachtens nach gibt es kein besser Bücher als die vom Richard G. Lyons. Die erste Auflage findest Du hier kostenlos: https://www.mikrocontroller.net/attachment/341426/Understanding_digital_signal_processing.pdf Die zweite Auflage findest du auch im Internet einfach googeln!
Hallo, ich habe hier einen Beispielcode von TI zur FFT. https://dev.ti.com/tirex/wizard/select?devtools=MSP-EXP430FR5994&node=APSKyczf0u6pcLkIZ2fsGQ__IOGqZri__LATEST Mir ist nicht ganz klar, wo die Ergebnisse der FFT abgelegt werden. Das Ergebnis einer FFT ist ja eine komplexe Zahl. So wie ich das sehe, liegen die Ergebnisse nach der Transformation in dem input-Array, oder? Grüße
Speicherdrossel schrieb: > Hallo, > > für eine Projektarbeit im Studium muss ich... > Könnt ihr Bücher oder Dokumente vorschlagen,... Hmm... eigentlich sollte so etwas bereits in deinen Vorlesungs-Mitschriften stehen. Was die eigentliche Herangehensweise zur Durchführung bei der schnellen Fourier-Transformation betrifft, da gibt es eine Menge an Zeugs im Internet u lesen - von hilfreich bis nonsense. Und die eigentliche FFT ist bei µC nicht anders als bei anderen Plattformen. Zum Thema 'Nachlesen' fällt mir im Moment nur die Dsp-Guide ein, such einfach man danach, es gibt das als PDF zum Ausdrucken und Schmökern. Ist vielleicht das beste, was man für Grundlagen so findet und ohne Kosten lesen kann. W.S.
>für eine Projektarbeit im Studium muss ich ein periodisches Analogsignal >im Frequenzspektrum untersuchen. Die digitale Signalverarbeitung soll >mit einem Mikrocontroller und integriertem 12 Bit ADC erfolgen. Dahinter >findet eine FFT statt. Die FFT ist eine Erfindung aus dem letzten Jahrtausend, deshalb nimmt man am besten einen fertigen Algorithmus, damit du dich auf das eigentliche Problem in der Projektarbeit konzentrieren kannst. Am besten nimmst du dieses Arduino Framework und besorgst dir eines dort aufgeführten SM32 Boards: https://github.com/stm32duino/Arduino_Core_STM32 Dann eine der FFT Libraries laden https://github.com/kosme/arduinoFFT und die Firmware an das Problem anpassen.
Sebastian schrieb: > Die FFT ist eine Erfindung aus dem letzten Jahrtausend, deshalb nimmt > man am besten einen fertigen Algorithmus, damit du dich auf das > eigentliche Problem in der Projektarbeit konzentrieren kannst. Dein Beitrag riecht nach Erziehung zum copy&paste-Künstler. Bedenke mal, daß das eigentliche Problem beim Studium darin besteht, die Dinge verstehen zu lernen und nicht, wo man einen fertigen Kram für ein fertiges Brettl herbekommt. W.S.
Hallo! Der Algorithmus von TI übergibt der Funkion fft() ein input-Array mit den Abtastwerten und gibt die Ergebnisse in komplexer Darstellung in selbiges Array zurück. Die Real- und Imaginärteile sind hintereinander gereiht. Problem gelöst, habe es also hinbekommen. Gruß
Sehr gut erkannt, es ist ein in place Algorithmus. (Wie auch immer 'hintereinander gereiht' zu verstehen sein mag.) "Hinbekommen, also Problem gelöst." Das ist doch erfreulich. @ 17.05.2022 20:31 Sehr interessanter Kommentar! Auch wenn der Algorithmus aus dem letzten Jahrtausend kommt. Sonst könnte man auch z. B. 'Quick Sort' als 'antiquiert' und sehr viele andere wichtige Algorithmen so bezeichnen... Niemand wird gezwungen, solche (eigentlich) rekursiven Algorithmen verstehen & nachvollziehen zu wollen.
:
Bearbeitet durch User
Speicherdrossel schrieb: > Eigenschaften des ADC: > - 12 Bit deltasigma > - 200 ksps Empfehle hier immer kS/s als Einheit, auch wenn man Samples mit Siemens verwechseln könnte. Es gibt allerdings auch das ebenso komische kSPS. Das Abtastintervall wird zwar zur Darstellung des Spektrums benötigt, aber in diesem Zusammenhang würde mich interessieren, wie schnell der FFT-Code mit wieviel Stützstellen auf einem µC ausgeführt wird. Wieviel Spektren schafft man also pro Zeit? Käme man an eine Echtzeit-FFT heran oder brauchte man dazu doch spezielle H/W wie Signal-Prozessoren oder gar FPGA?
Xeraniad X. (xeraniad) >@ 17.05.2022 20:31 >>Die FFT ist eine Erfindung aus dem letzten Jahrtausend, deshalb nimmt >>man am besten einen fertigen Algorithmus >Sehr interessanter Kommentar! Auch wenn der Algorithmus aus dem letzten <Jahrtausend kommt. >Sonst könnte man auch z. B. 'Quick Sort' als 'antiquiert' und sehr viele >andere wichtige Algorithmen so bezeichnen.. Du hast natürlich Recht, Quicksort ist genauso wie die FFT davon betroffen und man nimmt einfach die fertigen Libraries: https://github.com/luisllamasbinaburo/Arduino-QuickSort
Xeraniad X. schrieb: > Niemand wird gezwungen, solche (eigentlich) rekursiven Algorithmen > verstehen & nachvollziehen zu wollen. Die FFT nachzuvollziehen ist ja nun so schwer nicht. Es sind ja nur 2 Dinge, einmal das Prinzip der Filterung mit Sinuswellen um die Signale in Frequenzen zu zerlegen und dann die Art dem Umsetzung. Ich müsste mir das mit der butterfly-Bildung allerdings auch wieder ansehen, um es jemandem erklären zu kennen.
..."nachzuvollziehen ist ja nun so schwer nicht"..., jedoch habe ich Respekt vor den {nicht trivialen} Leistungen von z. B. - Gerald Goertzel, 1958 und - James-William Cooley & John Wilder Tukey, 1965, die diese Algorithmen {zu dieser Zeit} erarbeitet haben. Ich möchte solche Algorithmen nicht nur "verstehen", sondern sie herleiten bzw. z. B. mittels "vollständiger Induktion" bewiesen haben, bevor ich behaupte, etwas nachvollzogen zu haben. (& nein, ich werde hierzu nix mehr posten)
:
Bearbeitet durch User
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.