Étape 3: Transcrire le signal résultant
Maintenant que vous avez identifié le bloc des hauts périodiques et correspondant au signal d’un bouton particulier, vous aurez besoin d’un moyen de stocker et d’interpréter. Dans l’exemple ci-dessus de signal, vous remarquerez qu’il y a seulement deux modèles uniques qui composent le bloc entier de signal. Parfois, vous voyez une haute courte suivie d’une longue dépression, et parfois c’est le contraire - un haut long suivi d’une courte dépression. Quand j’étais transcrire mes signaux, j’ai décidé d’utiliser la convention d’affectation de noms suivante :
1 = short_on + long_off
0 = long_on + short_off
Regardez à nouveau la forme d’onde étiqueté, et vous verrez ce que je veux dire. Une fois que vous avez identifié les modèles équivalents dans votre signal, tout ce que vous avez à faire est comte la 1 et de 0 s à accumuler de la séquence. Lorsque la transcription de l’acte, le signal ci-dessus peut être écrite comme suit :
Maintenant, il vous suffit de répéter cette procédure pour enregistrer et retranscrire les signaux correspondant aux autres touches de votre combiné, et vous avez terminé la première partie du processus !
Avant de pouvoir ré-envoyer les signaux à l’aide de l’émetteur, il y a un peu plus de travail à faire. La synchronisation entre les hauts et les bas correspondant à un 1 ou un 0 est très importante, et vous devez vous assurer que vous savez combien de temps dure en fait un « short_on » ou un « long_off ». Pour mes codes, il y a trois éléments d’information de chronométrage que j’avais besoin de l’extraire afin de reproduire les signaux :
- La durée d’un intervalle « courte », c'est-à-dire le début d’un 1 ou la fin d’un 0.
- La durée d’un intervalle « long », c'est-à-dire la fin d’un 1 ou le début d’un 0.
- La durée d’un intervalle « extended ». J’ai remarqué que lorsque j’ai enfoncée une touche du combiné, il y a une période de « extended_off » entre chaque instance répétée du bloc signal. Ce retard est utilisé pour la synchronisation et a une durée fixe.
Pour déterminer ces valeurs de minuterie, vous pouvez utiliser la fonction de zoom sur la fenêtre matplotlib de zoomer tout le chemin et placez le curseur sur les parties pertinentes du signal. La lecture d’emplacement de curseur en bas de la fenêtre devrait vous permettre de déterminer la largeur chaque partie du signal est qui correspond à un intervalle long, court ou prolongé. Notez que l’axe des abscisses de la courbe représentant le temps, et le composant x de l’affichage du curseur est en unités de secondes. Pour moi, les largeurs étaient comme suit (en secondes) :
- short_delay = 0,00045
- long_delay = 0.00090 (deux fois tant qu’a « court »)
- extended_delay = 0,0096