


clear all; %resetet Workspace, alle Variablen werden auf null gestetzt
clc %löscht alte Fehlermeldungen im commando window
f3=110;
f2=10; % eine Oberschwingungsfrequenz
f1=50; % Grundschwingungsfrequenz des Testfunktion.
T1=3/f1 % Anzahl der Periodendauer, des Testsignals

fa=2*f1*100; % freie Wahl einer Abtastfrequenz unter berücksichtigung des Abtasttherorems;
%N=100 Stützstellen pro Periode
ta=1/fa; %Abtastdauer
N=T1/ta; %Anzahl der Stützstellen pro periode, je größer N, desto besser die Auflösung (weniger leckeffekt)

%Plotten des Testsignals und deren Abtastung
t=0:ta:T1; %Zeitvektor
x=4.*sin(2*pi*f1.*t)+1.*cos(2*pi*f2.*t)+1.*cos(2*pi*f3.*t+20);
figure(1)
subplot(3,1,1)
plot(t,x)
hold on
stem(t(1:5:length(t)+1),x(1:5:length(x)+1))
grid on;
hold off

%points=350; % muss gerade und in N sein


% FFT
Y=fft(x,N);
Pyy=abs(Y)./(N/2); %.*Betrag von Y bzw. cn Koeffizient, 
%durch N/2 weil nur hälfte der Punkte geplottet wird (wegen symetrie) und N weil Periodendauer 
%gleich messdauerperiodendauer der Abtastung ist. 

f=fa/N.*(0:(N/2)); %frequenzvektor
subplot(3,1,2)
stem(f,Pyy(1:(N/2+1)));
hold on
plot(f,Pyy(1:(N/2+1)));
axis([0 200 0 max(Pyy)+1]);
grid on;
hold off

%Rücktrafo
R=ifft(Y,N); %Rückwärtstrafo
subplot(3,1,3)
plot(1:N,R);
%axis([0 200 -10 10])
grid on;



% Spectralanalyse
figure(2)

specgram(Pyy,[],120);
colorbar
colormap;