function matlab9
% DEMO näytteistämisestä, Tik-61.140 laskarikierros 9 / 2001
% figure(10) 1500 Hz
% figure(11) 800 Hz
% figure(12) 400 Hz
%
% Laskareissa käsitellää samaa taajuustasossa

% Jukka Parviainen 19.4.2001


fprintf(1,'\n\n\t*** DEMO NÄYTTEENOTOSTA AIKATASOSSA ***\n\n');
fprintf(1,'Piirretään ensin alkuperäinen jatkuva signaali,\n');
fprintf(1,'joka koostuu kolmen kosinikomponentin summasta.\n');

% Alkuperäinen signaali
fp = 300000;
t = 0:1/fp:0.02;
f1 = 100;
f2 = 300;
f3 = 700;
x = cos(2*pi*f1*t) + cos(2*pi*f2*t) - cos(2*pi*f3*t);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1500 Hz
% Alkuperäisen signaalin piirtäminen
figure(10); clf;
plot(t,x);
grid
title('Signaali x(t)');
xlabel('aika (sekunnit)');

fprintf(1,'--> ARVIOI KOMPONENTTIEN TAAJUUDET (hehtaari)\n\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

% Näytteistäminen fs=1500;
fs = 1500;
s2 = fp/fs;
t2 = t([1:s2:end]);
x2 = x([1:s2:end]);
figure(10);
hold on;
stem(t2,x2,'k');
title('fs = 1500 Hz. Signaali x(t) ja näytteet x[n]');

fprintf(1,'\nSignaalista otetaan 1500 näytettä sekunnissa\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

% Palautus näytteistä (fs=1500)
%  Älä laske, vaan sommittele tai käytä laskostuneita
%  taajuuksia apunasi. Voitaisiin laskea toki, mutta
%  Matlab on numeerinen ja tulisi heittoa varsinkin
%  alku- ja loppupäähän.
figure(10),
hold on;
plot(t,x,'r');
title('fs = 1500 Hz. Signaali x(t), näytteet x[n] ja palautettu x_r(t)');

fprintf(1,'\n1500 Hz oli tarvittava näytteistystaajuus,\n');
fprintf(1,'mikä nähdään siitä, että signaali saatiin \n');
fprintf(1,'palautettua samanlaiseksi\n\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 800 Hz
% Alkuperäisen signaalin piirtäminen
figure(11); clf;
plot(t,x);
grid
title('Signaali x(t)');
xlabel('aika (sekunnit)');

fprintf(1,'\nKäytetään pienempää näytteenottotaajuutta\n');
fprintf(1,'eli otetaan näytteitä harvempaan\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

% Näytteistäminen fs=800;
fs = 800;
s3 = fp/fs; % 375
t3 = t([1:s3:end]);
x3 = x([1:s3:end]);
figure(11);
hold on;
stem(t3,x3,'k');
title('fs = 800 Hz. Signaali x(t) ja näytteet x[n]');

fprintf(1,'\n--> MIKÄ ON NYT DISKREETTIEN NÄYTTEIDEN VÄLI?\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

% Palautus näytteistä (fs=800)
figure(11),
hold on;
r3 = cos(2*pi*f1*t) + cos(2*pi*f2*t) - cos(2*pi*abs(f3-fs)*t);
plot(t,r3,'r');
title('fs = 800 Hz. Signaali x(t), näytteet x[n] ja palautettu x_r(t)');

fprintf(1,'\nOtetut näytteet kelpaavatkin sinisen, \n'); 
fprintf(1,'alkuperäisen käyrän lisäksi uuteen punaiseen,\n');
fprintf(1,'aivan erilaiseen käyrään!\n'); 
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 400 Hz
% Alkuperäisen signaalin piirtäminen
figure(12); clf;
plot(t,x);
grid
title('Signaali x(t)');

fprintf(1,'\nPudotetaan vielä näytteenottotaajuutta\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause


% Näytteistäminen fs=1500;
fs = 400;
s4 = fp/fs; % 750
t4 = t([1:s4:end]);
x4 = x([1:s4:end]);
figure(12);
hold on;
stem(t4,x4,'k');
title('fs = 400 Hz. Signaali x(t) ja näytteet x[n]');

fprintf(1,'\n--> ARVIOI MILLAINEN KÄYRÄ ');
fprintf(1,'PISTEISTÄ MUODOSTUU\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

% Palautus näytteistä (fs=400)
figure(12),
hold on;
r4 = cos(2*pi*f1*t) + cos(2*pi*abs(f2-fs)*t) - cos(2*pi*abs(f3-fs-fs)*t);
plot(t,r4,'r');
title('fs = 400 Hz. Signaali x(t), näytteet x[n] ja palautettu x_r(t)');

fprintf(1,'\n--> MITEN SELITÄT LASKOSTUMISEN AIKATASOSSA\n');
fprintf(1,'Paina jotain näppäintä jatkaaksesi...\n');
pause

fprintf(1,'\n\t*** LOPPU ***\n');
