% Startfil for Lab4 i SOE313 Digital signalbehandling høsten 2004
% Samplet sinussignal 
N=32-0;                         % Antall samplinger	
n=[0:1:N-1];                  % Linjevektor med telleverdier 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f1=0.6;		                  % Signalfrekvens i KHz ( eller Hz )
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs=8;	Ts=1/fs;	          % Samplingsfrekvens og -periode
fase=0;                       % Fasevinkel
Sampsinus=sin(2*pi*n*f1/fs+fase);

nTs=Ts*n;                     % Linjevektor for tidsakse  
stem(nTs,Sampsinus,'fill')    % Plotter samplingene 
%stem(nTs,SampNyttSignal,'fill')    % Plotter samplingene 
xlabel('tid   [ms]')          % Tekst på x-aksen
%legend('0.5 kHz sinus')       % Forklarende tekst på fig. Flyttes vha mus.
%OBS! fungerer også med optisk mus. Trådløs?
legend('0.6 kHz sinus')
%legend('DC signal med 1 og 2 kHz sinus')
%axis([0 4.2 -1.1 +1.1])       % Overstyrer MATLABs forslag til områder
axis([0 4.2 -1.1 +1.1])
grid on
pause                         % Pause, fortsett ved å trykke en tast
close

% Sinussignalets amplitudespekter 
spekter=fft(Sampsinus,N);     % Genererer komplekst spekter vha FFT
%spekter=fft(SampNyttSignal,N);     % Genererer komplekst spekter vha FFT
amplitudespekter=abs(spekter);       % Spekterets tallverdi 
F=fs/N;                       % Frekvensoppløsning 
m=[0:1:N-1];                  % Løpende telleverdier for spekterkomponenter 
mF=F*m;                       % Linjevektor for frekvensakse;
stem(mF,amplitudespekter,'fill')		% Plotter spekterets tallverdi
xlabel('Frekvens i kHz'),ylabel('Amplitudespekter')
axis([0 9 0 +15])       
%legend('Amplitudespekter for 0,5 kHz sinus') % OBS Tekstrute kan flyttes vha mus
legend('Amplitudespekter for 0,6 kHz sinus') % OBS Tekstrute kan flyttes vha mus OBS2: se over...
%legend('Amplitudespekter for nytt signal')
pause
close
% Sinussignalets fasespekter 
fasespekter=angle(spekter);   % Spekterets fase

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%AbsSampsinus=abs(Sampsinus);
ke_amplitude=max(amplitudespekter);
for jan_banan = 1:N
    if amplitudespekter(jan_banan) < ke_amplitude/100
        fasespekter(jan_banan) = 0;
    end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

stem(mF,fasespekter,'fill')	% Plotter spekterets fase
xlabel('Frekvens i kHz'),ylabel('Fasespekter')
legend('Fasespekter for 0,6 kHz sinus')
%legend('Fasespekter for nytt signal')
pause
close