fft und ifft < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 20:51 Mo 03.05.2010 | Autor: | fighter |
Hallo,
ich möchte gerne mit Matlab Messwerte nachbearbeiten. Ich zeichne Weginformation + Zeit auf. Ich möchte nun mittels fft transformieren und danach diesen Vektor * j*omega rechnen um auf die Geschwindigkeit zu gelangen. Dieses Spektrum möchte ich wiederum in den Zeitbereich bringen. Jedoch klappt dieses nicht, so wie ich es mir vorstelle.
Hier mein M-File (großteils von der Hilfe übernommen)
1: |
| 2: | Fs = 1000; % Sampling frequency
| 3: | T = 1/Fs; % Sample time
| 4: | L = 1000; % Length of signal
| 5: | t = (0:L-1)*T; % Time vector
| 6: | % Sum of a 50 Hz sinusoid and a 120 Hz sinusoid
| 7: | x = sin(2*pi*50*t);
| 8: | y = x; % Sinusoids plus noise
| 9: | plot(Fs*t(1:50),y(1:50))
| 10: | title('Signal Corrupted with Zero-Mean Random Noise')
| 11: | xlabel('time (milliseconds)')
| 12: |
| 13: |
| 14: | NFFT = 2^nextpow2(L); % Next power of 2 from length of y
| 15: | Y = fft(y,NFFT)/L;
| 16: | f = Fs/2*linspace(0,1,NFFT/2);
| 17: |
| 18: | % Plot single-sided amplitude spectrum.
| 19: | plot(f,2*abs(Y(1:NFFT/2)))
| 20: | title('Single-Sided Amplitude Spectrum of y(t)')
| 21: | xlabel('Frequency (Hz)')
| 22: | ylabel('|Y(f)|')
| 23: |
| 24: |
| 25: | f_p = [f fliplr(f)];
| 26: | Y_p = Y.*f_p.*2.*pi.*i;
| 27: |
| 28: |
| 29: | y_p = ifft(Y_p*L,1024);
| 30: | x_p = cos(2*pi*50*t)*pi*2*50; % d/dt sin(...)
| 31: | plot(Fs*t(1:50),[y(1:50)',y_p(1:50)',x_p(1:50)']);
| 32: |
|
Hat vielleicht jemand eine Idee was ich falsch mache bzw. hat jemand ein Muster M-File welches ich bekommen könnte?
mfg
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:20 Mi 05.05.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|