Guten Tag, ist es möglich, auf die mit einem beispielsweise Beschleunigungssensor aufgenommenen Schwingungen eines Geräts/einer Maschine eine Fouriertransformation mit dem Raspberry PI anzuwenden? Der Sensor ist ebenfalls am Raspberry angeschlossen. Oder brauche ich da externe Tools, die dann die Datenverarbeitung durchführen? Viele Grüße Max
Es gibt unzählige Seiten für Raspberry & FFT. https://www.raspberrypi.org/blog/accelerating-fourier-transforms-using-the-gpu/
Moin, Klar, warum soll das nicht gehen? Je nach deinen Anforderungen koennt' hoechstens die Rechnerei zu lange dauern, aber das weisst nur du, wieviel Zeit und Daten du da hast. Gruss WK
Definiere "externes Tool"? Natürlich musst du Software schreiben oder installieren, die deine Sensordaten entgegennimmt, die nötige Verarbeitung macht, und sie irgendwie ausgibt. Einfach den Sensor an das RPi stecken und dann drauf hoffen dass es auf dem Display die FFT anzeigt wird offensichtlich nicht klappen. ;)
Sven B. schrieb: > Definiere "externes Tool"? Natürlich musst du Software schreiben oder > installieren, die deine Sensordaten entgegennimmt, die nötige > Verarbeitung macht, und sie irgendwie ausgibt. Einfach den Sensor an das > RPi stecken und dann drauf hoffen dass es auf dem Display die FFT > anzeigt wird offensichtlich nicht klappen. ;) Das ist mir schon bewusst. Ein Programm, welches die Daten aufnimmt habe ich schon. Mir stellt sich nur die Frage, wie ich die Daten dann „fouriertransformiere“. An der Uni hat man das ja per Hand gemacht, und da waren ja auch Funktionen vorgegeben. Aber wie sieht das denn in der Praxis nun aus? Wie kann ich auf die Sensordaten (+-10V) eine Fouriertransformation anwenden? (mit dem Raspberry)
:
Bearbeitet durch User
Moin, Jenachdem was du sonst noch so vorhast: Evtl. GNU-Octave auf den Raspi bringen und damit operieren oder z.b. in C entsprechende Software schreiben, die z.b. mit dieser library: http://www.fftw.org/ arbeitet. Oder sowas in einer anderen Sprache deiner Wahl... Gruss WK
Max U. schrieb: > Aber wie sieht das denn in der Praxis nun aus? Wie kann ich auf die > Sensordaten (+-10V) eine Fouriertransformation anwenden? Aufgabe für das Selbststudium
Das geht wunderbar mit Python. numpy.fft.fft Das Beispiel im Anhang erzeugt zwei Sinus Signale, überlagert diese und macht daraus 2^16 Abtastwerte mit 16 Bits. Davon wird dann eine FFT gerechnet, normiert (volle Aussteuerung sind 0 dB) und geplottet. Ein Signal liegt bei 5 (Hz, kHz, MHz, im Beispiel egal) mit vollem Pegel, steuert den ADC voll aus. Das andere Signal liegt bei der doppelten Frequenz, hat aber nur 1/1000 der Amplitude. Und der Peak im Spektrum liegt auch bei -60 dB.
:
Bearbeitet durch User
Dazu müsste man wissen, in welcher Sprache du dein Tool geschrieben hast. Für die meisten Sprachen gibt es FFT-Bibliotheken. Wenn nicht, hast du die Wahl entweder selbst den Algorithmus zu implementieren oder eine andere Sprache zu benutzen. Python bietet sich wie bereits genannt für solche Aufgaben an.
Gustl B. schrieb: > normiert (volle Aussteuerung sind 0 dB) Hallo Gustl, dein 0 Hz Wert (Offset) ist deutlich größer als 0 dBFS! Bin mit scipy.fftpack nicht vertraut - aber wäre für realwertige Signale nicht rfft() angebracht?
3dB größer, was vmtl ok ist? Die zweite Hälfte des Ergebnisses schneidet das Skript in dem Plot ab, indem es fsample durch 2 teilt. Dann hast du gerade wieder die rfft. Außerdem kann man noch anmerken zu dem Skript: - Es gibt np.fft.fftfreq zur Berechnung der Frequenzachse - Die Schleife zum Erzeugen des Signals, lässt sich hervorragend vektorisieren, dazu ist numpy doch gerade gut ;)
1 | X = np.linspace(0, tmax, N) |
2 | Y = np.sin(...*X) + np.sin(...*X) + np.random.randint(0, ampl, N) |
Das mit dem 0 Hz weiß ich nicht. Danke für den Numpyhinweis. Ich verwende Software um Probleme zu lösen und bringe mir da nicht viel mehr bei. Aber vielleicht sollte ich das doch mal tun. Aber nehmt das Skript, passt es an, optimiert es, ... dafür ist das da.
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.