Non-Uniform FFT zur Schwingungsanalyse

Gast #3181800
Hallo,

Ich befasse mich im Moment mit dem Thema FFT und Schwingungsanalyse. 
Leider Blicke ich da nicht wirklich durch.

Angenommen ich habe ein Datenset von Zeiten und zugehörigen 
Accelerometerdaten. Die Zeitstempel sind nicht äquidistant. Ich möchte 
gerne die Frequenzen der Schwingung extrahieren.

Soweit ich das verstehe kommt hier eine Non-Uniform FFT 
(NUFFT,NFFT,USFFT) zum Einsatz. Allerdings Fehlt mir ein Algorithmus wie 
ich dabei vorgehen muss. Alles was ich immer lese sind ewig lange 
Formeln bei denen keiner die Variablen erklärt. Ich bräuchte einfach 
einen Step-by-Step Guide zur Anwendung einer NUFFT. Sowas in der Form:

1.Daten so und so aufbereiten
2.Berechnung
3.Output interpretieren

Kennt sich einer von euch damit aus, und kann mir einen solchen Guide 
nennen, oder eine Quelle?

Besten Dank,
Mahu
Yo, ich hab hier mal eine NUDFT gebastelt, i.e. eine DFT für nonuniform 
samples. Die samplezeitpunkte sind die tt, f sind die samples, das 
Spektrum der nonuniform samples heißt spf und fr sind die äquidistant 
interpolierten samples. Die sind auch in blau im angehängten .jpg zu 
sehen, in rot die Originalsamples. Ordentlich aufwendig die Chose, fürs 
schnelle Rechnen is das nix.

War Spaß gewesen.

Cheers
Detlef


clear
%zufaellige Samplezeitpunkte von 0 bis 1 sec
nn= 1500 ;
tt=rand(1,nn);
tt=sort(tt);
tt=tt(:);

%das sind die Parameter der gesuchten Zeitfkt.
T1=0.1;ph1=0*pi;
T2=0.2;ph2=0*pi;
T3=1/7;ph3=0*pi;

%Jetzt die Zeitfkt. zu den Samplezeitpunkten berechnen
f=sin(2*pi*tt/T1+ph1)+sin(2*pi*tt/T2+ph2)+sin(2*pi*tt/T3+ph3);

plot(tt,f,'b.-');

%FFT Fensterbreite, ist aber fest auf 1024
n=1024;
% Das wird die Matrix der Basisfkt. der FFT
%ausgerechnet an den Samplezeitpunkten
A=zeros(length(tt),n/2+1);
for(k=1:n/2+1)
  A(:,k)=exp(j*2*pi*(k-1)*tt);
end;
%conj. komplex ergänzen
A=[A conj(fliplr(A(:,2:512)))]/n;

spf=inv(A'*A)*A'*f;

fr=real(ifft(spf));

plot((0:1023)/1024,fr,'b.-',tt,f,'r.');

return
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.