Suite au post que j'ai ouvert Ici sur l'algorithme de Goertzel,
Une petite explication sur mon idée
Voila comment ça fonctionne, on examine le maxi de la première alternance, pas rapport au maxi de la deuxième alternance, si la deuxième alternance et plus grande elle prend le chiffre un, si elle est plus petite elle prend zéro.
Pourquoi les longueurs binaire son différente, et ben tout simplement parce que les alternances maxi ne sont pas égal entre les numéros, par contre le temps du scanne sur Adc et le même pour toutes les fréquences.
Voici un exemple
Ça ne prend pas beaucoup de place, 32 octets par touche téléphonique,
Voici ce que j'obtiens pour chaque touche téléphonique
Code : Tout sélectionner
0.wav : 0110110010011011001001101 Addition de la somme : 13 Longueur binnaire : 25 Convertion hexadécimal : D9364D
1.wav : 11010100101010010101101 Addition de la somme : 12 Longueur binnaire : 23 Convertion hexadécimal : 6A54AD
2.wav : 1010110101010101010101011 Addition de la somme : 14 Longueur binnaire : 25 Convertion hexadécimal : 15AAAAB
3.wav : 1010101010101001010101010101 Addition de la somme : 14 Longueur binnaire : 28 Convertion hexadécimal : AAA9555
4.wav : 01011011010010110100100 Addition de la somme : 11 Longueur binnaire : 23 Convertion hexadécimal : 2DA5A4
5.wav : 1101010010101001010110100 Addition de la somme : 12 Longueur binnaire : 25 Convertion hexadécimal : 1A952B4
6.wav : 1011100101010101010101010101 Addition de la somme : 15 Longueur binnaire : 28 Convertion hexadécimal : B955555
7.wav : 01001100100110010011010 Addition de la somme : 10 Longueur binnaire : 23 Convertion hexadécimal : 264C9A
8.wav : 0101101001001011011010010 Addition de la somme : 12 Longueur binnaire : 25 Convertion hexadécimal : B496D2
9.wav : 0101010010101001010100101001 Addition de la somme : 12 Longueur binnaire : 28 Convertion hexadécimal : 54A9529
A.wav : 1010110101011010100101010010101 Addition de la somme : 16 Longueur binnaire : 31 Convertion hexadécimal : 56AD4A95
B.wav : 1010101010101101010101010101001 Addition de la somme : 16 Longueur binnaire : 31 Convertion hexadécimal : 5556AAA9
C.wav : 1010100101010101010101010100101 Addition de la somme : 15 Longueur binnaire : 31 Convertion hexadécimal : 54AAAAA5
D.wav : 1101010010101001010110101011011 Addition de la somme : 17 Longueur binnaire : 31 Convertion hexadécimal : 6A54AD5B
E.wav : 01110011001110011000110 Addition de la somme : 12 Longueur binnaire : 23 Convertion hexadécimal : 399CC6
#.wav : 0101101001001011010010010110 Addition de la somme : 13 Longueur binnaire : 28 Convertion hexadécimal : 5A4B496
Je vais faire un essai en ASM, et mettrais le code ici
Voici le résultat : et ben ça fonctionne mais pas très bien, Donc je ne mettrais pas pour tout de suite le code ASM.
Alors la question qu'il faut se poser, pourquoi cela fonction cas moitié ?
En premier lieu : cela vient des parasites au moment ou j'appuie sur la touche de mon ordinateur, de plus il faut que je prévois une normalisation
logiciel.
En deuxième lieu : il faut que je fasse une recherche du code pendant l'envoi de la tonalité, la !!
Voici le schéma de départ qui pourra surement être modifier dans les futurs essais
J'ai également écrit un petit programme pour analyse du format audio, voici en image une analyse détaillé

