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
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.