Freitag, 22. Juni 2012
Freitag, 22. Juni 2012
Frequenzanalyse mittels FFT (Fast Fourier Transformation)
Um gemessene Größen zu analysieren, stehen in Matlab vielfältige Funktionen bereit. Beispielsweise kann man ein Messignal einer Frequenzanalyse unterziehen, um Eigenfrequenzen zu ermitteln und deren Entstehen genauer zu untersuchen. Mit einem einfachen Beispiel kann ein ideales Sinus-Signal erzeugt und mit einem Rauschsignal überlagert werden.
Nach Anwendung der FFt-Funktion auf ein beliebiges Messsignal sollte eine Amplitude auf der y-Achse über der Frequenz auf der x-Achse dargestellt werden. Bei der Transformation vom Zeit- in den Frequenzbereich läßt sich anhand von deutlichen Peaks die im Messsignal enthaltenen Eigenfrequenzen herausfiltern.
% Parameter
Nfft = 1024*10; % Anzahl Abtastwerte für die FFT
fa = 20000; % Abtastfrequenz
fmax = 0.5*fa; % maximale Frequenz die ohne Aliasing aufgelöst werden kann
% Testsignal berechnen
f = 300; % Sinus-Frequenz
t = (0:(Nfft-1)) / fa; % Zeitachse
x = sin(2*pi*f*t); % Sinus mit Frequenz f
n = randn(size(t)); % Rauschsignale
s = x + n; % Testsignal
% Testsignal plotten
figure(1); clf;
subplot(2,1,1);
plot(t, x);
xlabel('Zeit');
ylabel('Signalwert');
% Absolutwert der FFT über der Frequenz plotten
subplot(2,1,2);
sfft = abs(fft(s));
plot(fa * (0:(Nfft/2-1)) / Nfft, sfft(1:Nfft/2));
xlabel('Frequenz');
ylabel('Amplitude');
Das Rauschsignal ist gleichmäßig verteilt und kann über einen Schwellenwert ausgeblendet werden.