1°) Le scripte est le suivant :
clear;
tf=1/20;
pas=tf/1000;
t=0:pas:tf;
%on définit les différentes sinusoïdes
a=sin(2*pi*1209*t)
b=sin(2*pi*1335*t)
c=sin(2*pi*1477*t)
d=sin(2*pi*1633*t)
e=sin(2*pi*697*t)
f=sin(2*pi*770*t)
g=sin(2*pi*852*t)
h=sin(2*pi*941*t)
% on demande à l'utilisateur de saisir un chiffre
n=input ('Chiffre du cadran téléphonique = ')
% en fonction du chiffre saisie
% on additionne les deux signaux sinusoïdaux correspondant
if n==1
y=a+e
elseif n==2
y=b+e
elseif n==3
y=c+e
elseif n==4
y=a+f
elseif n==5
y=b+f
elseif n==6
y=c+f
elseif n==7
y=a+g
elseif n==8
y=b+g
elseif n==9
y=c+g
elseif n==a
y=e+d
elseif n==b
y=f+d
elseif n==c
y=g+d
elseif n==d
y=h+d
else n==0
y=h+b
end
% Affichage
plot(t,y)
grid
title(['Signal pour la touche ',int2str(n)])
ylabel('Tension(V)')
xlabel('Temps(s)')
2°) On obtient le signal suivant, pour n = 0 il est périodique de période 0,0023 s
De la même manière on obtient les autres signaux.
3°) En suivant les consignes pour modifier le scripte on obtient grace à la fonction sound(y,1/pas) le fichier son suivant pour la touche 0 :
4°) On utilise la fonction spectre() pour afficher le spectre du signal correspondant à l'appui sur une touche en ajoutant à la fin du scripte :
spectre(t,y)
title(['Spectre pour la touche ',int2str(n)])
ylabel('Tension(V)')
xlabel('Fréquence(Hz)')
On retrouve les deux fréquences composant le signal 941 Hz et 1335 Hz
- L'énergie est un peu étalée autour des fréquences principales car le spectre est calculé sur une durée fini.
- La bande passante est ici de 900 Hz à 1400 Hz soit 500 Hz on est bien dans la bande de fréquence dîte audible.
- Sur cette représentation on identifie clairement par lecture des fréquences la touche qui à été enfoncé sur le clavier du téléphone, c'est ainsi que fonctionne le récepteur de la numération (auto commutateur téléphonique )
Les bandes passantes exactes sont
5°) Pour identifier les fréquences, l'autocommutateur va utiliser des filtres sélectifs pour séparer les deux composantes.
6°) On ajoute avant la saisie une boucle :
for i=1:2
.....
end
7°) Apposer votre combiné téléphonique près du Haut parleur de l'ordinateur et lancer le son suivant pour appeler le no 01 39 25 48 47
Le script correspondant est le suivant :
clear;
tf=1/3;
fe=8000;
pas=1/fe;
t=0:pas:tf;
l=length(t);
A =zeros(1,l);
a=sin(2*pi*1209*t);
b=sin(2*pi*1335*t);
c=sin(2*pi*1477*t);
d=sin(2*pi*1633*t);
e=sin(2*pi*697*t);
f=sin(2*pi*770*t);
g=sin(2*pi*852*t);
h=sin(2*pi*941*t);
for i=1:10
n=input ('Chiffre du cadran=');
if n==1
y=a+e;
elseif n==2
y=b+e;
elseif n==3
y=c+e;
elseif n==4
y=a+f;
elseif n==5
y=b+f;
elseif n==6
y=c+f;
elseif n==7
y=a+g;
elseif n==8
y=b+g;
elseif n==9
y=c+g;
elseif n==a
y=e+d;
elseif n==b
y=f+d;
elseif n==c
y=g+d;
elseif n==d
y=h+d;
elseif n==0
y=h+b;
end
A = [A y/2];
end
wavwrite(A,fe,'nocomplet.wav')