Czy kod Morse'a jest binarny, trójskładnikowy czy quinary?


27

Czytam książkę: „ Kod: ukryty język sprzętu i oprogramowania komputerowego ”, aw rozdziale 2 autor mówi:

Mówi się, że kod Morse'a jest kodem binarnym (dosłownie dwa na dwa), ponieważ składniki kodu składają się tylko z dwóch rzeczy - kropki i myślnika.

Z drugiej strony Wikipedia mówi:

Ściśle mówiąc, nie jest on binarny, ponieważ istnieje pięć podstawowych elementów (patrz: quinary). Nie oznacza to jednak, że kod Morse'a nie może być reprezentowany jako kod binarny. W sensie abstrakcyjnym jest to funkcja wykonywana przez operatorów telegraficznych podczas przesyłania wiadomości (patrz: quinary).

Ale z drugiej strony inna strona Wikipedii zawiera Kod Morse'a na „Liście kodów binarnych”.

Jestem bardzo zdezorientowany, ponieważ uważam, że Morse Code jest w rzeczywistości trójskładnikowy . Masz 3 różne rodzaje „możliwości”: cisza, krótki dźwięk lub długi dźwięk.

Nie jest możliwe przedstawienie kodu Morse'a w „stirct binary”, prawda?

Mam na myśli „ścisły binarny”, pomyśl o strumieniu binarnym: 1010111101010 .. Jak mam reprezentować ciszę, krótki i / lub długi dźwięk?

Jedyny sposób, w jaki mogę myśleć, to „rozmiar słowa”, który implementuje komputer. Jeśli ja (i CPU / interpreter kodu) wiem, że będzie on odczytywał 8 bitów za każdym razem, to mogę reprezentować kod Morse'a. Mogę po prostu przedstawić krótki dźwięk z 1 lub długi dźwięk z 0, a cisze będą domyślnie reprezentowane przez długość słowa (powiedzmy 8 bitów ..) Więc znowu mam tę trzecią zmienną / trzeci zasób w moja ręka: rozmiar słowa.

Moje myślenie jest następujące: mogę zarezerwować pierwsze 3 bity na liczbę bitów do odczytania, a ostatnie 5 bitów na kod Morse'a w 8-bitowym słowie. Jak 00110000 będzie oznaczać „A”. I wciąż jestem w trybie „binarnym”, ALE potrzebuję wielkości słowa, która sprawia, że ​​jest trójskładny, prawda? Pierwsze 3 bity mówią: Odczytaj tylko 1 bit z następujących 5 bitów.

Zamiast binarnego, jeśli użyjemy trinary, możemy wyświetlić kod Morse'a, taki jak: 101021110102110222 itd. Gdzie 1 to: dit 0 to: dah, a 2 to cisza. Używając 222 możemy zakodować długą ciszę, więc jeśli masz sygnał taki jak * - * --- * - możesz pokazać go jako: 102100022210, ale nie jest to możliwe bezpośrednio przy użyciu tylko 1 i 0, chyba że wymyślisz coś jak „ustalony” rozmiar słowa, jak wspomniałem, ale cóż, to interpretacja, a nie zapisywanie kodu Morse'a w postaci binarnej. Wyobraź sobie coś jak fortepian, masz tylko przyciski fortepianu. Chcesz zostawić komuś wiadomość w kodzie Morse'a i możesz pomalować guziki na czarne. Nie ma mowy, żebyś zostawił jasny komunikat, prawda? Potrzebujesz co najmniej jednego koloru, aby móc uciszyć ciszę (między znakami a słowami. To właśnie mam na myśli przez trenary).

Nie pytam, czy możesz reprezentować Kod Morse'a w 57-arach czy cokolwiek innego.

Wysłałem e-mail do autora (Charles Petzold) na ten temat; mówi, że w rozdziale 9 „Kodeksu” wykazuje, że kod Morse'a można interpretować jako kod binarny.

Gdzie mylę się z myśleniem? Czy to, co czytam w książce, to że kod Morse'a jest binarny, czy nie? Czy jest to w jakiś sposób dyskusyjne? Dlaczego na jednej stronie Wikipedii powiedziano, że Kod Morse'a ma charakter quinary, a także jest wymieniony na stronie Lista kodów binarnych ?

Edycja: Wysłałem e-mail do autora i otrzymałem odpowiedź:

-----Wiadomość oryginalna-----

Od: Koray Tugay [mailto: koray@tugay.biz]

Wysłane: wtorek, 3 marca 2015 15:16

Do: cp@charlespetzold.com

Temat: Czy kod Morse'a jest naprawdę binarny?

Proszę pana, czy mógłbyś rzucić okiem na moje pytanie tutaj: czy kod Morse'a jest binarny, trójskładnikowy czy quinary? Quinary?

Pozdrawiam, Koray Tugay

Od: „Charles Petzold”

Do: „Koray Tugay”

Temat: RE: Czy kod Morse'a jest naprawdę binarny? Data: 3

Mar 2015 23:04:35 EET

Pod koniec rozdziału 9 w „Kodzie” pokazuję, że Morse'a można interpretować jako kod binarny.

-----Wiadomość oryginalna-----

Od: Koray Tugay [mailto: koray@tugay.biz]

Wysłane: wtorek, 3 marca 2015 15:16

Do: cp@charlespetzold.com

Temat: Czy kod Morse'a jest naprawdę binarny?

Proszę pana, czy mógłbyś rzucić okiem na moje pytanie tutaj: czy kod Morse'a jest binarny, trójskładnikowy czy quinary? Quinary?

Pozdrawiam, Koray Tugay

Nie ukrywam jego e-maila, ponieważ i tak można go łatwo znaleźć w Internecie.


Proszę przenieść każdą dalszą rozmowę na chat.stackexchange.com/rooms/21638/...
Wandering Logic

Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Raphael

Naprawiłem przypadkowo usunięte linki (ups); powstrzymaj się od cofania się do gorszych wersji.
Raphael

1
@WanderingLogic Prawidłowe, najskuteczniejsze i bezgłośne podejście polega na cichym oznaczeniu pytania w celu wyczyszczenia komentarza i zasugerowaniu przeniesienia komentarzy na czat na fladze, a nie publicznej grze policyjnej z komentarzami i próbie utworzenia pokoju rozmów, aby połączyć wszystkie komentarze na wszystkie odpowiedzi bez kontekstu. Twoje linki również teraz mylą sprawę, ponieważ Raphael opublikował prawidłowe linki.
Jason C

1
@ J.-E.Pin Cóż, nie podałem formalnej definicji, ponieważ uważałem za pewnik, że ludzie odpowiadający na pytanie będą o tym wiedzieli, i miałem odniesienie do wikipedii, aby ustawić kontekst. Nawet jeśli wikipedia może być daleka od doskonałości, powinno to być w stanie przyjąć rolę definicji, jak to często bywa tutaj. Zajęło mi trochę czasu, zanim zdałem sobie sprawę, że to był problem, który w rzeczywistości był powszechny. Byłem w trakcie przepisywania tego wszystkiego w całości, z wyraźnymi definicjami, cytatami, referencjami i formalnymi wyjaśnieniami z iniekcyjnym homomorfizmem. Powinienem skończyć?
babou

Odpowiedzi:


19

Kod Morse'a jest trójskładnikowym kodem prefiksu (do kodowania 58 znaków) na górze kodu binarnego przedrostka kodującego trzy symbole.

Po zaakceptowaniu była to znacznie krótsza odpowiedź . Jednak biorąc pod uwagę znaczne nieporozumienia między użytkownikami i na prośbę PO, napisałem tę znacznie dłuższą odpowiedź. Pierwsza sekcja „w pigułce” daje sedno.

Zawartość

W (dużej) pigułce

Pytając „Czy kod Morse'a jest binarny, trójskładnikowy czy kwarantannowy?” nie ma możliwości porównania możliwych odpowiedzi, chyba że ustali się pewne kryteria dla akceptowalnej odpowiedzi. Rzeczywiście, bez odpowiednich kryteriów, można wymyślić wyjaśnienia dla prawie każdego rodzaju struktury. Kryteria, które wybrałem, są następujące:

  • powinien odzwierciedlać trójpoziomowy opis kodu Morse'a z reprezentacją kropki / myślnika w drugiej warstwie;

  • powinien w jak największym stopniu pasować do prezentacji i narzędzi matematycznych opracowanych do teoretycznej analizy kodów;

  • powinno być tak proste, jak to możliwe;

  • powinno wyraźnie uwidocznić właściwości kodu Morse'a.

Ma to na celu wykluczenie arbitralnego hakowania, które ignoruje podstawowe pojęcia teorii kodu jako naukowo przebadane i które może mieć pewien urok, dając złudzenie systematycznej analizy, choć jest zbyt nieformalnie traktowane, aby mogło być rozstrzygające. Ta strona ma dotyczyć informatyki , a nie programowania. Powinniśmy wykorzystać minimum ustalonej wiedzy i przyjętych koncepcji, aby odpowiedzieć na pytanie techniczne.

Szybka analiza standardu pokazuje, że wszystkie symbole używane w kodzie Morse'a są ostatecznie kodowane binarnie , ponieważ jest przesyłany jako ciąg jednostek o równej długości, z sygnałem, który może być włączony lub wyłączony dla każdej jednostki. Oznacza to, że wiadomości Morse'a są ostatecznie kodowane logicznym alfabetem .Σ1={0,1}

Ale to nic nie mówi o wewnętrznej strukturze kodu. Kodowana informacja to ciąg znaków na alfabecie 58 symboli (zgodnie ze standardem) zawierający 57 znaków i spację. Odpowiada to alfabet Σ3={A,B,,Z,0,1,,9,?,=,,×,@,[]}, ostatnim symbolem jest przestrzeń.

Jednakże standard określa, że nie jest półproduktem alfabetu , w oparciu o i i ewentualnie innych symboli. To jest całkiem jasneΣ2)dotdash

  • ciągi w należy kodować jako ciągi w Σ 2 , orazΣ3)Σ2)

  • że ciągi w należy kodować jako ciągi w Σ 1Σ2)Σ1

Zatem biorąc pod uwagę, że nie ma wyboru dla i Σ 3 , pytanie należy rozumieć jako: „ Jaką liczbę symboli powinniśmy wziąć pod uwagę w alfabecie pośrednim Σ 2, aby jak najlepiej wyjaśnić strukturę i właściwości całego Morse'a kod ”, co pociąga za sobą również określenie dwóch kodowań między trzema poziomami.Σ1Σ3)Σ2)

Biorąc pod uwagę fakt, że kod Morse'a jest prefiksem kodu homomorficznego (o zmiennej długości), który wyklucza jakąkolwiek dwuznaczność podczas dekodowania sygnału, możemy wyjaśnić tę podstawową właściwość za pomocą trójskładnikowego alfabetu {,,} i dwie schemat kodowania C 3 2 od Σ 3 do Σ 2 , a C 2 1 od Σ 2 do Σ 1Σ2)=dotdashsepdo3)2)Σ3)Σ2)do2)1Σ2)Σ1, które są zarówno homomorficzne, jak i przedrostek, a zatem oba jednoznaczne kody, a zatem można je skomponować w celu uzyskania jednoznacznego kodowania przedrostka 58 symboli na postać binarną.

Stąd Morse'a składa się z potrójnego prefiks kodu wyrażone alfabetu , , } , przy czym te trzy symbole zakodowanych binarnie się z następujących kodowych:{ dotdashsep }

dot ,1110 i0010dash 1110sep 00

Zwróć uwagę, że to, co jest znane jako odstęp między kolejnymi dotlub dashjest faktycznie zawarte w reprezentacji doti dash, ponieważ jest to zwykła matematyczna reprezentacja dla takich typów kodów, które są zwykle definiowane jako homomorfizmy łańcuchowe od symboli źródłowych do słów kodowych wyrażonych symbolami docelowymi, tak jak właśnie to zrobiłem.

Odchodzi to nieco od części prezentacji podanej w standardzie, która ma na celu bardziej intuicyjne określenie kodu dla użytkowników niż analizowanie go pod kątem jego właściwości strukturalnych. Ale w obu przypadkach kodowanie jest takie samo.

Nawet bez dokładnych czasów standardu dekoder sygnału analogowego mógłby nadal przetłumaczyć go na proponowany przez nas alfabet trójskładnikowy, tak aby powyższe rozumienie kodu trójskładnikowego nadal obowiązywało.

Kody: podstawowe punkty

Ta odpowiedź jest oparta na standardzie ITU-R M.1677-1 z października 2009 r. (Podziękowania dla Jason C za odniesienie). Będę używał terminologii doti dashzamiast diti dah, jak to jest terminologia stosowana w niniejszym standardzie.

Zanim zaczniemy omawiać kod Morse'a, musimy uzgodnić, co to jest kod. Trudne dyskusje na ten temat oczywiście tego wymagają.

Zasadniczo informacje muszą być reprezentowane, aby mogły zostać przesłane lub w inny sposób przetworzone. Kod to system służący do tłumaczenia informacji z jednego systemu reprezentacji na inny . To jest bardzo ogólna definicja. Musimy uważać, aby nie pomylić pojęcia reprezentacji i kodu z jednej reprezentacji ( źródła ) do innej ( celu ).

Reprezentacja może przybierać różne formy, takie jak zmienne napięcie elektryczne, kolorowe kropki na papierze, ciąg znaków, cyfry, ciągi binarne zer i jedynek itp. Ważne jest, aby odróżnić reprezentację analogową od formalnej (lub logicznej lub abstrakcyjnej) .

Analogowa / fizyczna reprezentacja jest rysunkiem, zmiennym poziomem napięcia, kształtem (na literę).

Reprezentacja logiczna / formalna / abstrakcyjna to reprezentacja matematyczna z abstrakcyjnymi wykresami, ciągami symboli lub innymi jednostkami matematycznymi.

Chociaż niektóre informacje mogą być pierwotnie analogowe, zwykle konwertujemy je na logiczną reprezentację, aby móc precyzyjnie zdefiniować ich przetwarzanie za pomocą środków matematycznych lub przez ludzi.

I odwrotnie, mamy do czynienia z reprezentacją logiczną za pomocą urządzeń fizycznych, takich jak komputer lub nadajniki, musimy nadać formie analogicznej reprezentacji logicznej.

Do celów tej analizy jedyną formą analogiczną, którą rozważamy, jest forma używana do transmisji, jak opisano w normie. Ale nawet wtedy rozważymy, że pierwszym krokiem jest interpretacja tej analogicznej reprezentacji jako bezpośredniej implementacji identycznej struktury logicznej reprezentacji, na której budujemy naszą analizę tego, jaki kod może być kodem Morse'a. Teoria kodu jest matematycznym zasobem wiedzy opartym na analizie reprezentacji logicznych.

Wrócimy jednak do przejścia analogowo / logicznego w dyskusji na końcu.

Kody: definicje

Nasz logiczny pogląd jest taki, że kod jest używany do przetłumaczenia źródeł dźwięku strun alfabetu źródła do docelowej alfabetu T . Często zdarza się, że oba alfabety są identyczne, zwykle binarne, gdy celem jest dodanie dodatkowej właściwości do reprezentacji informacji, na przykład zwiększenie jej odporności na błędy (wykrywanie i korekcja błędów) lub zmniejszenie reprezentacji poprzez usuwanie nadmiarowości (bezstratna kompresja kodu) i być może przy starannie kontrolowanej utracie niektórych informacji (kompresja stratna).S.T.

Jednak celem kodu Morse'a jest dostarczenie tylko sposobu reprezentacji ciągów na dużym alfabecie, na ciągi oparte na znacznie mniejszym alfabecie (faktycznie binarnym), przy użyciu pośredniego alfabetu prawie binarnego (kropki i myślniki), aby lepiej dostosować się do człowieka percepcja i zdolności manipulacyjne. Osiąga się to przez tak zwany kod o zmiennej długości :

Używając terminów z formalnej teorii języka, dokładna definicja matematyczna jest następująca: Niech i T będą dwoma zestawami skończonymi, zwanymi odpowiednio alfabetem źródłowym i docelowym. Kod C : S TS.T.do:S.T.S.T.doS.T.

do(s)T.sS.

Kod zmiennej długości jest jednoznacznie dekodowalny, jeśli odpowiada homomorfizmowi SdoS.T.T.S.

w

Łatwo jest wykazać, że unikalna dekodowalność i właściwość prefiksu są zamknięte w ramach składu kodów.

Zauważ, że definicja homomorfizmu oznacza, że nie ma specjalnego rozdziału między słowami kodowymi. To ich struktura, taka jak właściwość prefiksu, umożliwia jednoznaczną ich identyfikację.

Rzeczywiście, gdyby istniały takie symbole separacji, musiałyby one być częścią docelowego alfabetu, ponieważ byłyby konieczne do odkodowania ciągu z docelowego alfabetu. Wówczas powrót do teoretycznego modelu kodu o zmiennej długości byłby bardzo prosty poprzez dodanie separatora do poprzedniego słowa kodowego. Gdyby to spowodowało trudność kontekstową (na przykład z powodu wielu separatorów), byłaby to tylko wskazówka, że ​​kod jest bardziej złożony niż pozorny. Jest to dobry powód, aby trzymać się modelu teoretycznego opisanego powyżej.

Kod Morse'a

Kod Morse'a jest opisany w standardzie na trzech poziomach:

  • 3) ma na celu zapewnienie kodowania tekstu w języku naturalnym, przy użyciu 57 znaków (27 liter, 10 cyfr, 20 znaków synchronicznych i interpunkcji) oraz spacji między słowami do cięcia łańcucha znaków na słowa. Przestrzeń między słowami jest używana jako znak specjalny, który można mieszać z innymi, co zauważę SEP.

  • 2) wszystkie te znaki należy zakodować jako ciągi znaków dash i dot, korzystając z odstępu między literami, co zauważę sep, aby oddzielić dashi dotjedną literę od znaków z następnej litery.

  • 1. dashI dot, a także sepmuszą być kodowany jako sygnał lub nieobecności sygnału (zwanego odstępy) o długości dokładnie zdefiniowane w takiej lub innej przyjętej urządzenia. W szczególności, dashi dot kodowanie litery musi być oddzielone spacją między elementami, co zauważę σ.

To już wymaga kilku wniosków.

Komunikat do przesłania i odebrania w formie analogowej to ciąg jednostek długości (długość przestrzeni lub długość czasu), tak że sygnał jest włączony lub wyłączony na cały czas trwania każdej jednostki, jak określono w załączniku 1 część I sekcja 2 normy :

2   Spacing and length of the signals
2.1 A dash is equal to three dots.
2.2 The space between the signals forming the same letter is equal to one dot.
2.3 The space between two letters is equal to three dots.
2.4 The space between two words is equal to seven dots.

Jest to wyraźnie kodowanie analogowego, co znane jest jako strumień bitów, które mogą być logicznie reprezentowane w notacji binarnej przez ciąg 0ans 1, stojąc na analogu off i on .

Aby wyeliminować problemy związane z reprezentacją analogową, możemy zatem uznać, że komunikaty kodu Morse'a są przesyłane jako ciągi bitów, które należy odnotować za pomocą 0i 1.

Dlatego powyższy fragment normy można wyrazić logicznie jako:

  • 0. A dotjest reprezentowany przez 1.
  • 1. A dashjest reprezentowany przez 111.
  • 2) Przestrzeń między elementami σjest reprezentowana przez 0.
  • 3) Przestrzeń między literami sepjest reprezentowana przez 000.
  • 4 Przestrzeń między słowami SEPjest reprezentowana przez 0000000.

Więc widzieliśmy, że kod Morse'a używa 5 słów kodowych w systemie binarnym do kodowania tych 5 symboli. Z wyjątkiem faktu, że nie jest to tak opisany system, jest w nim coś więcej i nie jest to najwygodniejszy sposób, w jaki można go myśleć, z naiwnego lub matematycznego punktu widzenia.

Zauważ też, że ten opis jest przeznaczony dla laików, a nie specjalistów teorii kodu. Z tego powodu opisuje bardziej widoczny wygląd niż uzasadniająca go struktura wewnętrzna. Nie ma powodu, aby wykluczać inne opisy, które są z nim zgodne, choć bardziej matematycznie bardziej uporządkowane, aby podkreślić właściwości kodu.

Najpierw jednak należy zauważyć, że pełny opis kodu obejmuje 3 poziomy reprezentacji, które są natychmiast rozpoznawalne:

  • 3) Tekst złożony z ciągu znaków, w tym SEP.
  • 2) Kodowanie ciągu literowego jako ciągu dot,dash a sep.
  • 1. Kodowanie ciągu 2 poziomu tych trzechsymbols znaków jako ciągu binarnego.

Być może możemy dyskutować o tym, jakie symbole są zakodowane w czym, ale zasadniczym aspektem kodu Morse'a jest to, że ma on te trzy poziomy reprezentacji, ze znakami na górze, dotsi dashes na środku, a bitami 0i 1na dole .

Oznacza to, że muszą istnieć dwa kody, jeden z poziomu 3 na poziom 2, a drugi z poziomu 2 na poziom 1.

Analiza trzech poziomów reprezentacji

Aby uzyskać spójną analizę tego 3-poziomowego systemu kodowania, powinniśmy najpierw przeanalizować, jakie informacje są istotne na każdym poziomie.

  • 1. Łańcuch bitowy, z definicji i z konieczności jego analogowej reprezentacji, składa się tylko z 0i 1.

  • 3) Na poziomie tekstu potrzebujemy 58 znaków alfabetu, w tym 57 znaków i odstęp między wyrazami SEP. Wszystkie 58 z nich musi mieć ostatecznie kodowanie binarne. Ale chociaż standard kodu Morse'a określa te 57 + 1 znaków, nie określa, w jaki sposób należy ich używać do kodowania informacji. Taka jest rola języka angielskiego i innych języków naturalnych. Kod Morse'a zapewnia inny system z alfabetem 58 symboli, na których mogliby zbudować jakiś 58-arytyczny kod, ale sam kod Morse'a nie jest kodem 58-arytowym.

  • 2) Na doti dashpoziomie, wszystko czego potrzebujemy, to te dwa symbole w celu kodzie 57 znaków, czyli dostarczenie słowa kodowego dla każdego jako ciąg doti dashwraz z jakimś separatorem sepaby oznaczyć gdy jedna litera wykończone, a innego początku. Potrzebujemy również pewnych sposobów kodowania przestrzeni między słowami SEP. Możemy spróbować udostępnić go bezpośrednio na poziomie 1, ale zepsułoby to organizację kodu o innej strukturze.

Rzeczywiście, opis normy można słusznie skrytykować za właśnie to. Ale autorzy mogli pomyśleć, że ich prezentacja byłaby łatwiejsza do zrozumienia dla przeciętnego użytkownika. Jest także zgodny z tradycyjnym opisem kodu Morse'a, który poprzedza tego rodzaju analizę matematyczną.

Wymaga to kilku uwag:

  • na poziomie 3, poziom liter, przestrzeń między literami sep nie ma już znaczenia. Jest to całkiem normalne, ponieważ nie ma większego znaczenia we wszechświecie liter niż przestrzeń oddzielająca dwa zapisane znaki na papierze. Na poziomie 2 konieczne jest rozpoznawanie słów kodowych reprezentujących litery, ale to wszystko.

  • podobnie na poziomie 2 przestrzeń między elementami σnie ma już znaczenia. To nie ma żadnego znaczenia w świecie doti dash, ale jest to konieczne tylko na poziomie 1 do identyfikacji kodu binarnego słowa reprezentujące dot, dash. Ale na poziomie 1 nie można go odróżnić od bitu 0.

Więc przestrzeń między elementami σ nie jest już niczym specjalnym. To tylko jedno użycie 0.

Σ2)Σ1

dot10dash1110

Σ2)sep0000dotdash00sep0dotdash0

Σ2)=dotdashsepdo2)1:Σ2)Σ1

  • dot10

  • dash1110

  • sep00

A my mamy wielką niespodziankę, gdy odkrywamy, że żadne słowo kodowe nie jest przedrostkiem innego. Dlatego mamy kod prefiksu, który jest jednoznaczny i łatwy do odkodowania.

do3)2):Σ3)Σ2) .

dotdashΣ3)dot dot dash dotfa .

fa dot dot dash dot sep

Σ3)SEP00000000sep0dotdashSEP0000 .

SEPΣ2)sep00SEPsep sep .

Σ3)={ZA,b,,Z,0,1,,9,?,=,,×,@, SEP}do3)2):Σ3)Σ2)

  • ZA dot dash se

  • b dash dodot dot sep

  • Z dash dash dot dot sep

  • 7 dash dash dot dot dot sep
  • SEP sep sep

do3)2)

doM.orsmi=do2)1do3)2)

Można więc stwierdzić, że Morse'a może być rozumiany i łatwo analizowane jak skład prefiks binarnego kodowania symboli z alfabetu {3 dot, dash,sep } na alfabet binarnej, a przedrostek zakodowanie 58 symbol alfabetu (57 znaków i jedna spacja) na 3-literowy alfabet.

Sama kompozycja jest kodowaniem przedrostka 58 symboli w reprezentacji binarnej.

Uwagi na temat tej analizy.

Zawsze trudno jest ustalić, że prezentacja struktury jest najlepsza z możliwych. Wydaje się jednak, że powyższa analiza spełnia kryteria określone na początku tej odpowiedzi: bliskość 3-warstwowej definicji, formalnie zaprezentowanej zgodnie z aktualną teorią kodowania, prostota i udokumentowanie głównych właściwości kodu.

Zauważ, że nie ma sensu szukać właściwości korekcji błędów. Kod Morse'a może nawet nie wykryć błędu jednego bitu, ponieważ może po prostu zmienić dwa dotw jeden dash. Powoduje to jednak tylko błędy lokalne.

Jeśli chodzi o kompresję, kodowanie trójskładnikowe zostało zaprojektowane w taki sposób, aby w przybliżeniu zmniejszyć liczbę kropek i kresek, w przybliżonym rodzaju kodowania Huffmana . Ale dwa skomponowane kody można łatwo zagęścić.

Jeśli chodzi o rozmiar alfabetu, nie ma wyboru dla alfabetu binarnego i 58 symboli. Alfabet pośredni może zawierać więcej symboli, ale jaki byłby cel?

Jednak niektórzy ludzie byliby skłonni rozpoznać przestrzeń DETna poziomie 2, dzięki czemu alfabet byłby czwartorzędowy , a następnie go bezpośrednio na poziomie 3, zakodowany jako sam na poziomie 2.

DET0000do2)1doM.orsmi

Rzeczywiście, taki wybór spowodowałby, że ciąg binarny byłby 0000niejednoznaczny, dekodowalny jako jeden SEPlub drugi sep sep. Niejasność musiałaby zostać rozwiązana za pomocą reguły kontekstowej, która sepnie może nadążać za sobą, co czyni formalizację bardziej złożoną.

Znaczenie przejścia analogowego na logiczne.

Analiza ta opiera się w dużej mierze na tym, że rozkład sygnału włączania / wyłączania na jednostki o jednakowej długości wyraźnie wskazuje na analogową reprezentację ciągu binarnego. Ponadto długości w jednostkach są dokładnie odpowiednie dla powyższej analizy, co wydaje się mało prawdopodobne, aby stało się to przez przypadek (choć jest to możliwe).

Jednak z (zbyt pobieżnego) spojrzenia na oryginalny patent 1647 nie wydaje się on być tak precyzyjny, z takimi zdaniami, jak (na górze strony 2):

Znak wyraźnej cyfry lub cyfry złożonej, gdy jest używany w zdaniu słów lub cyfr, składa się z odległości lub odstępu między znakami w większym stopniu niż odległość użyta do oddzielenia znaków, które składają się na takie wyraźne lub cyfra złożona.

Osoby, które później wysyłały ręcznie lub odbierały ze słuchu, również nie powinny być tak precyzyjne. Rzeczywiście, ich pięść , tj. Czas, była często rozpoznawalna. Ten pogląd jest również wspierany przez fakt, że długości odstępów nie zawsze są przestrzegane , szczególnie podczas nauki kodu Morse'a.

Sytuacje te odpowiadają analogicznemu widokowi kodu jako krótki sygnał (kropka), średni sygnał (kreska) oraz krótka, średnia i długa przerwa. Bezpośrednia transpozycja do logicznego alfabetu w naturalny sposób dałaby alfabet kwadratowy , w który należy zakodować 58 symboli. To oczywiście nie jest już trzypoziomowa prezentacja kodu Morse'a.

Aby jednak mieć sens (i być może uniknąć dwuznaczności), należy używać tego alfabetu z zastrzeżeniem, że dwa symbole sygnału ( dotlub dash) nie mogą podążać za sobą, a symbole pauzy nie mogą podążać za sobą. Analiza kodu i jego właściwości byłaby bardziej złożona, a naturalnym sposobem uproszczenia byłoby zrobienie tego, co zostało zrobione: wprowadzenie odpowiednich czasów, aby przekształcić go w skład dwóch kodów, co prowadzi do dość prostej analizy podanej powyżej ( pamiętaj, że obejmuje to pokazanie kodu jest prefiksem).

Ponadto nie jest absolutnie konieczne przestrzeganie dokładnych czasów w reprezentacji analogowej. Ponieważ dekoder tłumaczenia analogowego może rozróżniać krótkie, średnie i długie przerwy, w jakikolwiek sposób, powinien po prostu naśladować to, co zostało zrobione w przypadku binarnym. Dlatego krótki i średni sygnał (koniecznie po nim przerwa) są rozpoznawane jako logiczne dotlub dash. Krótkie przerwy są zapomniane, ponieważ służą jedynie do oznaczenia końca dotlub dash. Średnie przerwy są rozpoznawane jako sep, a długie przerwy są rozpoznawane jako dwie sepkolejno po sobie. Stąd sygnał analogowy jest reprezentowany w trójskładnikowym alfabecie, którego można użyć jak poprzednio do kodowania alfabetu 58 symboli. Z naszej wstępnej analizy można korzystać nawet wtedy, gdy terminy nie są ściśle przestrzegane.

Alternatywnie, alternatywę pauzy sygnałowej można zastosować do przekształcenia tego alfabetu kwantowego w trójkowy, zachowując tylko trzy czasy trwania jako symbole alfabetu i stosując analizę kontekstową w celu ustalenia, czy dany czas trwania jest sygnałem czy pauzą. Ale jest to znów trochę skomplikowane do analizy.

To po prostu pokazuje, że istnieje wiele sposobów patrzenia na rzeczy, ale niekoniecznie są one wygodne i mogą nie być łatwe do analizy za pomocą narzędzi matematycznych opracowanych do analizy kodów.

Więcej odniesień do patentów można znaleźć w Internecie.

Wniosek

Biorąc pod uwagę dokładne czasy standardu, dobrą odpowiedzią wydaje się być rozważenie kodu Morse'a jako kompozycji trójskładnikowego kodowania prefiksu (58 znaków) na alfabet 3 symboli, złożony z binarnego prefiksu kodowania tych trzech symboli.

Bez dokładnego określenia czasu standardu nie można już uwzględniać poziomu binarnego. Następnie dekodowanie analogowo-logiczne odbywa się naturalnie na poziomie pośredniego alfabetu doti dash. Jednak dekoder analogowo-logiczny może nadal dekodować do poprzednich 3 symboli alfabetu, zachowując w ten sposób przydatność naszej analizy.


1
Proszę przenieść każdą dalszą rozmowę na chat.stackexchange.com/rooms/21638/...
Wandering Logic

1
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Raphael

Pytanie: W potrójnym argumencie zaczynasz od alfabetu {0,1}, z tego konstruujesz cztery symbole {kropka = 10, myślnik = 1110, sep1 = 00, sep2 = 000000}, z tego konstruujesz zestaw potrójnych słów kodowych przez zezwolenie sep2 = sep1 sep1 sep1 . Zestaw słów kodowych został wybrany, ponieważ domyślnie wiąże symbole z kodowaniem, co jest wygodne, a OP pyta o pamięć binarną. Dlaczego jednak nie możesz zamiast tego użyć zestawu słów kodowych {rest = 0, on = 1}, a następnie powiedzieć „dot = on”, „dash = on on on”, sep0 = „off”, sep1 = „off off off” , sep2 = "off off off off off off off" (gdzie sep0 to odpoczynek między znakami)?
Jason C,

^ W takim przypadku argumentem jest binarne słowo kodowe ustawione nad potrójnym, ale wykorzystujące podobny i równie silny argument jak podany tutaj potrójny. Oznacza to, że wybór nadania specjalnego znaczenia wielu separatorom z rzędu, ale nie nadania specjalnego znaczenia wielu elementom - w innym rzędzie jest fundamentalny dla argumentu trójkowego, ale wydaje się również arbitralny.
Jason C,


28

Ta odpowiedź nie jest tak długa, jak się wydaje; ta strona po prostu dużo odstępów między elementami listy! Aktualizacja: W rzeczywistości robi się dość długo ...

Kod Morse'a nie jest „oficjalnie” binarny, trójskładnikowy, czwartorzędowy, kwantowy, a nawet 57-ary (jeśli liczę poprawnie). Kłócenie się o to, który jest bez kontekstu, nie jest produktywne. Od Ciebie zależy , który z tych pięciu modeli będzie oparty na Twojej aplikacji i wymaganiach dotyczących kodowania w konkretnej sytuacji . W tym celu każdy rozmiar zestawu symboli ma swoje zalety i wady, które należy wziąć pod uwagę w swojej sytuacji przed podjęciem decyzji.

Podstawą jest M.1677 , międzynarodowy standard Morse Code, sekcja 2, definiuje czasy jako:

2 Odstępy i długość sygnałów
2.1 Myślnik jest równy trzem kropkom.
2.2 Odstęp między sygnałami tworzącymi tę samą literę jest równy jednej kropce.
2.3 Odstęp między dwiema literami jest równy trzem kropkom.
2.4 Odstęp między dwoma słowami jest równy siedmiu kropkom.

Zauważ, że definiuje to tylko czasy, np. Myślnik nie oznacza tego samego co trzy kropki, jest po prostu tej samej długości. Podstawową jednostką czasu jest kropka.


Dwójkowy

Możemy wybrać opcję binarną, jeśli chcemy. Możliwe jest reprezentowanie kodu Morse'a „ścisłym binarnym”, jak go nazwiesz - podejście autora polegało na przypisaniu cyfr „kropce” i „myślnikowi”. Takie podejście nie działa i nie sądzę, że autor ma mocną znajomość kodu Morse'a. Ale działa inne podejście. Jeśli wybieramy wartość binarną, zasadniczo reprezentujemy, czy sygnał jest wysoki, czy niski, przy czym każdy symbol zajmuje pojedynczy przedział czasu wydłużony kropką. Zauważ, że jest to również podejście opisane na stronie Lista kodów binarnych, którą zacytowałeś.

Można również wybrać inne kodowania binarne (np. Odpowiedź Boba Jarvisa ) kosztem wzrostu trudności w dekodowaniu z powrotem do słyszalnego kodu Morse'a (kodowania Boba nie można dekodować bezstanowo, na przykład kompromis polega na tym, że zapewnia on krótsze sekwencje kodowane).

Symbolika:

  • Niski, wyłączony itp. (0)
  • Wysoka, włączona itp. (1)

Przykłady kodowania:

  • Separator sygnału: 0
  • Separator liter: 000
  • Separator słów: 0000000
  • Trzy kropki: 10101
  • Trzy kreski: 11101110111
  • Słowo „syn”: 101010001110111011100011101
  • Fraza „to a”: 10100010101000000010111

Plusy:

  • Minimalny rozmiar zestawu symboli
  • Łatwo zarządzany za pomocą typowej logiki cyfrowej
  • Łatwy do rozszyfrowania na słyszalny kod Morse'a (przy założeniu braku weryfikacji); bezstanowe dekodowanie i nie wymaga przechowywania informacji o taktowaniu symboli (każdy symbol ma tę samą długość).

Cons:

  • Długie kodowanie.
  • Wiele możliwości nieprawidłowego kodowania.
  • Znaczenie poszczególnych symboli (0, 1) zależy od kontekstu.


Potrójny

Dzięki temu wyborowi definiujemy odstępy między literami i słowami jako pauzy, a odstępy między sygnałami są niejawne (chociaż możesz wybrać wymaganie symboli spacji o długości kropki między sygnałami, jeśli bardziej Ci odpowiada).

Symbolika:

  • Reszta długości kropki (0)
  • Kropka (1)
  • Dash (2)

Przykłady kodowania:

  • Separator liter: 000
  • Separator słów: 0000000
  • Trzy kropki: 111
  • Trzy kreski: 222
  • Słowo „syn”: 11100022200021
  • Fraza „to a”: 11000111000000012

Plusy:

  • Mały rozmiar zestawu symboli.
  • Separator sygnału nie jest już potrzebny.
  • Krótsze długości kodowania niż binarne.
  • Usuwa niektóre nieprawidłowe kodowania (np. 0110 z niemożliwym wyborem binarnym).

Cons:

  • Wciąż długie kodowanie.
  • Nadal wiele możliwości nieprawidłowego kodowania, w szczególności reszty.
  • Nie można dekodować bezstanowo †, chyba że zdecydujesz się umieścić wyraźną długość kropki między sygnałami.
  • Separatory sygnałów są niejawne ‡, chyba że zdecydujesz się na umieszczenie wyraźnej długości kropek między sygnałami.
  • Niektóre znaczenia poszczególnych symboli (0) zależą od kontekstu.


Czwartorzędowy

Symbolika:

  • Separator liter (0)
  • Separator słów (1)
  • Kropka (2)
  • Dash (3)

Przykłady kodowania:

  • Trzy kropki: 222
  • Trzy kreski: 333
  • Słowo „syn”: 2220333032
  • Wyrażenie „to a”: 220222123

Plusy:

  • Bardzo krótka zakodowana długość.
  • Możliwość nieprawidłowego kodowania jest ograniczona.
  • Symbole są semantycznie dokładne.
  • Prawdopodobnie bardziej czytelny dla człowieka.

Cons:

  • Duży zestaw symboli.
  • Nie można dekodować bezstanowo.
  • Separatory sygnałów są niejawne.


Pięcioraki

Bezpośrednia interpretacja listy Wikipedii. Zauważ, że jest to bardzo podobne do wyboru binarnego, z tą różnicą, że różne prawidłowe kombinacje binarnych zer lub 1 mają własne symbole.

Symbolika:

  • Separator sygnału (0)
  • Separator liter (1)
  • Separator słów (2)
  • Kropka (3)
  • Dash (4)

Przykłady kodowania:

  • Trzy kropki: 30303
  • Trzy kreski: 40404
  • Słowo „syn”: 303031404041403
  • Fraza „to a”: 3031303032304

Plusy (w porównaniu do czwartorzędu):

  • Może być dekodowany bezpaństwowo.
  • Jedyny rozmiar zestawu symboli, który jednoznacznie, bezpośrednio i zwięźle reprezentuje pięć obiektów wymienionych w sekcji 2 normy: „kropka” (do której odnoszą się wszystkie czasy), „myślnik”, „odstęp między sygnałami”, „odstęp między dwie litery „,„ odstęp między dwoma słowami ”.

Minusy (w porównaniu do czwartorzędu):

  • Większa możliwość nieprawidłowego kodowania.
  • Zwiększone długości kodowania bez dodawania dodatkowych informacji (kompromisem jest łatwość dekodowania).
  • Nie jest tak łatwy do odkodowania jak wybór binarny, ponieważ każdy symbol ma inną długość w czasie i to powiązanie musi gdzieś zostać zachowane.


57-ary:

Zawarte dla kompletności.

Symbolika:

  • 26 liter
  • 10 liczb
  • 20 znaków interpunkcyjnych i różnych znaków
  • Separator słów (spacja)

Przykłady kodowania:

  • Słowo „syn”: son
  • Wyrażenie „jest”: is a

Plusy:

  • Najkrótsze kodowanie
  • Czytelny dla człowieka
  • Nieprawidłowe kodowanie jest niemożliwe.

Cons:

  • Największy zestaw symboli
  • Trudno rozszyfrować kod Morse'a; niezbędne do utrzymania tabel sekwencji wyjściowych kodu Morse'a dla każdego symbolu i konieczne do wykrycia granic słów i sąsiednich liter w celu ustalenia, gdzie wstawić różne reszty.
  • Nie można rozszerzyć specyfikacji Morse Code bez dodawania nowych symboli (kompromis za brak odporności na nieprawidłowe kodowanie).
  • Separatory sygnałów i liter są niejawne.

Zakończenie

W przypadku przechowywania jako strumienia symboli na urządzeniu, jeśli trzeba to zrobić, warto zauważyć, że M.1677 definiuje sekwencje zakończenia komunikatów i transmisji. Z części II:

5 Każdy telegram powinien być zakończony sygnałem krzyżowym (. -. -.)
6 Zakończenie transmisji sygnalizowane jest sygnałem krzyżowym (. -. -.), A następnie zaproszeniem do przesłania sygnału K (-. -)
7 Koniec pracy powinien być wskazany przez stację, która przesłała ostatni telegram. Prawidłowe wskazanie to sygnał zakończenia pracy (... -. -)

Niestety standard nie mówi o możliwości odróżnienia np. Ciągu „+ K” od sekwencji ( koniec telegramu , zaproszenie do transmisji ). Jednak end-of-pracy jest wyjątkowy. Jeśli przechowujesz kod Morse'a, będziesz musiał dokonać wyboru, w jaki sposób chcesz wskazać koniec zapisanej sekwencji.

Jeśli na przykład przechowujesz całą rozmowę i używasz binarnego zestawu symboli, możesz rozsądnie uznać koniec pracy za wskaźnik końca sekwencji, reprezentowany jako unikalna sekwencja bitów 101010111010111. Musisz wziąć pod uwagę typ danych, które przechowujesz (np. fragmenty wiadomości, całe wiadomości, całe rozmowy), a także udogodnienia oferowane przez Twój nośnik pamięci (np. możliwość prefiksu z długością wiadomości) przed podjęciem decyzji. Przypuszczam, że możesz posunąć się tak daleko, aby zdefiniować swój własny wskaźnik końca sekwencji. W każdym razie są to wszystkie kwestie związane z pamięcią masową i mają zbyt wiele możliwości, aby wymienić tutaj. Wybór należy do ciebie na podstawie tego, co jest odpowiednie dla twojej sytuacji.


Nie można dekodować bezstanowo: kodowania te wymagają zachowania pewnego stanu w celu odkodowania do słyszalnego kodu Morse'a. Wszystkie wymagają „Jeśli poprzedzającym symbolem była kropka / myślnik, a bieżącym symbolem jest kropka / myślnik, wstaw separator sygnału”. Chociaż możesz spróbować „oszukać” i automatycznie dołączyć separator sygnału do wszystkich symboli, jednocześnie zmniejszając separator słów do 5 pauz i separator liter do 1, M1677 afaict nie zabrania wyraźnie kolejnych separatorów słów, co psuje tę kludge.

Separatory sygnałów są niejawne: jest to bezpośrednio związane z powyższą nutą, ale bardziej zorientowane semantycznie. Te kodowania mają w swojej notacji ukryte separatory sygnałów. To znaczy „zzz” to intuicyjnie trzy oddzielne z, granice są „nałożone” na cokolwiek, co oddziela symbole w samym kodowaniu. Rozważmy opis „trzy kropki z rzędu”; intuicyjnie rozumiemy to jako trzy osobnekropki, ale jeśli nie sugerowano separatorów, można to uznać za nierozróżnialne od kreski. Jedynie reprezentacje binarne i kwantowe w stylu Wikipedii (lub trójskładnikowe z opcją wyraźnego separatora sygnałów) usuwają tutaj wszelkie niejasności i „skróty”, które mogą mieć wielką wartość w zależności od sytuacji. Z tego powodu istnieje mocny argument za wyborem kwoty.


TL; DR:

Jak widać, każda z nich ma swoje zalety i wady, i to Ty decydujesz, jak chcesz potraktować ją na podstawie twoich wymagań . Nie ma właściwej odpowiedzi. Można próbować argumentować, że jeden jest bardziej odpowiedni niż drugi ogólnie, ale te argumenty sprowadzałyby się do pedantycznych preferencji, ponieważ bez kontekstu nie ma poprawnej odpowiedzi.

Teraz wszystko, co powiedziałem, moim zdaniem, wybór kwarantanny jest reprezentacją, która wydaje mi się najbardziej „odpowiednia” dla samego Kod Morse'a (pierwotnie preferowałem czwartorzęd). Jest to jedyny wybór, który zapewnia wszystkie następujące elementy:

  • Symbole bezkontekstowe (sam symbol zawiera wszystkie informacje o jego znaczeniu bez sprawdzania sąsiednich symboli).
  • Reprezentacja wszystkich prymitywów zdefiniowanych w M.1667.
  • Separatory (sygnał, litera, słowo) nie są sugerowane przez notację lub podstawowe kodowanie (jest to ważne, jeśli pisałem { dot, dot, dash }, ,są one znaczące i łatwe do przeoczenia).

Istnieją jednak mocne argumenty dla wszystkich. Argumenty związane z kodowaniem mają również zastosowanie do traktowania samego Morse'a. Nie ma w 100% konkretnej odpowiedzi, ale z pewnością może stanowić dobry temat do dyskusji z przyjaciółmi przy barze.

. . . -. -


1
Proszę przenieść każdą dalszą rozmowę na chat.stackexchange.com/rooms/21638/...
Wandering Logic

1
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Raphael

W swoich argumentach ciągle odwołujesz się do bezstanowego dekodowania. W teorii kodowania stany wydają się być używane rzadko, w kodach splotowych, które są rodziną kodów korygujących błędy. Jest to całkowicie nie na temat, ponieważ kod Morse'a nie jest poprawieniem błędów. Rzeczywiście, nie może nawet wykryć niektórych bitów, nie mówiąc już o ich poprawieniu. Tworzysz różnego rodzaju arbitralne kody jako wersje kodu Morse'a, ale nie przynoszą one zrozumienia. Po co je prezentować? Niewymaganie stanów, tj. Kodowania homomorficznego, wydaje się minimalnym wymogiem. I tęsknisz za interesującymi kodowaniami. cc @KorayTugay
babou

@babou Bezstanowe argumenty dekodujące?
Koray Tugay,

@babou Nie mam nic przeciwko posiadaniu kilku punktów nie na temat. Oczywiście zestawy symboli są dowolne; właśnie o to mi chodzi z tą odpowiedzią. Potrójne słowo ustawione na argumencie kodu binarnego przedrostka jest równie arbitralne. Na pierwszy rzut oka nie, ale zasadniczo dokonałeś arbitralnego wyboru, aby oprzeć argument na słowie kodowym z dwuliterowym alfabetem (0 i 1). Jest to arbitralny wybór, ponieważ wybór nadania „sep sep sep” specjalnego znaczenia, ale nie robienie tego „jednostce 1”, jest arbitralny. Równie łatwo można powiedzieć, że „myślnik” to „kropka kropka kropka” i argumentować za binarną wersją trójskładnikową.
Jason C,

5

Pomimo moich początkowych przemyśleń, okazuje się, że pytanie to można sformalizować w sposób, który pozwala na dość precyzyjną odpowiedź (modulo kilka problemów z definicją). Odpowiedź okazuje się 3 lub 4, tj. Trójskładnikowa lub czwartorzędowa. Odpowiedź na „zadowolenie tłumu” od 2 do 57 ”jest poprawna tylko w tym sensie, że jeśli ktoś poprosi cię o scharakteryzowanie grup abelowych, powiesz mu, że są setami.

Zacznijmy od fizycznego kodowania kodu Morse'a. To właściwie B ASK , czyli binarne kluczowanie z przesunięciem amplitudy, co jest tylko skomplikowanym sposobem powiedzenia, że ​​istnieją dwa fizyczne (elektryczne / optyczne itp.) Poziomy amplitudy, abyśmy mogli zakodować nasz komunikat. Zatem bezpośrednie pytanie brzmi: czy to nie znaczy, że odpowiedź brzmi, że kod Morse'a jest binarny? Cóż, jest binarny tylko w raczej nieinformacyjny sposób, w tym sensie, że binarny sygnał wł. / Wył. Przesyłany przewodem nie odpowiada bezpośrednio liniom ani kropkom. Na tym niejasnym poziomie korespondencji moglibyśmy nawet wysłać kod ASCII (z bezpośrednim, oczywistym kodowaniem bitów) i nazwać go „Morse” i / lub „binarny”; to samo dotyczyłoby dowolnego kodu Huffmana (zamiast ASCII).

Jak więc uczynić korespondencję bardziej precyzyjną i jednocześnie sformalizować nasze pytanie? Pomaga teoria kodowania. PozwolićM.być zestawem „morskich” symboli, około 66 symboli, jeśli dobrze rozumiem wszechświat kodu Morse'a; obejmuje to 26 liter łacińskich, cyfry 0–9 i kilka pomocniczych znaków, takich jak niektóre znaki interpunkcyjne, „znaki dobroczynne” itp. To naprawdę nie jest strasznie ważne, co to są. Kod jest mapowaniem iniekcyjnym do:M.T. gdzie T. (nie T.) to zestaw słów kodowych. Aby być fizycznie reprezentowalnym w naszym bazowym sprzęcie BASK, wymagamy tegoT.{0,1}, tzn. nasze słowa kodowe muszą być ciągiem bitów; zauważ, że to pociąga za sobądoWartości to ciągi słów kodowych, więc ciągi znaków bitów, ale ostatecznie zlinearyzowane jako tylko ciągi bitów.

Aby być wiernym scharakteryzowaniem kodu Morse'a, potrzebujemy T. zawierać bezpośrednie odpowiedniki linii i kropek w tym sensie, że musi istnieć bijectja między tymi słowami kodowymi a kropkami i liniami reprezentującymi kod Morse'a na papierze. T. wymagany jest również [prawie] kod jednoznacznie rozszyfrowalny, co oznacza, że ​​każdy faktoring elementu T. pod względem elementów / słów kodowych z T.[idealnie] musi być wyjątkowy. (Zauważ, że niektórzy autorzy, np. Berstel , nawet nie dzwoniąT.kod, chyba że jest jednoznacznie odszyfrowalny, ale inne, np. Steve Roman, mają inną terminologię, w której każde mapowanie jest kodem, ale te, które są jednoznacznie odszyfrowalne, są właśnie tak powiedziane i skrócone kody UD. Tutaj będę tylko ostatnia terminologia. Nieco później dowiesz się, dlaczego powiedziałem „idealnie”).

Od do wymagane jest jedynie zastrzyk, a nie zastrzyk, możemy wypełnić T.z dowolnymi „śmieciami” przekraczającymi to, co potrzebne do uzyskania kodu UD, pod warunkiem, że ciągi znaków generowane przez te śmieci nie są wstępem do niczego morskiego. Na przykład ciąg dokładnie 42 kropek nie odpowiada żadnej postaci w żadnym wariancie kodu Morse'a, który widziałem. Więc gdy gdy pytamy, czy kod binarny Morse, trójskładnikowych, czwartorzędowy, pięcioraki itd., Kwestia ta powinna się z prośbą o minimalnej liczności zT. z powyższymi dwiema właściwościami, tj .: jest to [prawie] kod UD i mamy oczywistą sprzeczność między papierową „linią” i „kropką” do niektórych elementów T..

Istnieją dwa sposoby konstruowania T., albo z góry na dół, obserwując, że potrzebujesz separatora między papierową, liniową reprezentacją liter Morse'a, aby uzyskać kod UD, lub z dołu do góry, ponieważ w międzynarodowym kodzie Morse'a ITU mamy czas -długości linii, kropek i różnych pauz. Wykorzystam tutaj to drugie podejście, ponieważ istnieje wiele sposobów, aby je zdobyćT. w przeciwnym razie, tj. możesz wybrać dość dowolne długości czasu, np. nieaktualny amerykański kod Morse'a używał krótszych linii niż wersja ITU.

Zacznijmy od reprezentacji opartej na długości sygnału ITU, która ma pięć podstawowych słów kodowych, generowanych z sygnału „on” (1) i „off” o długości jednostki (0): just-dot(1), just-line(111), unit-space(0) , letter-space(000) i word-space[przyjęto siedem zer w Morse International, ale w praktyce może się różnić]. Natychmiast zauważ, że unit-spacemoże pojawić się tylko 1 tylko zaraz po just-doti just-line; i to0-terminacja just-doti just-line(który jest kodem przecinkowym; więcej na ten temat później) jest faktycznie wymagana, w przeciwnym razie nie można nawet odróżnić linii od kropek. Daje to oczywistą redukcję do czterech słów kodowych dzięki:

  • dit= just-dot unit-space= 10 i
  • dah= just-line unit-space= 1110.

Więc to czwartorzędowy Morse'a: dit, dah, letter-space, word-space. Następną obserwacją jest to, że word-spacemożna aproksymować (a nawet przyjąć, że są) dwa letter-spaces, tj. Sześć zer. Więc w ten sposób otrzymujesz trójkowe słowo kodowe; Jako odniesienia do tego rozumowania patrz np. [1] [2] .

Istnieje również techniczny powód, aby preferować trójkowe słowa kodowe: T.={10,1110,000}jest jednoznacznie rozszyfrowalnym kodem, w rzeczywistości jest to kod przedrostkowy. jednak{10,1110,000,07} (lub wersja z zaledwie sześcioma zerami) nie jest już jednoznacznie rozszyfrowywana, ponieważ 010=03)07=0703)więc istnieje nietypowa faktoryzacja. Chociaż teoretycznie jest to problem, nie ma on praktycznego znaczenia, ponieważ ludzki „metronom” ma trudności z pomiarem bardzo długich ciszy, więc w zasadzie każda cisza dłuższa niż pewna długość (przez człowieka) jest uważana za word-spacerodzaj.

Pamiętaj też, że jeśli się trzymasz 0 również w tym zestawie (tzn. w widoku „quinary”) robi się „jeszcze bardziej źle”, w tym sensie, że nawet 000nie ma już unikatowej faktoryzacji (ponieważ sam jest również słowem kodowym). Ponadto,0 nie ma na wstępie żadnego symbolu Morse'a, więc jest śmieci T., podobnie jak możesz dodać 1420 do T.; w rzeczywistości dodanie tego drugiego jest mniej kłopotliwe niż w przeciwieństwie do dodawania0nie spowoduje to, że kod straci właściwość UD.

Zmniejszenie / poboru z dit, dah, letter-spacejak słowa kodu binarnego do trzech abstrakcyjnych symboli (trits) jest przydatny do pokazania, że szybko (trójskładnikowy) Morse'a jest UD; jest to natychmiast oczywiste, ponieważ letter-spacedziała jak przecinek, tzn. trójskładnikowy kod Morse'a jest przecinkiem. (Należy zauważyć, że inni autorzy definiują „kod przecinka” w bardziej restrykcyjnym sensie, w którym wszystkie symbole inne niż przecinek są takie same; używam go tutaj w szerszym znaczeniu podanym w „Algebrze postmodernistycznej” DH Smitha , która po prostu oznacza użycie unikatowego symbolu kończącego słowo kluczowe zawsze.) Należy również pamiętać, że technika kodu przecinka jest używana na dwóch poziomach w kodzie Morse'a; just-linei just-dotsą zakończone przez „krótki” przecinek unit-space=0aby je odróżnić. Po wyodrębnieniu tej konstrukcji do dwóch różnych ( diti dah) tritów, wszystkie litery alfabetu Morse'a są również kodowane przecinkami, kończąc je za pomocą000 co trzecia trit.

Możesz także użyć metody trit obliczania entropii przy założeniu dahai diti letter-spacesą one „równoważne” jako trits [3] , w tym sensie, że - na przykład - „e” bierze 2 trit, a „y” bierze 5 trit. Podejście abstrakcyjnego trit nie jest tak przydatne, jeśli zależy ci na tym, jak kosztowny jest każdy symbol w rzeczywistym kodowaniu BASK Morse'a na linii. W tym drugim przypadku musisz sprowadzić się do rzeczywistej długości bitów 3 (lub 4) symboli, które są postrzegane jako automatyczne przejścia w automacie. Na przykład litera „e” wymaga 5 bitów do zakodowania (as dit letter-space), podczas gdy „y” zajmuje 17 bitów (trzy dahs, jeden diti a letter-space). Ten sposób myślenia sięga Shannon (patrz str. 3-4). Więcej informacji można znaleźć w „Teorii informacji i kodowaniu” Blahuta, np. oblicza „średnio 9,296 jednostek czasu sygnalizacji na literę wyjściową źródła” dla kodu Morse'a przy użyciu (bezwarunkowych) prawdopodobieństw wystąpienia liter w języku angielskim. Na nieco inną ekspozycję (przez zoologa!) Można spojrzeć JP Hailmana ; otrzymuje inną średnią (10,2), ponieważ zakłada nieco inne prawdopodobieństwo dla liter angielskich, ale poza tym jego analiza jest koncepcyjnie taka sama.

Podsumowując: możesz wziąć kilka wyświetleń kodu Morse'a, ale niektóre są bardziej owocne niż inne, mówiąc coś ciekawego na ten temat. Nie znam żadnych analiz wykorzystujących widok „quinary” i aby ten model nie był redukowalny do czterech symboli, musiałbyś przyjąć pewne założenia dotyczące wystąpienia przestrzeni jednostkowej, która nie mieści się w rzeczywistym Morse , np. że możesz mieć dwie, ale niekoniecznie trzy sąsiednie pola jednostek (co jest nieprawidłowe Morse). Widok trójskładnikowy umożliwia szybką analizę unikalnej dekodowalności. Najbardziej głęboki / owocny widok to taki, który widzi 3 lub 4 symbole w rzeczywistości reprezentowane przez nierówne ilości bitów, tak jak są one w prawdziwym kodzie Morse'a (| dit| = 2, | dah| = 4, | letter-space| = 3 i |word-space| = 6 lub 7); na tym niskim poziomie nadal jest wnikliwe rozważanie symboli trójskładnikowych / czwartorzędowych jako przejść w automacie.

Co do tego, dlaczego Wikipedia jest do bani ... cóż, jeśli chodzi o niektóre tematy, po prostu to robi. Ich główny artykuł na http://en.wikipedia.org/wiki/Coding_theory nie jest tak naprawdę polecany do przeczytania. Nie mogę wiele powiedzieć o książce (Petzolda), o której wspomniałeś, poza tym, że nie wydaje się napisana przez eksperta w dziedzinie teorii informacji. Petzold ma rację tylko w tym sensie, że jeśli wiadomości zakodowane w alfabecie Morse'a składałyby się tylko z jednej litery, można zasadnie powiedzieć, że są w jakimś kodzie binarnym; jeśli chcesz wysłać słowa, potrzebujesz separatora liter, w przeciwnym razie kod byłby strasznie inny niż UD, do tego stopnia, że ​​byłby niepraktyczny.


Tu jest trochę za późno, abym poprawił cały post, ale @babou podaje poniżej słuszną uwagę, że najwyraźniej Shannon, Blahut i inni błędnie zinterpretowali (obecny) standard ITU (zakładając, że nie zmienił się od czasu) techniczność: przestrzeń między jednostkami jest dodawana między cyframi i cyframi tej samej litery , ale tylko letter-spacemiędzy literami. To czytanie standardu wydaje się sprawdzać na podstawie dość niedawnej książki praktyka . Musimy więc pożyczyć po jednym z letter-spacekażdego z nich, dita dahgdy znajdują się one na końcowych pozycjach litery, pozostawiając tylko dwa zera dla letter-space, tj.T.={10,1110,00}. Oznacza to również, że (na przykład) rozmiar „e” wynosi tylko 4 bity, a nie 5.


Proszę przenieść każdą dalszą rozmowę na chat.stackexchange.com/rooms/21638/...
Wandering Logic

Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Raphael

-1

Pierwotnie kod Morse'a był przeznaczony do zapisywania znaków na pasku papieru, ale operatorzy telegraficzni wkrótce mogli „odczytać” kliknięcia urządzenia. Ta wersja Morse'a (amerykańska lub „lądowa” Morse'a) miała trzy elementy „znakowe”, kropkę, myślnik i długi myślnik.

Wykorzystanie Morse'a międzynarodowego w ostatnim stuleciu, za pomocą transmisji radiowej, było zwykle kodowane ręcznie (na kluczu telegraficznym) i dekodowane przez ucho, słuchając wzoru sygnałów dźwiękowych wytwarzanych przez odbiornik. Wykwalifikowani operatorzy mogą otrzymywać lepiej niż niewykwalifikowani, a niektórzy ludzie mogą tworzyć kod, który jest łatwiejszy do zrozumienia niż inne. Mówiono, że dobry operator przekazu ma „dobrą pięść”. Nieudolny operator został nazwany LID. (Jeśli chodzi o pochodzenie „lid” - które, jak sądzę, pochodzi z powszechnego błędu w amerykańskim Morse'u wysyłania LID dla DD, daaahh, dit dit, dah dit dit zamiast dah dit dit, dah dit dit - patrz następujący odnośnik: https://english.stackexchange.com/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-the-context-of-telegraph .)

Wynika z tego, że „kodowanie” Morse'a do formatu binarnego zależy od celu, a zatem od tego, czy należy zachować jakość „dobrej pięści” w porównaniu z „słabą pięścią”. Czy ciąg włączania i wyłączania ma być dopasowany do zegara i „poprawiony” pod kątem trudności w fazie lub czasie trwania każdej części sygnału? A może zamiast tego należy pobierać próbki z częstotliwością wystarczającą do zachowania przypadkowych lub mylących odmian, przypuszczalnie do późniejszej kontroli lub rozkoszy?


1
Przepraszamy, jak to odpowiada na pytanie?
Koray Tugay
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.