Modem DTMF jest moim programem pozwalającym na przechowywanie danych w formie dźwięku. Napisałem go na początku 2020 roku.
Modem, właściwie mo-dem oznacza modulator-demodulator. Najczęściej jest to urządzenie elektroniczne pozwalające na konwersję sygnału analogowego na cyfrowy (i odwrotnie). Modemy stosuje się w celu transmisji danych cyfrowych za pośrednictwem jakiegoś medium transmisyjnego (np. kabla miedzianego).
Mój program mimo iż nie jest urządzeniem elektronicznym, w sporym stopniu spełnia założenia modemu, bowiem umożliwia on modulację i demodulację danych.
DTMF – jest to stosowany w telefonii standard wybierania tonowego. Wciśnięcie konkretnego przycisku na aparacie telefonicznym powoduje wygenerowanie tonu składającego się z nałożonych na siebie dwóch fal sinusoidalnych o częstotliwościach z poniższej tabelki.
1209 Hz | 1336 Hz | 1477 Hz | 1633 Hz | |
---|---|---|---|---|
697 Hz | 1 | 2 | 3 | A |
770 Hz | 4 | 5 | 6 | B |
852 Hz | 7 | 8 | 9 | C |
941 Hz | * | 0 | # | D |
No dobra! Ale jak użyć tych informacji do zapisania zdjęcia na kasecie magnetofonowej? Oczywisty jest fakt, że taka konwersja jest wyjątkowo nieefektywna. Nie zmienia to jednak drugiego i trzeciego faktu. Taka konwersja technicznie jest jak najbardziej możliwa do wykonania. Ponadto możliwość szpanowania zdjęciem na kasecie przed ziomkami jest naprawdę fajna.
Wracając… Aparaty telefoniczne, centrale, i inne elementy sieci telefonicznej używają głównie trzech pierwszych kolumn tabeli DTMF. Przekłada się to na 12 możliwych do wykorzystania znaków. Możemy oczywiście nasze zdjęcie przeliczyć z systemu dwójkowego na dwunastkowy i potem…
Pytanie tylko: po co? Możemy wszakże wykorzystać wszystkie 16 znaków, jakie daje nam standard DTMF. Nie budujemy przecież elementu sieci telefonicznej. No właśnie. 16 znaków. Każdy programista już tutaj zauważy możliwość zastosowania systemu heksadecymalnego. Jeden bajt to 8 bitów (00-FF). Skoro jeden ton pozwala na zapisanie jednego z 16 znaków (0-F), to możemy założyć, że dwa tony to jeden bajt naszego zdjęcia.
Gdyby ktoś chciał napisać dla zabawy podobny program, poniżej znajdują się wyjściowe pliki audio. Zapraszam do próby odkodowania obrazka i wiadomości tekstowej.