Stap 3: Transcriptie van het resulterende signaal
Nu dat u het blok van de periodieke hoogte- en dieptepunten die overeenkomt met een bepaalde knop signaal hebt geïdentificeerd, moet u een manier van opslaan en interpreteren. In het bovenstaande voorbeeld van het signaal, zult u opmerken zijn er slechts twee unieke patronen die deel van de hele signaal blokkeren uitmaken. Soms zie je een korte hoge gevolgd door een lange lage en soms is het het tegenovergestelde - een lange hoog gevolgd door een korte laag. Toen ik naar mijn signalen overzetten was, besloten heb ik om het gebruik van de volgende naamgevingsconventie:
1 = short_on + long_off
0 = long_on + short_off
Opnieuw kijken naar de gelabelde golfvorm, en u zult zien wat ik bedoel. Zodra u hebt de gelijkwaardige patronen geïdentificeerd in uw signaal, is allen u moet doen graaf de 1's en 0's voor de opbouw van de reeks. Wanneer getranscribeerd, kan het bovenstaande signaal als volgt geschreven worden:
1111111111111010101011101
Nu moet u gewoon herhaal deze procedure voor record and transcribe de signalen die overeenkomt met de andere knoppen op uw handset en en u klaar bent met het eerste deel van het proces!
Voordat u opnieuw de signalen met behulp van de zender verzenden kunt, is er een beetje meer werk te doen. De timing tussen de hoogte- en dieptepunten die overeenkomt met een 1 of een 0 is erg belangrijk, en u moet ervoor zorgen dat u weet hoe lang een 'short_on' of een 'long_off' eigenlijk duurt. Voor mijn codes waren er drie stukken van timing informatie die ik nodig had om uit te pakken om te repliceren de signalen:
- De duur van een 'korte' interval, dat wil zeggen het begin van een 1 of het einde van een 0.
- De duur van een 'lange' interval, d.w.z. het eindpunt van een 1 of het begin van een 0.
- De duur van een 'uitgebreide' interval. Ik merkte dat wanneer ik een knop houdt op de handset ingedrukt, er een 'extended_off' periode tussen elk herhaalde exemplaar van het signaal blokkeren was. Deze vertraging wordt gebruikt voor de synchronisatie en heeft een vaste duur.
Om te bepalen deze waarden van de timing, kunt u de zoom-functie in het venster matplotlib zoomen helemaal in en plaats de cursor op de relevante onderdelen van het signaal. De cursor locatie uitlezing aan de onderkant van het venster kunt u bepalen hoe breed elk deel van het signaal is dat correspondeert met een lange, korte of langere interval. Merk op dat de x-as van het perceel tijd vertegenwoordigt, en de x-component van de uitlezing van de cursor zich in eenheden van seconden. Voor mij waren de breedte (in seconden) als volgt:
- short_delay = 0.00045
- long_delay = 0.00090 (twee keer zo lang als een 'korte')
- extended_delay = 0.0096