FFT von Sensordaten mittels Raspberry

OP #6068968
Lesenswert?

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
#6069276
Lesenswert?

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. ;)
OP #6069778
Lesenswert?

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)
#6070012
Lesenswert?

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.
Angehängte Dateien:
#6070134
Lesenswert?

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.
#6074060
Lesenswert?

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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren