| muad-ib |
Tu peux utiliser un mécanisme proche de ce qu'utilise un modem :
Tu te fixe 16 tonalité différentes et à chacune de celle-ci, tu associe 4 bits mais attention, suivant la qualité de la K7, tu le peut pas monter trop haut en fréquence ou descendre trop bas.
En général, la fréquence de coupure d'une K7 se trouve à 22kHz (la moitier du CD) et par définition, tu ne peux enregistrer des fréquences supérieurs à la moitier de la fréquence de coupure, ce qui te fait tout de même 11kHz.
En général, en électronique, on divise par 10 -> 2200 Hz.
Donc :
0000 => 325Hz
0001 => 450Hz
0010 => 575Hz
0011 => 700Hz
0100 => 825Hz
0101 => 950Hz
0110 => 1075Hz
0111 => 1200Hz
1000 => 1325Hz
1001 => 1450Hz
1010 => 1575Hz
1011 => 1700Hz
1100 => 1825Hz
1101 => 1950Hz
1110 => 2075Hz
1111 => 2200Hz
Donc, à chaque octet lu, tu obtient deux sons, un pour ses 4 bits de poids faibles, l'autre pour ses 4 bits de poids fort.
Ecriture:
var := caractère
var := idfréquence
var := position
var := fréquence[325, 450, 575, 700, 825, 950, 1075, 1200, 1325, 1450, 1575, 1700, 1825, 1950, 2075, 2200]
tant que fin de flux pas atteind
caractère = flux[position]
idfréquence = caractère & 0x0F
emettreSon( fréquence[idfréquence] )
idfréquence = (caractère & 0xF0)>>4
emettreSon( fréquence[idfréquence] )
fin tant que
Lecture:
Pour lire, tu met la K7 en lecture et tu fait une acquisition.
A chaque fois que tu lis un son, tu applique au signal une transformée de fourrier discrète pour obtenir un autre signal.
Sur se second signal, tu recherche le pic et pour obtenir la fréquence.
Deux autres problèmes :
1) Contrôle
2) Synchronisation
1) Contrôle
Il faut pouvoir contrôlé que ce que tu as écrit est correctement lu, pour cela, je te propose d'utiliser des bits de parités.
A chaque fois que tu écrit 8 octets, tu écrit un octet de parité.
Le premier bit de chacun des 8 octets te permet de déterminer le premier bit de parité de l'octet de parité, etc pour les 7 bits suivants.
L'avantage, c'est que si l'un des bits est faux, tu peu le savoir mais le problème, c'est que tu ne peu savoir lequel.
2) Synchonisation
Si chacun des son est différent, il n'y a pas vraiment de problème.
Mais si tu as un flux contenant les même données et que tu le retranscrit en tonalité, il y a une chance pour que tu te retrouve avec une son continu et dans ce cas, comment savoir de quartet (4 bits) y sont décrit ?
A toi de voir.
Pour la capacité, si tu prend une K7 de 90 minutes et que tu y colle 16 sons/secondes, tu obtient un peu moins de...50ko.
La question est de savoir combiens de son tu peu stocker par secondes ?
Si tu obtient le même performance qu'un modem standard, tu peux avoir 22Mo, mais cela ne doit pas être possible. |