%kolokwium (gr. 5) 2018/2019
%rozwi¹zanie by Kewin Ga³uszka (AiR)
close all;
%% zadanie 9
[xw, fpw] = audioread('mbi04jeden.wav');
% decymacja 
xv = decimate(xw, 4); %decymacja
fpv = fpw/4; % zmiana czestotliwosci probkowania
tv = 0: 1/fpv : ((length(xv)-1)/fpv); % os czasu po decymacji
figure(1);
plot(tv, xv);
hold on;
grid on;
%% zadanie 10
%widmo amplitudowe sygnalu po decymacji

Nfpv = 2^nextpow2(length(xv)); %l iczba probek widma, potega dwojeczki
Nfpv21 = Nfpv/2 + 1; % polowa
fv = fft(xv,Nfpv); % transformata - zespolone
afv = abs(fv); % transformata - w. bezwzgl.

tfv = linspace(0,fpv,Nfpv);  %tworzenie osi czêstotliwosci

figure(2);
plot(tfv(1:Nfpv21),afv(1:Nfpv21)); %wyswietlamy polowe, bo druga sie powtarza wiec po co


%% zadanie 11
%filtr
M=201; %odpowiedz impulsowa, od niej zale¿y wykres transmitancji
fgr = 800;
fgrN= fgr/(fpv/2);
h = fir1(M-1, fgrN, 'high');
% wykres modu³u funkcji transmitancji
Nfh = 2 ^ nextpow2(M);

ffh = fft(h, Nfh);  % tranformata
a_ffh=abs(ffh);

tfh = linspace (0,fpv,Nfh); % generowanie osi czasu

Nfh21 = Nfh/2 +1;
figure(3);
plot(tfh(1:Nfh21), a_ffh(1:Nfh21)); % chcemy wyœwietlaæ tylko po³owê

%% zadanie 12
%filtracja + widmo po filtracji
fil_v = filter(h, 1, xv);
tf_fil_v = fft(fil_v,Nfpv);
atf_fil_v = abs(tf_fil_v);

figure(4);
plot(tfv(1:Nfpv21),atf_fil_v(1:Nfpv21));


%% zadanie 13
fp = 150;

%czasy
t_1 = 0 : 1/fp : (2 -(1/fp));
t_2 = 2 : 1/fp : (4-(1/fp));
t_3 = 4 : 1/fp : (8 -(1/fp));
t_4 = 8 : 1/fp : 10;

%sygna³y
s_1 = sin(2*t_1*2*pi +0);
s_2 = sawtooth(10*t_2, 0.5); % 45stopni = pi/4
s_3 = 1/3*randn(1,length(t_3));
s_4 = sin(2*t_4*2*pi + pi/2); %90 stopni = pi/2

t= [t_1, t_2, t_3, t_4];
s= [s_1, s_2, s_3, s_4];

figure(5);
plot(t,s);
grid on;

%% zadanie 14
tau_max=400;
k = xcorr(s,s,tau_max);
tk = -tau_max/fp: 1/fp : tau_max/fp;
figure(6);
plot(tk, k, 'r');
hold on;
grid on;

%% zadanie 15 
% korelacja z sygna³em sinusoidalnym o f=2Hz czyli np z s_1
k2 = xcorr(s, s_1, tau_max);
plot (tk, k2, 'b');










