summaryrefslogtreecommitdiff
path: root/demos/demo.sce
blob: e27e154fa86e93692e49a6c1cf1edbc5f034eecd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//Example taken from https://in.mathworks.com/help/signal/examples/dft-estimation-with-the-goertzel-algorithm.html
//DFT Estimation with the Goertzel Algorithm
cd /home/fossee/Desktop/FOSSEE_Scilab_Octave_Interface_Toolbox

warning('off');
clc;
clear;
// Clock Signal with Noise
figure;
f=get("current_figure") 
f.background=8
fu=[1209,1336,1477,1633];
fl=[697,770,852,941];
dialer=ascii(['123A';'456B';'789C';'*0#D']);
dialer=matrix(dialer,4,4);
phno=ascii('123A456B789C*0#D');
//phno=ascii('9483999682');
Fs=8000;
T=0.1;
t=(0:Fs*T-1)/Fs;
pos=1;
tones=[];
for k=[phno]
	[j,i]=find(dialer==k);
	f1=fl(i);
	f2=fu(j);
	x=cos(2*%pi*f1*t)+cos(2*%pi*f2*t);
    subplot(4,4,4*(i-1)+(j))
    plot(x(1:25/T));
    title(msprintf(gettext("Symbol ""%s"" [%d,%d]"),char(k),f1,f2));
    tones(:,pos)=x';
    playsnd(x,Fs);
	sleep(80);
    pos=pos+1;
end;
disp("Press Enter to Continue");
halt();

//Estimating DTMF Tones with the Goertzel Algorithm
original_f = [fl(:);fu(:)];
Nt = 205;
k = round(original_f/Fs*Nt);

est_tones = tones(1:Nt,:);
exec('goertzel.sci',-1);
figure;
f=get("current_figure") 
f.background=8
color0=[2,5,13,16];
for toneChoice=[1:length(phno)]
    tone=est_tones(:,toneChoice);
    ydft(:,toneChoice) = goertzel(tone,(k+1)');
    subplot(4,4,toneChoice);
    plot2d3('gnn',original_f,abs(ydft(:,toneChoice)),color0(pmodulo(toneChoice,4)+1));
    [j,i]=find(dialer==phno(toneChoice));
	f1=fl(i);
	f2=fu(j);
    title(msprintf(gettext("Symbol ""%s"" [%d,%d]"),char(phno(toneChoice)),f1,f2));
end
disp("End of demo");