Numerische Fourier-Transformation in MATLAB

%% Teil 1 Plot
fs = 1/200;
X = 0:fs:5;
Y = 2*sin(2*pi*60*X) + cos(2*pi*100*X);

subplot(3, 2, [1 2]);
stem(X, Y);

%% Teil 2 Fourier
values = fft(Y);
subplot(3, 2, [3 4]);
plot(values, 'ro');
title('Fourier Koeffizienten in der komplexen Ebene');
xlabel('Re(Z)');
ylabel('Im(Z)');

%% Teil 3 Amplitudenspektrum
subplot(3, 2, 5);
n = length(Y);
c = fft(Y)/n;
amp = 2*abs(c);
amp(1) = amp(1)/2;
m = floor(n/2);
plot(linspace(0, (m-1)*fs/n, m), amp(1:m))
title('Amplitudenspektrum');
xlabel('Frequenz');
ylabel('Amplitude');

%% Teil 4 Phasenspektrum
subplot(3, 2, 6)
phase = unwrap(angle(c));
phase(1) = phase(1)/2;
m = floor(n/2);
plot(linspace(0, (m-1)*fs/n, m), phase(1:m))
title('Phasenspektrum');
xlabel('Frequenz');
ylabel('Phase');

Folgende Fehler sind zu beachten:

  • Achsen teilweise falsch skaliert
  • Phase und Amplitude nur tweilweise angezeigt
  • Werte sind kontinuierlich zu plotten

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.