% Aufgabe 4.1.1: Zeitverlauf und Spektrum anzeigen
%    spektrum4() 
function spektrum4()

   % Zeitintervall von 0 bis 1/20 s
   % Array mit Stützpunkten im Abstand 1/40000 s
   t = 0 : 1/40000 : 1/20;
   f = 440;      % Grundfrequenz 440 Hz

   % Array y mit Funktionswerten an den t-Stützpunkten
   y1 = sin(2*pi*f*t);
   plotSpektrum( y1, 1, t, f )
   
   y2 = cos(2*pi*f*t);
   plotSpektrum( y2, 2, t, f )
   
   y2 = cos(2*pi*f*t + pi/6 );
   plotSpektrum( y2, 3, t, f )
   
   y2 = ( sin( 2*pi*f*t ) + cos( 2*pi*f*t ) ) / sqrt(2);
   plotSpektrum( y2, 4, t, f )
end
   
 
% gemeinsame Plot-Funktion   
function plotSpektrum( y, nr, t, f )   
   % Ausgabe der Funktion als 2D-Plot
   subplot( 4, 3, (nr-1)*3+1 ), 
   plot( t, y );
   axis( [0 1/100 -1.5 1.5] ) % fester Ausgabebereich

   c = fft( y );    % Fourier-Transformation
   A = abs( c );    % Betrag der Frequenzamplituden  
   w = angle( c );  % Phasenwinkel
   
   % Array der Frequenzen, normiert auf 40000 Hz
   f = (0:length(c)-1).*40000/length(c);

   % 2D-Plot der Frequenzamplituden über den Frequenzen
   subplot( 4, 3, (nr-1)*3+2 )
   plot( f, A ) 
   % Frequenzbereich: 0 Hz bis 4000 Hz
   axis( [0 1500 -1 1200] )

   % 2D-Plot der Phasen - 
   % Unterschiede nur in der Phasenlage, nicht im Frequenzbetrag
   subplot( 4, 3, (nr-1)*3+3 )
   plot( f, w ) 
   % Frequenzbereich: 0 Hz bis 4000 Hz
   axis( [0 1500 -4 4] )
end