% LAB 3  EG-illustrasjon
%
%
% Lab1intro.m     SOE313 Digital signalbehandling høsten 2004 Faglærer: Terje Natås
% Lab 1b   Signalsekvenser - generering og plotting med MATLAB.
% 
% Graf 1   Digital impuls ( Kronecker) ------------------
N=32;                          % Semikolon undertrykker visning på skjerm 
n=[0:1:N-1];  	    	       % Vektor n får verdier 0 1 2 ..31
impuls=[1 zeros(1,N-1)]; 	   % impuls er et endimensjonalt array som inneholder
                               % en ener etterfulgt av N-1 0-ere 
%stem(n,impuls,'fill')		   % Plotting av impuls, fylte "knappenålshoder"
%axis([0 32 0 1.2])             % 1.akse fra 0 til 32, 2.akse fra 0 til 1.2  
%xlabel('n'),ylabel('Digital impuls') % Påskrift på akser
%pause                          % Pause mens graf vises. Graf overføres til utklippstavle 
                               % med Edit/Copy Picture
                               % Fortsett ved å trykke retur  			 
%close
%
% Graf 2   "Kontinuerlig" sinussignal ----------
a=input('Oppgi antall overharmoniske av 50kHz:   ' );  % Oppgi for eksempel 5;

f1=10;				          % Signalfrekvens i KHz ( eller Hz )
Fs=50;
Tmax=0.2;                     % Skal plotte en sinus fra 0 til Tmax 
t=linspace(0,Tmax,10000);      % Lager x-vektor med 50 punkter 
w1=2*pi*f1;                   % Vinkelfrekvens omega-1  
ws=2*pi*Fs;                   % Vinkelfrekvens omega-1  
y=cos(w1*t);                  % Lager y-vektor med 50 punkter 
plot(t,y)                     % Plotter sinusfunksjonen
hold on                       % Holder plottet for å tegne null-linje

for i = 1:a
    %x(i) = 2*x(i-1);
    y=y+cos((i*ws-w1)*t);
    y=y+cos((i*ws+w1)*t);
end
%y=y+0.5*sin(2*w1*t);
%y=y+0.33*sin(3*w1*t);
y=y/max(y);
plot(t,y)                     % Plotter sinusfunksjonen
hold on
                              % Def.linje gjennom punktene 0,0 og Tmax,0
xvektor=[0 Tmax];             % vektor med x-verdier
yvektor=[0 0];                % vektor med y-verdier
plot(xvektor,yvektor,'-')     % Tegner heltrukken linje gjennom punktene 0,0 og Tmax,0
grid on                       % Rutemønster på 
hold off                      %    
pause                         
close

% Graf 3     Samplet sinussignal 
%N=32;		   	    	      % Antall samplinger. Definert før.
%n=[0:1:N-1];  	    	      % Samplingspunkter.  definert før
                              % Flere kommandoer kan stå på samme linje atskilt av komma:
%Fs=8;	Ts=1/Fs;			  %Samplingsfrekvens og -periode.  
%fase=0;                       % Fasevinkel
%SampletSinus=sin(2*pi*n*f1/Fs+fase); 
%nTs=Ts*n;                     % Linjevektor for tidsakse  
%stem(nTs,SampletSinus,'fill')    % Plotter samplingene 
%xlabel('tid   [ms]')          % Tekst på x-aksen
%legend('0.5 kHz sinus')       % Forklarende tekst på fig. Flyttes vha mus.
%axis([0 4.2 -1.1 +1.1])       % Overstyrer MATLABs forslag til områder
%grid on
%pause                         % Pause, fortsett ved å trykke en tast
%close
%
% Graf 4     Eksponentiell demping	a^nTs  Ts som i sinuseksempelet.
                              % Eksempel på inndata fra tastatur
%a=input('Oppgi dempingsfaktor:   ' );  % Oppgi for eksempel .65;
                                       % ( ledende 0 blir ikke registrert )    
% for-setninger kan brukes, men bør unngås pga av tidsforbruk
%for p=1:N                    % NB! første indeks for vektorer/array er 1
%   Eksdemp(p)=0.65^nTs(p);	  % Tildeler verdier til hvert element i vektoren
%end
% Kontruksjonen Eksdemp=a^nTs; går ikke.  Det oppfattes som en skalar som søkes opphøyd i en vektor.
% Følgende virker:
%Eksdemp=a*[ones(1,N)];        % Lager vektor med N elementer med verdi a, vha standardfunksjon ones. 
%Eksdemp=Eksdemp.^nTs;         % Modifierer de N elementene ved å multiplisere hvert enkelt 
                              % med tilsvarende elementer i vektor nTs.
%stem(nTs,Eksdemp,'fill')
%xlabel('Tid i ms'),axis([0 4.2 0 1])
%legend('a^n^T^s')
%pause
%close                         % Lukker figurvindu
