% Skript som reduserar samplingsfrekvensen for ei innlest lydfil.
% Den spelar av lyden og plottar den i tid og frekvens - både med
% full og med redusert oppløysing.
% I linje 13 blir reduksjonsfaktoren, NewStep, gitt.
% Med NewStep=2, brukar vi berre annakvart punkt, med NewStep=5 brukar
% vi kvart 5. punkt.

% Les inn og plottar orginalfil 
% Hugs å kommentere ut avspeling, linje 22 og 23
PlayAndPlotSound

%
% Reduserer oppløysinga
%
NewStep=5;                                % Kor ofte vi samplar - reduksjon
yNew=y(1:NewStep:end);                    % Ny redusert lydvektor
NpktNew=length(yNew);                     % Oppdatert tal på punkt
FsNew=floor(Fs/NewStep);                  % Ny Samplingsfrekvens
dtNew=Tmax/(NpktNew-1)                    % Nytt tidssteg
TNew=0:dtNew:Tmax;                        % Ny vektor med tidspunkt

%
% Spelar av musikken - med redusert oppløysing
%
hplayerNew = audioplayer(yNew, FsNew);
play(hplayerNew);

% Plottar redusert lyd - saman med den orginale
figure(1)                                 
hold on                                   
plot(TNew,yNew,'r--')                   
hold off

%
% For å sjå på frekvensfordelinga: Fourieromvenging (FFT)
%
Ynew = fft(yNew,NpktNew);                    % Nytt lydsignalet i frekvens
Fnew = ((0:1/NpktNew:1-1/NpktNew)*FsNew).';  % Ny vektor med frekvensane
magnitudeYnew = abs(Ynew);                   % Styrken på nytt FFT-signal
phaseYnew = unwrap(angle(Ynew));             % Fasen til nytt FFT-signal

% Plottar lyd, orginal og redusert, i frekvensområdet
figure(2)
subplot(2,1,1)                     
hold on
plot(Fnew(1:floor(NpktNew/2))/1e3,...
    log(magnitudeYnew(1:floor(NpktNew/2))),'r--')
hold off
subplot(2,1,2)                      
hold on
plot(Fnew(1:floor(NpktNew/2))/1e3,phaseYnew(1:floor(NpktNew/2)),'r--')
hold off

