O Código Morse é binário, ternário ou quinário?

27

Estou lendo o livro: " Código: a linguagem oculta do hardware e software dos computadores " e no capítulo 2 o autor diz:

Diz-se que o código Morse é um código binário (literalmente significa dois por dois) porque os componentes do código consistem em apenas duas coisas - um ponto e um traço.

A Wikipedia, por outro lado, diz:

Estritamente falando, não é binário, pois existem cinco elementos fundamentais (consulte o quinário). No entanto, isso não significa que o código Morse não possa ser representado como um código binário. Em um sentido abstrato, essa é a função que os operadores de telégrafo desempenham ao transmitir mensagens (consulte a seção "Quinário").

Mas, novamente, outra página da Wikipedia inclui o Código Morse em 'Lista de códigos binários'.

Estou muito confuso porque acho que o Código Morse é na verdade ternário . Você tem três tipos diferentes de 'possibilidades': um silêncio, um bipe curto ou um bip longo.

É impossível representar o Código Morse em 'mexer binário', não é?

Por "binário estrito", quero dizer, pense no fluxo de binário: 1010111101010 .. Como devo representar um silêncio, um bipe curto e / ou longo?

A única maneira de pensar é no "tamanho da palavra" implementado por um computador. Se eu (e a CPU / intérprete do código) soubermos que ele estará lendo 8 bits a cada vez, então eu posso representar o Código Morse. Eu posso simplesmente representar um bipe curto com 1 ou um bipe longo com 0 e os silêncios serão representados implicitamente pelo comprimento da palavra (digamos 8 bits). minha mão: o tamanho da palavra.

Meu pensamento é o seguinte: posso reservar os 3 primeiros bits para quantos bits serão lidos e os últimos 5 bits para o código Morse em uma palavra de 8 bits. Como 00110000, significa 'A'. E ainda estou em 'binário', MAS preciso da palavra tamanho que a torna ternária, não é? Os 3 primeiros bits dizem: Leia apenas 1 bit dos 5 bits a seguir.

Em vez de binário, se usarmos trinário, podemos mostrar código morse como: 101021110102110222 etc. onde 1 é: dit 0 é: dah e 2 é silêncio. Ao usar 222, podemos codificar o longo silêncio; portanto, se você tiver um sinal como * - * --- * -, poderá mostrá-lo como: 102100022210, mas não é diretamente possível usar apenas com 1 e 0, A menos que você tenha algo como um tamanho de palavra 'fixo' como mencionei, mas isso é interpretativo, não salvando o Código Morse, pois é em binário. Imagine algo como um piano, você tem apenas os botões do piano. Você deseja deixar uma mensagem no Código Morse para alguém e pode pintar os botões em preto. Não há como você deixar uma mensagem clara, não é? Você precisa de pelo menos mais uma cor para poder colocar os silêncios (aqueles entre caracteres e palavras. É isso que quero dizer com trenário.

Não estou perguntando se você pode representar o Código Morse em 57 anos ou qualquer outra coisa.

Enviei um e-mail ao autor (Charles Petzold) sobre isso; ele diz que demonstra no capítulo 9 do "Código" que o Código Morse pode ser interpretado como um código binário.

Onde estou errado com meu pensamento? O que estou lendo no livro é que o Código Morse é um Binário um fato ou não? É de alguma forma discutível? Por que o Código Morse é informado como quinário em uma página da Wikipedia e também está listado na página Lista de códigos binários ?

Editar: enviei um e-mail ao autor e recebi uma resposta:

-----Mensagem original-----

De: Koray Tugay [mailto: [email protected]]

Enviado: terça-feira, 3 de março de 2015 15:16

Para: [email protected]

Assunto: O Código Morse é realmente binário?

Senhor, você pode dar uma olhada na minha pergunta aqui: O Código Morse é binário, ternário ou quinário? quinário?

Atenciosamente, Koray Tugay

De: "Charles Petzold"

Para: "'Koray Tugay'"

Assunto: RE: O código Morse é realmente binário? Data: 3

Mar 2015 23:04:35 EET

No final do capítulo 9 do "Código", demonstro que o Código Morse pode ser interpretado como um código binário.

-----Mensagem original-----

De: Koray Tugay [mailto: [email protected]]

Enviado: terça-feira, 3 de março de 2015 15:16

Para: [email protected]

Assunto: O Código Morse é realmente binário?

Senhor, você pode dar uma olhada na minha pergunta aqui: O Código Morse é binário, ternário ou quinário? quinário?

Atenciosamente, Koray Tugay

Não estou ocultando o e-mail dele, pois é realmente fácil de encontrar na Web.

Koray Tugay
fonte
Por favor, mova qualquer outra conversa para chat.stackexchange.com/rooms/21638/...
Wandering Logic
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Raphael
Corrigi os links que excluí acidentalmente (gritos); abstenha-se de reverter as revisões piores.
Raphael
11
@WanderingLogic A abordagem correta, mais eficaz e sem ruídos é sinalizar silenciosamente a pergunta para limpeza de comentários e sugerir que os comentários sejam movidos para o bate-papo na bandeira, não para representar publicamente a polícia de comentários e tentar criar uma sala de bate-papo para combinar todos os comentários sobre todas as respostas sem contexto. Seus links também agora confundem o assunto, já que Raphael postou os links corretos.
Jason C #
11
@ J.-E.Pin Bem, eu não dei uma definição formal, porque eu tinha como certo que as pessoas que responderam à pergunta sabiam disso, e eu tinha uma ou duas referências na Wikipedia para definir o contexto. Mesmo que a wikipedia esteja longe de ser perfeita, isso deve ser capaz de assumir o papel de definições, como costuma ser feito aqui. Levei algum tempo para perceber que era o problema, na verdade aparentemente generalizado. Eu mesmo estava reescrevendo tudo, com definições explícitas, citações, referências e explicações formais com homomorfismos injetáveis. Devo terminar?
babou

Respostas:

19

O código Morse é um código ternário de prefixo (para codificar 58 caracteres) em cima de um código binário de prefixo que codifica os três símbolos.

Essa foi uma resposta muito mais curta quando aceita. No entanto, considerando os consideráveis ​​mal-entendidos entre os usuários e seguindo uma solicitação do OP, escrevi essa resposta por muito mais tempo. A primeira seção "resumo" fornece a essência.

Conteúdo

Em poucas palavras (grande)

Ao perguntar "O Código Morse é binário, ternário ou quinário?" não há comparação de respostas possíveis, a menos que se estabeleça alguns critérios para uma resposta aceitável. De fato, sem critérios adequados, é possível inventar explicações para quase qualquer tipo de estrutura. Os critérios que escolhi são os seguintes:

  • deve refletir a descrição em três níveis do código Morse com a representação de ponto / traço no segundo nível;

  • deve caber na apresentação e nas ferramentas matemáticas desenvolvidas para a análise teórica dos códigos, tanto quanto possível;

  • deve ser o mais simples possível;

  • deve claramente tornar aparentes as propriedades do código Morse.

O objetivo é impedir o hacking arbitrário, que ignora os conceitos básicos da teoria do código estudados cientificamente e que podem ter algum apelo ao fornecer uma ilusão de análise sistemática, embora abordada de maneira informal demais para ser conclusiva. Este site deve ser sobre ciência da computação , não programação. Devemos usar um mínimo de ciência estabelecida e conceitos aceitos para responder a uma pergunta técnica.

Uma análise rápida do padrão mostra que todos os símbolos usados ​​no código Morse são codificados em binário , uma vez que são transmitidos como uma cadeia de unidades de igual comprimento, com um sinal que pode ser ativado ou desativado para cada unidade. Isso indica que as mensagens Morse são finalmente codificadas em um alfabeto lógico .Σ1={0,1}

Mas isso não diz nada da estrutura interna do código. As informações a serem codificadas são uma sequência em um alfabeto de 58 símbolos (de acordo com o padrão), incluindo 57 caracteres e um espaço. Isso corresponde a um alfabeto , o último simbolo é o espaço.Σ3={A,B,,Z,0,1,,9,?,=,,×,@,[]}

No entanto, os especifica padrão que existe um alfabeto intermediário , com base em e e, possivelmente, outros símbolos. Está bem claroΣ2dotdash

  • que cadeias em devem ser codificadas como cadeias em eΣ3Σ2

  • que cadeias em devem ser codificadas como cadeias emΣ2Σ1

Portanto, considerando que não há escolha para e , a questão deve ser entendida como: " Qual o número de símbolos que devemos considerar no alfabeto intermediário para melhor planejar a estrutura e as propriedades de todo o Morse código " , que também implica especificar as duas codificações entre os três níveis.Σ1Σ3Σ2

Dado o fato de que o código Morse é um prefixo de código homomorphic (comprimento variável) que impede qualquer ambiguidade ao decodificar um sinal, podemos explicar simplesmente esta propriedade essencial com um ternário alfabeto { , , }, e dois esquema de codificação de a e de a , que são homomórficos e prefixos, portanto, ambos códigos inequívocos e, portanto, capazes de ser compostos para fornecer um prefixo inequívoco. codificação dos 58 símbolos em binário.Σ2=dotdashsepC32Σ3Σ2C21Σ2Σ1

Daí código Morse é composto de um código de prefixo ternário expresso no alfabeto , , , com estas três próprios símbolos codificados em binário com as palavras de código seguintes:{ dotdashsep }

dot 10 , edash 1110sep 00

Observe que o que é conhecido como o espaço entre consecutivo dotou dashestá realmente incluído na representação de dote dash, como essa é a representação matemática usual para esses tipos de códigos, que geralmente são definidos como homomorfismos de cadeia de caracteres dos símbolos de origem às palavras de código expressas com símbolos de destino, como eu acabei de fazer.

Isso se afasta um pouco de algumas das apresentações fornecidas no padrão, que objetivam especificar mais intuitivamente o código para os usuários, em vez de analisá-lo por suas propriedades estruturais. Mas a codificação é a mesma nos dois casos.

Mesmo sem os tempos precisos do padrão, um decodificador do sinal analógico ainda poderia traduzi-lo para o alfabeto ternário que sugerimos, para que o entendimento acima do código ternário ainda fosse válido.

Códigos: pontos básicos

Esta resposta é baseada no padrão ITU-R M.1677-1 , de outubro de 2009 (agradecimentos a Jason C pela referência). Usarei a terminologia dote dash, em vez de dite dah, como é a terminologia usada por esta norma.

Antes de começarmos a discutir o código Morse, precisamos concordar com o que é um código. As discussões difíceis sobre essa questão obviamente exigem isso.

Fundamentalmente, as informações precisam ser representadas para serem transmitidas ou processadas. Um código é um sistema para converter informações de um sistema de representação em outro . Esta é uma definição muito geral. Devemos tomar cuidado para não confundir o conceito de representação e o código de uma representação (a fonte ) para outra (o destino ).

Uma representação pode assumir várias formas, como tensão elétrica variável, pontos coloridos no papel, sequência de caracteres, numerais, sequências binárias de 0 e 1, etc. É importante distinguir entre representação analógica e formal (ou lógica ou abstrata) .

Uma representação analógica / física é um desenho, um nível de tensão variável, uma forma (para uma letra).

Uma representação lógica / formal / abstrata é uma representação matemática com gráficos abstratos, cadeias de símbolos ou outras entidades matemáticas.

Embora algumas informações possam ser originalmente analógicas, geralmente as convertemos em uma representação lógica para poder definir com precisão seu processamento por meios matemáticos ou por pessoas.

Por outro lado, ao lidar com a representação lógica usando dispositivos físicos, como computadores ou transmissores, precisamos dar uma forma analógica à representação lógica.

Para os fins desta análise, a única forma analógica que consideramos é a usada para transmissão, conforme descrito na norma. Mas, mesmo assim, consideraremos que o primeiro passo é interpretar essa representação analógica como uma implementação direta de uma representação lógica estruturada identicamente, na qual construímos nossa análise de que tipo de código pode ser o código Morse. A teoria dos códigos é um corpo de conhecimento matemático baseado na análise de representações lógicas.

No entanto, voltaremos à transição analógica / lógica na discussão no final.

Códigos: definições

Nossa visão lógica é que o código é usado para traduzir fontes de cordas em uma fonte alfabeto a um alvo alfabeto . Geralmente, os dois alfabetos são idênticos, geralmente binários, quando o objetivo é adicionar alguma propriedade extra à representação das informações, como torná-las mais resistentes a erros (detecção e correção de erros) ou diminuir a representação por remoção de redundância (compactação sem perda de código) e possivelmente com perda cuidadosamente controlada de algumas informações (compactação com perda).ST

No entanto, o objetivo do código Morse é fornecer apenas uma maneira de representar cadeias de caracteres em um alfabeto grande, em cadeias baseadas em um alfabeto muito menor (na verdade binário), usando um alfabeto intermediário quase binário (pontos e traços) para melhor adaptação ao humano percepção e habilidades manipulativas. Isso é alcançado pelo que é chamado código de tamanho variável :

Usando termos da teoria formal da linguagem, a definição matemática precisa é a seguinte: Seja e dois conjuntos finitos, chamados alfabetos de origem e de destino, respectivamente. Um código é uma função total que mapeia cada símbolo de para uma sequência de símbolos sobre , e a extensão de para um homomorfismo de em , que mapeia naturalmente cada sequência de símbolos de origem para uma sequência de símbolos de destino, é chamada de extensão.STC:STSTCST

Chamamos Codeword a imagem de um símbolo .C(s)TsS

Um código de comprimento variável é decodificado de forma única se o homomorfismo correspondente de em for injetivo . Isso significa que qualquer string em pode ser a imagem de no máximo uma string em . Também dizemos que o código não é ambíguo , o que significa que qualquer string pode ser decodificada de maneira inequívoca, se houver.CSTTS

Um código de tamanho variável é um código de prefixo se nenhuma palavra de código for o prefixo de outro. Também é um código instantâneo ou código livre de contexto . A razão para esses nomes é que, ao ler uma sequência de destino que começa com uma palavra de código de um código de prefixo, você reconhece o final da palavra de código assim que lê seu último símbolo, sem precisar conhecer / ler o próximo símbolo. Como conseqüência, os códigos de prefixo são inequívocos e muito fáceis de decodificar rapidamente.w

É facilmente demonstrado que a decodabilidade exclusiva e a propriedade prefix são fechadas sob a composição de códigos.

Observe que a definição como homomorfismo implica que não há separação especial entre as palavras de código. É sua estrutura, como a propriedade prefix, que permite identificá-los sem ambiguidade.

De fato, se houvesse tais símbolos de separação, eles teriam que fazer parte do alfabeto alvo, pois seriam necessários decodificar a string do alfabeto alvo. Seria bastante simples reverter para o modelo teórico do código de tamanho variável anexando o separador à palavra de código anterior. Se isso criar uma dificuldade contextual (devido, por exemplo, a vários separadores), isso seria apenas uma dica de que o código é mais complexo do que aparente. Essa é uma boa razão para seguir o modelo teórico descrito acima.

O código Morse

O código Morse é descrito no padrão em três níveis:

  • 3) ele pretende fornecer uma codificação de texto em idioma natural, usando 57 caracteres (27 letras, 10 dígitos, 20 sinbols e pontuações) e um espaço entre palavras para cortar a sequência de caracteres em palavras. O espaço entre palavras é usado como um caractere especial, que pode ser misturado com os outros, o que observarei SEP.

  • 2) todos esses caracteres devem ser codificados como sucessões dash e dot, usando um espaço entre letras, que observarei sep, para separar a letra dashe a dotletra de uma das letras da próxima letra.

  • 1 O dashe dot, assim como sepdevem ser codificados como sinal ou ausência de sinal (chamado espaçamento) com comprimento definido com precisão em termos de alguma unidade aceita. Em particular, a letra dashe a dotcodificação devem ser separadas por um espaço entre elementos, que observarei σ.

Isso já requer algumas conclusões.

A mensagem a ser transmitida e recebida em forma analógica é uma sucessão de unidades de comprimento (espaço ou duração), de modo que um sinal seja desligado durante toda a duração de cada unidade, conforme especificado na seção I da parte 1 do anexo 2 do padrão :

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.

Esta é claramente uma codificação analógica no que é conhecido como um fluxo de bits, que pode ser logicamente representado na notação binária por uma série de 0ans 1, de pé para o analógico off e on .

Para abstrair questões relacionadas à representação analógica, podemos considerar que as mensagens do código Morse são transmitidas como cadeias de bits, as quais devemos observar com 0e 1.

Portanto, o trecho acima do padrão pode ser expresso logicamente como:

  • 0 A doté representado por 1.
  • 1 A dashé representado por 111.
  • 2) Um espaço entre elementos σé representado por 0.
  • 3) Um espaço entre letras sepé representado por 000.
  • 4) Um espaço entre palavras SEPé representado por 0000000.

Assim, poderíamos ver o código Morse usando 5 palavras de código em binário para codificar esses 5 símbolos. Exceto pelo fato de que não é exatamente assim que o sistema é descrito, há um pouco mais, e não é a maneira mais conveniente de se pensar, de um ponto de vista ingênuo ou matemático.

Observe também que esta descrição é destinada a leigos, não a especialistas em teoria de códigos. Por esse motivo, descreve mais a aparência visível do que a estrutura interna que a justifica. Não há razão para impedir outras descrições compatíveis com esta, embora matematicamente mais estruturadas, para enfatizar as propriedades do código.

Mas primeiro, devemos observar que a descrição completa do código envolve 3 níveis de representação, imediatamente reconhecíveis:

  • 3) O texto, composto por uma sequência de caracteres, incluindo SEP.
  • 2) A codificação de uma sequência de letras como uma sequência de dot, dashe sep.
  • 1 A codificação de uma sequência de nível 2 desses três symbolscomo uma sequência binária.

Podemos discutir sobre quais símbolos são codificados em quê, mas é um aspecto essencial do código Morse que ele tenha esses três níveis de representação, com caracteres no topo, dots e dashes no meio e bits 0e 1na parte inferior .

Isso implica que existem necessariamente dois códigos, um do nível 3 ao nível 2 e o outro do nível 2 ao nível 1.

Analisando os três níveis de representação

Para ter uma análise consistente desse sistema de codificação em três camadas, devemos primeiro analisar que tipo de informação é relevante em cada nível.

  • 1 A cadeia de bits, por definição e por necessidade de sua representação analógica, é composta apenas por 0e 1.

  • 3) No nível do texto, precisamos de um alfabeto de 58 símbolos, incluindo os 57 caracteres e o espaço entre palavras SEP. Todos os 58 deles precisam ter uma codificação binária. Porém, embora o padrão do código Morse especifique esses 57 + 1 caracteres, ele não especifica como eles devem ser usados ​​para codificar informações. Esse é o papel do inglês e de outras línguas naturais. O código Morse fornece a outro sistema um alfabeto de 58 símbolos, no qual eles poderiam criar um código de 58 árias, mas o código Morse não é, por si só, um código de 58 árias.

  • 2) No nível dote dash, tudo o que precisamos são esses dois símbolos para codificar os 57 caracteres, ou seja, forneça uma palavra de código para cada uma como uma seqüência de caracteres dote dash, juntamente com um separador seppara marcar quando uma letra terminar e outra começar. Também precisamos de alguns meios de codificar o espaço entre palavras SEP. Podemos tentar fornecê-lo diretamente no ponto 1, mas isso atrapalharia a organização do código, de outra forma estruturada em camadas.

De fato, a descrição do padrão pode ser criticada por fazer exatamente isso. Mas os autores podem ter pensado que sua apresentação seria mais simples de entender para o usuário médio. Também segue uma descrição tradicional do código Morse, que antecede esse tipo de análise matemática.

Isso exige várias observações:

  • no nível 3, no nível da letra, o espaço entre letras sepnão é mais significativo. Isso é bastante normal, pois não tem mais significado no universo das letras do que o espaço que separa dois caracteres escritos no papel. É necessário, no nível 2, reconhecer as palavras de código que representam as letras, mas isso é tudo.

  • da mesma forma no nível 2, o espaço entre elementos σnão é mais significativo. Não tem nenhum significado no mundo dos dote dash, mas só é necessário no nível 1 para identificar as palavras de código binário que representa dot, dash. Mas no nível 1, não é distinguível do bit 0.

Portanto, o espaço entre elementos σnão é mais nada de especial. É apenas um uso de 0.

No entanto, como explicado anteriormente, se o código for analisado usando o conhecimento de códigos de comprimento variável, os separadores devem ser anexados às palavras de código que seguem, para definir o código como uma sequência simples homomorfismo.Σ2Σ1

Isso implica a seguinte especificação parcial do código: edot10dash1110

O alfabeto de nível 2 precisa de pelo menos um outro símbolo, o espaço entre letras indicado , que deve estar de acordo com a letra do padrão. No entanto, a definição do código de comprimento variável como um homomorfismo exigia anexar o espaço entre elementos a cada palavra de código para e . Portanto, devemos ter apenas como palavra-código , para que, juntamente com o final do precedente ou , faça 3 conforme exigido pelo padrão. Isso sempre funciona, uma vez que não há previsão no padrão para que dois separadores entre letras se sigam.Σ2sep0000dotdash00sep0dotdash0

Isto é suficiente para codificar o alfabeto { , , } com um código homomórfica definidos como segue:Σ2=dotdashsepC21:Σ2Σ1

  • dot10

  • dash1110

  • sep00

E temos a boa surpresa de descobrir que nenhuma palavra de código é um prefixo de outra. Portanto, temos um código de prefixo, que é inequívoco e fácil de decodificar.

Agora podemos proceder da mesma forma para definir o código .C32:Σ3Σ2

O padrão usa cadeias de caracteres dote dashcomo palavras de código para os caracteres em , da maneira fornecida pelas tabelas do padrão, por exemplo, para representar a letra .Σ3dot dot dash dotf

Novamente, essas palavras de código são separadas por espaços entre letras. Para definir o código como um homomorfismo, devemos incluir o separador nas palavras de código, para que a definição do homomorfismo se torne: f dot dot dash dot sep

Isso se aplica a cada um dos 57 caracteres do alfabeto . Mas, novamente, também precisamos da palavra separador , que, de acordo com o padrão, é . Observamos primeiro que já são fornecidos 3 bits pelo código, 2 pelo que termina a última letra da palavra e 1 pelo bit que termina a última ou pela codificação dessa última letra. Portanto, em última análise, deve ser codificado como o restante .Σ3SEP00000000sep0dotdashSEP0000

Mas, para respeitar a abordagem em camadas, SEPdeve ser codificado em alguma palavra de código de . Como é codificado como binário , segue-se que pode ser codificado como .Σ2sep00SEPsep sep

Portanto, podemos codificar o alfabeto , com um código homomórfico definido da seguinte forma:Σ3={A,B,,Z,0,1,,9,?,=,,×,@, SEP}C32:Σ3Σ2

  • A dot dash se p

  • B dash do t dot dot sep ...

  • Z dash dash dot dot sep ...

  • 7 dash dash dot dot dot sep ...
  • SEP sep sep (para o separador de palavras)

E ainda temos a surpresa de ver que nenhuma palavra de código é um prefixo de outra. Portanto, o código é um código de prefixo.C32

Como a propriedade prefix é fechada sob a composição de códigos, o código Morse é um código de prefixo.CMorse=C21C32

Podemos, assim, concluir que o código Morse pode ser compreendido, e facilmente analisadas, como a composição de um prefixo de binário que codifica de um alfabeto 3 símbolos { dot, dash, sep} em um alfabeto binário, e um prefixo que codifica de um 58 símbolo alfabeto (57 caracteres e um espaço) no alfabeto de 3 letras.

A composição em si é um prefixo que codifica os 58 símbolos em uma representação binária.

Comentários sobre esta análise.

É sempre difícil estabelecer que a apresentação de uma estrutura é a melhor possível. Parece, no entanto, que a análise acima atende aos critérios estabelecidos no início desta resposta: proximidade com a definição em três níveis, formalmente apresentada de acordo com a teoria atual de codificação, simplicidade e evidenciando as principais propriedades do código.

Observe que há pouco sentido em procurar propriedades de correção de erros. O código Morse pode nem detectar um erro de bit único, pois pode simplesmente transformar dois dotem um dash. No entanto, ele causa apenas erros locais.

Em relação à compressão, a codificação ternária foi projetada para reduzir aproximadamente o número de pontos e traços, em um tipo aproximado de codificação de Huffman . Mas os dois códigos compostos poderiam ser facilmente mais densos.

Em relação ao tamanho dos alfabetos, não há escolha para o alfabeto binário e o alfabeto de 58 símbolos. O alfabeto intermediário poderia conter mais símbolos, mas qual seria o objetivo?

No entanto, algumas pessoas estariam inclinadas a reconhecer o espaço DETno nível 2, tornando o alfabeto quaternário , usando-o diretamente no nível 3, codificado como ele próprio no nível 2.

Isso atenderia à definição padrão, para DETcodificado em binário como 0000. Mas isso impediria a análise da codificação binária como um código de prefixo, tornando mais difícil mostrar que é um código de prefixo, portanto inequívoco. C M o r e sC21CMorse

De fato, essa escolha tornaria a string binária 0000ambígua, decodificável como um SEPou como sep sep. A ambiguidade teria que ser resolvida com uma regra contextual que sepnão pode seguir a si mesma, tornando a formalização mais complexa.

A importância da transição analógica para a lógica.

Esta análise baseia-se fortemente no fato de que a decomposição do sinal liga / desliga em unidades de comprimentos iguais indica claramente uma representação analógica de uma cadeia binária. Além disso, os comprimentos em unidades são exatamente corretos para a análise acima, o que parece improvável que tenha acontecido por acaso (embora seja possível).

No entanto, a partir de uma análise (muito superficial) da patente original 1647 , não parece ter sido tão precisa, com frases como (no topo da página 2):

O sinal de um numeral distinto, ou de um numeral composto, quando usado em sentenças de palavras ou de numerais, consiste em uma distância ou espaço de separação entre os caracteres em maior extensão do que a distância usada na separação dos caracteres que compõem qualquer um desses distintos ou numeral composto.

As pessoas que mais tarde enviavam à mão ou recebiam de ouvido também provavelmente não seriam tão precisas. De fato, seu punho , ou seja, seu timing, era frequentemente reconhecível. Essa visão também é suportada pelo fato de que os comprimentos de espaçamento nem sempre são respeitados , principalmente ao aprender código Morse.

Essas situações correspondem a uma visualização analógica do código como sinal curto (ponto), sinal médio (traço) e pausa curta, média e longa. A transposição direta para um alfabeto lógico daria naturalmente um alfabeto quinário , no qual os 58 símbolos devem ser codificados. Obviamente, isso não é mais uma apresentação em três níveis do código Morse.

No entanto, para fazer sentido (e possivelmente evitar ambiguidade), esse alfabeto deve ser usado com a restrição de que dois símbolos de sinal ( dotou dash) não possam se seguir e que os símbolos de pausa também não possam se seguir. A análise do código e de suas propriedades seria mais complexa e a maneira natural de simplificá-lo seria fazer o que foi feito: introduza tempos adequados para transformá-lo na composição de dois códigos, levando à análise bastante simples fornecida acima ( lembre-se de que inclui mostrar o código como prefixo).

Além disso, não é estritamente necessário seguir os horários exatos na representação analógica. Como o decodificador da tradução analógica pode distinguir pausas curtas, médias e longas, por qualquer meio, deve apenas imitar o que foi feito no caso binário. Portanto, o sinal curto e médio (necessariamente seguido de uma pausa) são reconhecidos como lógicos dotou dash. Pausas curtas são esquecidas, pois servem apenas para marcar o final de dotou dash. Pausas médias são reconhecidas como sepe pausas longas são reconhecidas como duas sepem sucessão. Portanto, o sinal analógico é representado em um alfabeto ternário, que pode ser usado como antes para codificar o alfabeto de 58 símbolos. Nossa análise inicial pode ser usada mesmo quando os horários não são estritamente respeitados.

Como alternativa, a alternância de pausa de sinal pode ser usada para transformar esse alfabeto quinário em um ternário, mantendo apenas as três durações como símbolos do alfabeto e usando a análise contextual para determinar se uma determinada duração é sinal ou pausa. Mas isso é novamente um pouco complexo para analisar.

Isso apenas mostra que existem muitas maneiras de ver as coisas, mas elas não são necessariamente convenientes e nem todas se prestam facilmente à análise com as ferramentas matemáticas que foram desenvolvidas para analisar códigos.

Mais referências às patentes podem ser encontradas na Internet.

Conclusão

Dados os tempos precisos do padrão, uma boa resposta parece ser considerar o código Morse como a composição de um prefixo ternário que codifica (de 58 caracteres) em um alfabeto de 3 símbolos, composto por um prefixo binário que codifica esses três símbolos.

Sem o tempo preciso do padrão, o nível binário não pode mais ser considerado. Então a decodificação analógica para lógica ocorre naturalmente no nível do alfabeto intermediário de dote dash. No entanto, o decodificador analógico para lógico ainda pode decodificar para o alfabeto dos três símbolos anteriores, preservando a aplicabilidade de nossa análise.

babou
fonte
11
Por favor, mova qualquer outra conversa para chat.stackexchange.com/rooms/21638/...
Wandering Logic
11
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Raphael
Pergunta: No argumento ternário, você começa com um alfabeto {0,1}; a partir disso, constrói quatro símbolos {ponto = 10, traço = 1110, sep1 = 00, sep2 = 000000}; a partir disso, você constrói um conjunto de palavras de código ternário permitindo sep2 = sep1 sep1 sep1 . O conjunto de palavras de código foi escolhido porque vincula implicitamente os símbolos à codificação, o que é conveniente, e o OP está perguntando sobre armazenamento binário. No entanto, por que você não pode usar o conjunto de palavras em código {rest = 0, on = 1} e dizer "dot = on", "dash = on on", sep0 = "off", sep1 = "off off" , sep2 = "off off off off off off off" (onde sep0 é descanso inter-sinal)?
Jason C #
^ Nesse caso, o argumento é para uma palavra de código binário definida sobre uma ternária, mas usando um argumento semelhante e igualmente forte como o ternário fornecido aqui. Ou seja, a escolha de atribuir um significado especial a vários separadores em uma linha, mas não atribuir um significado especial a vários outros itens - é fundamental para o argumento ternário, mas também parece arbitrário.
Jason C #
28

Essa resposta não é tão longa quanto parece; este site apenas coloca muito espaço entre os itens da lista! Atualização: Na verdade, está ficando muito longo ...

O Código Morse não é "oficialmente" binário, ternário, quaternário, quinário ou até 57 anos (se contar corretamente). Argumentar sobre qual deles é sem contexto não é produtivo. Cabe a você definir qual desses cinco se baseia em seu aplicativo e nos requisitos de codificação para sua situação específica . Para esse fim, existem prós e contras em cada tamanho de conjunto de símbolos, que você deve considerar para sua situação antes de tomar uma decisão.

Para base, M.1677 , o padrão internacional do Código Morse, seção 2, define tempos como:

2 Espaçamento e comprimento dos sinais
2.1 Um traço é igual a três pontos.
2.2 O espaço entre os sinais que formam a mesma letra é igual a um ponto.
2.3 O espaço entre duas letras é igual a três pontos.
2.4 O espaço entre duas palavras é igual a sete pontos.

Observe que isso define apenas os tempos, por exemplo, um traço não significa a mesma coisa que três pontos, é simplesmente o mesmo comprimento. A unidade base de tempo é um ponto.


Binário

Podemos escolher o binário, se quisermos. É possível representar o Código Morse com "binário estrito", como você o chama - a abordagem do autor foi atribuir os dígitos a "ponto" e "traço". Essa abordagem não funciona e eu não acho que o autor tenha uma compreensão firme do código Morse. Mas existe uma abordagem diferente que funciona. Se escolhermos o binário, representamos essencialmente se o sinal é alto ou baixo, com cada símbolo ocupando uma única fatia de tempo com comprimento de ponto. Observe que esta também é a abordagem descrita na página Lista de códigos binários que você citou.

Outras codificações binárias também podem ser escolhidas (por exemplo , resposta de Bob Jarvis ) às custas de aumentos na dificuldade de decodificação de volta ao Código Morse audível (a codificação de Bob não pode ser decodificada sem estado, por exemplo, a desvantagem é que ela fornece sequências codificadas mais curtas).

Símbolos:

  • Baixo, desligado etc. (0)
  • Alto, ativado etc. (1)

Exemplos de codificação:

  • Separador de sinal: 0
  • Separador de letras: 000
  • Separador de palavras: 0000000
  • Três pontos: 10101
  • Três traços: 11101110111
  • A palavra "filho": 101010001110111011100011101
  • A frase "é um": 10100010101000000010111

Prós:

  • Tamanho mínimo do conjunto de símbolos
  • Facilmente gerenciado com lógica digital típica
  • Fácil de decodificar em código Morse audível (presumindo que nenhuma validação seja feita); decodificação sem estado e não requer armazenamento de informações sobre o tempo dos símbolos (cada símbolo tem o mesmo comprimento).

Contras:

  • Codificações longas.
  • Muitas oportunidades para codificações inválidas.
  • Os significados dos símbolos individuais (0, 1) dependem do contexto.


Ternário

Com essa opção, definimos espaçamentos de letras e palavras como pausas, e os espaçamentos de sinais estão implícitos (embora você possa optar por exigir símbolos de descanso de comprimento de ponto entre os sinais, se for melhor para você).

Símbolos:

  • Descanso em pontos (0)
  • Ponto (1)
  • Traço (2)

Exemplos de codificação:

  • Separador de letras: 000
  • Separador de palavras: 0000000
  • Três pontos: 111
  • Três traços: 222
  • A palavra "filho": 11100022200021
  • A frase "é um": 11000111000000012

Prós:

  • Símbolo pequeno tamanho definido.
  • Separador de sinal não é mais necessário.
  • Comprimentos de codificação menores que binários.
  • Remove algumas codificações inválidas (por exemplo, 0110 com a opção binária não é mais possível).

Contras:

  • Codificações ainda longas.
  • Ainda existem muitas possibilidades para codificações inválidas, em particular, o restante.
  • Não pode ser decodificado sem estado †, a menos que você opte por colocar um comprimento explícito de ponto entre os sinais.
  • Separadores de sinais estão implícitos ‡ a menos que você opte por colocar um comprimento explícito de pontos entre os sinais.
  • Alguns significados individuais de símbolos (0) dependem do contexto.


Quaternário

Símbolos:

  • Separador de letras (0)
  • Separador de palavras (1)
  • Ponto (2)
  • Traço (3)

Exemplos de codificação:

  • Três pontos: 222
  • Três traços: 333
  • A palavra "filho": 2220333032
  • A frase "é um": 220222123

Prós:

  • Comprimento codificado muito curto.
  • A possibilidade de codificações inválidas é reduzida.
  • Os símbolos são semanticamente precisos.
  • Indiscutivelmente, mais legível por humanos.

Contras:

  • Tamanho grande do conjunto de símbolos.
  • Não pode ser decodificado sem estado.
  • Separadores de sinais estão implícitos.


Quinário

Uma interpretação direta da lista da Wikipedia. Observe que isso é muito semelhante à escolha binária, exceto que as várias combinações válidas de 0 ou 1 binários recebem seus próprios símbolos.

Símbolos:

  • Separador de sinal (0)
  • Separador de letras (1)
  • Separador de palavras (2)
  • Ponto (3)
  • Traço (4)

Exemplos de codificação:

  • Três pontos: 30303
  • Três traços: 40404
  • A palavra "filho": 303031404041403
  • A frase "é um": 3031303032304

Prós (comparado ao quaternário):

  • Pode ser decodificado sem estado.
  • O único tamanho do conjunto de símbolos que representa de maneira inequívoca, direta e concisa os cinco objetos mencionados na seção 2 do padrão: "ponto" (ao qual todos os tempos são relativos), "traço", "espaço entre os sinais", "espaço entre os sinais" duas letras "," espaço entre duas palavras ".

Contras (comparado ao quaternário):

  • Maior possibilidade de codificações inválidas.
  • Comprimentos de codificação aumentados sem adicionar informações extras (a troca é fácil de decodificar).
  • Não é tão fácil de decodificar quanto a escolha binária, pois cada símbolo tem uma duração diferente e essa associação deve ser mantida em algum lugar.


57 anos:

Incluído para ser completo.

Símbolos:

  • 26 letras
  • 10 números
  • 20 sinais de pontuação e sinais diversos
  • Separador de palavras (espaço)

Exemplos de codificação:

  • A palavra "filho": son
  • A frase "é um": is a

Prós:

  • Codificação mais curta
  • Legível por humanos
  • Codificações inválidas são impossíveis.

Contras:

  • Maior conjunto de símbolos
  • Difícil decodificar em código Morse; necessário manter tabelas de seqüências de saída do Código Morse para cada símbolo e necessário detectar limites de palavras e letras adjacentes para determinar onde inserir vários restos.
  • Impossível expandir além da especificação do Código Morse sem adicionar novos símbolos (tradeoff por ser imune a codificações inválidas).
  • Separadores de sinal e letra estão implícitos.

Terminação

Para armazenamento como um fluxo de símbolos em um dispositivo, se você precisar fazer isso, vale a pena notar que M.1677 define sequências de terminação de transmissão e mensagem. Da parte II:

5 Todo telegrama deve terminar com um sinal cruzado (. -. -.)
6 O final da transmissão deve ser indicado pelo sinal cruzado (. -. -.) Seguido do convite para transmitir o sinal K (-. -)
7 O fim do trabalho deve ser indicado pela estação que transmitiu o último telegrama. A indicação correta é o sinal de fim do trabalho (... -. -)

Infelizmente, o padrão é omisso quanto à capacidade de distinguir, por exemplo, a string "+ K" da sequência ( final do telegrama , convite para transmissão ). No entanto, o final do trabalho é único. Se você estiver armazenando código morse, precisará escolher como deseja indicar o final de uma sequência armazenada.

Se você estiver armazenando uma conversa inteira, por exemplo, e estiver usando o conjunto de símbolos binários, considere razoavelmente o fim do trabalho como o indicador de fim de sequência, representado como a sequência de bits exclusiva 101010111010111. Você precisa considerar o tipo dos dados que você está armazenando (por exemplo, fragmentos de mensagens, mensagens inteiras, conversas inteiras), bem como os recursos oferecidos pelo seu meio de armazenamento (por exemplo, capacidade de prefixar o tamanho da mensagem) antes de decidir. Suponho que você possa chegar ao ponto de definir seu próprio indicador de fim de sequência. De qualquer forma, todos esses são assuntos de armazenamento subjacente e têm muitas possibilidades de listar aqui. A escolha é sua, com base no que for apropriado para sua situação.


Não pode ser decodificado sem estado: Essas codificações exigem que algum estado seja mantido para decodificar em Código Morse audível. Todos eles exigem "Se o símbolo anterior for um ponto / traço e o símbolo atual for um ponto / traço, insira o separador de sinal". Embora você possa tentar "trapacear" e anexar automaticamente um separador de sinal a todos os símbolos, reduzindo o separador de palavras para 5 intervalos e o separador de letras para 1, o M.1677 afaict não proíbe explicitamente separadores de palavras consecutivos, o que interrompe esse kludge.

Separadores de sinal estão implícitos: isso está diretamente relacionado à nota acima, mas é mais semanticamente orientado. Essas codificações possuem separadores de sinal implícitos em suas notações. Ou seja, "zzz" é intuitivamente três zs separados, os limites são "sobrepostos" no que quer que seja que separa símbolos na própria codificação. Considere a descrição "três pontos seguidos"; intuitivamente que levar isto para dizer três separadopontos, mas se os separadores não estivessem implícitos, isso poderia ser considerado indistinguível de um traço. Somente as representações binária e quinária do estilo Wikipedia (ou ternário com a opção explícita de separador de sinal) removem toda ambiguidade e "atalhos" aqui, que podem ser de grande valor dependendo da situação. É por esse motivo que há um forte argumento para a escolha quinária.


TL; DR:

Como você pode ver, existem vantagens e desvantagens para cada um, e cabe a você decidir como deseja tratá-lo com base em seus requisitos . Não há resposta certa. Você pode tentar argumentar que um é mais apropriado que o outro em geral, mas esses argumentos se resumem a preferências pedantes, pois, sem contexto, não há resposta correta.

Agora, tudo o que disse, na minha opinião, a escolha temporária é a representação que me parece mais "certa" para o próprio Código Morse (originalmente eu preferia o quaternário). É a única opção que fornece todo o seguinte:

  • Símbolos sem contexto (um símbolo por si só contém todas as informações sobre seu significado sem examinar símbolos adjacentes).
  • Representação de todos os primitivos definidos em M.1667.
  • Separadores (sinal, letra, palavra) não estão implícitos em notação ou codificação subjacente (isso é importante, se eu escrevi { dot, dot, dash }, ,é significativo e fácil de ignorar).

No entanto, existem fortes argumentos para todos. Os argumentos relacionados à codificação também são aplicáveis ​​ao tratamento do próprio Morse. Não existe uma resposta 100% concreta, mas certamente pode ser um bom tópico para o debate com seus amigos no bar.

. . . -. -

Jason C
fonte
11
Por favor, mova qualquer outra conversa para chat.stackexchange.com/rooms/21638/...
Wandering Logic
11
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Raphael
Você continua se referindo à decodificação sem estado em seus argumentos. Na teoria da codificação, os estados parecem ser usados ​​apenas raramente, em códigos convolucionais, que são uma família de códigos de correção de erros. Isso é completamente fora de tópico, já que o código Morse não corrige erros. Na verdade, ele não consegue nem detectar alguns erros de um bit, muito menos corrigi-los. Você inventa vários tipos de códigos arbitrários como sendo uma versão do código Morse, mas eles não trazem entendimento. Por que apresentá-los? Não exigir estados, ou seja, codificação homomórfica, parece um requisito mínimo. E você sente falta das codificações interessantes. cc @KorayTugay
babou 6/03/2015
@babou Argumentos de decodificação sem estado?
precisa
@babou Eu não me importo de ter alguns pontos fora do tópico. Claro que os conjuntos de símbolos são arbitrários; esse é precisamente o ponto que estou afirmando com esta resposta. A palavra ternária definida no topo do argumento do código do prefixo binário é igualmente arbitrária. À primeira vista, não, mas fundamentalmente, você optou arbitrariamente por basear o argumento em uma palavra de código definida com um alfabeto de duas letras (0 e 1). É uma escolha arbitrária, porque a escolha de atribuir um significado especial a "sep sep sep", mas não fazer isso a uma "unidade 1" é arbitrária. Você poderia facilmente dizer que "traço" é "ponto ponto ponto" e argumentar por binário e ternário.
Jason C #
5

Apesar dos meus pensamentos iniciais sobre isso, verifica-se que essa pergunta pode ser formalizada de uma maneira que admita uma resposta bastante precisa (algumas questões de definição sobre o módulo). A resposta acaba sendo 3 ou 4, ou seja, ternário ou quaternário. A resposta que agrada a todos "tudo vai de 2 a 57" é correta apenas no sentido em que se alguém lhe pede uma caracterização de grupos abelianos, você diz a ele que são conjuntos.

Vamos começar analisando a codificação física do código Morse. Na verdade, isso é B ASK , ou seja, chaveamento binário de mudança de amplitude, que é apenas uma maneira elaborada de dizer que existem dois níveis de amplitude física (elétrica / óptica etc.) para codificarmos nossa mensagem. Portanto, a pergunta imediata é: isso não significa que a resposta é que o código Morse é binário? Bem, é binário apenas de uma maneira não informativa, no sentido de que o sinal de ligar / desligar binário enviado pelo fio não corresponde diretamente a linhas ou pontos. Nesse nível vago de correspondência, poderíamos até enviar o código ASCII (com a codificação direta óbvia de bits) e chamá-lo de "Morse" e / ou "binário"; o mesmo se aplica a qualquer código Huffman (em vez de ASCII).

Então, como podemos tornar a correspondência mais precisa e, ao mesmo tempo, formalizar nossa pergunta? A teoria da codificação vem ajudar. Seja o conjunto de símbolos "moderáveis", aproximadamente 66 símbolos, se eu entender o universo do código Morse corretamente; isso inclui as 26 letras latinas, os dígitos de 0 a 9 e vários acessórios, como algumas pontuações, "prosigns" etc. etc. Na verdade, não é muito importante o que são. Um código é um mapeamento injetivo onde (não ) é um conjunto de palavras de código. Para ser fisicamente representável em nosso hardware BASK subjacente, exigimos que , ou seja, nossas palavras de código precisem ser uma sequência de bits; note que isso implicaMc:MTTTT{0,1}cOs valores de são cadeias de caracteres de código, portanto, cadeias de caracteres de bits, mas, no final das contas, linearizadas como apenas cadeias de bits.

Para ser uma caracterização fiel do código Morse, precisamos que contenha alguns equivalentes diretos de linhas e pontos, no sentido de que deve haver uma bijeção entre essas palavras de código e os pontos e linhas que representam o código Morse no papel. também é necessário para ser [quase] um código exclusivamente decifráveis, o que significa que qualquer factoring de um elemento de em termos de elementos / codewords de [idealmente] deve ser exclusivo. (Observe que alguns autores, por exemplo, Berstel , nem chamam código, a menos que seja exclusivamente decifrável, mas outros, por exemplo, Steve RomanTTTTTpossuem uma terminologia diferente em que qualquer mapeamento é um código, mas aqueles que são exclusivamente decifráveis ​​são apenas o que dizem e abreviam códigos UD. Aqui eu vou apenas a última terminologia. Você também verá um pouco mais tarde porque eu disse "idealmente".)

Como é necessário apenas para ser uma injeção e não uma injeção, podemos preencher com "lixo" arbitrário além do necessário para obter um código UD, desde que as strings geradas por esse lixo não sejam a pré-imagem de algo que possa ser pior. Por exemplo, uma seqüência de exatamente 42 pontos não corresponde a nada em nenhuma variante do código Morse que eu vi. Portanto, quando perguntamos se o código Morse é binário, ternário, quaternário, quinário etc., a pergunta deve ser pedir a cardinalidade mínima de com as duas propriedades acima, ou seja: é [quase] um código UD e temos um bijection óbvia entre a "linha" à base de papel e "ponto" a alguns elementos da .cTTT

Existem duas maneiras de proceder na construção de , de cima para baixo, observando que você precisa de um separador entre a representação em papel de ponto de linha das letras Morse para obter um código UD ou de baixo para cima, desde a ITU código Morse internacional, recebemos os comprimentos das linhas, pontos e várias pausas. Usarei a última abordagem aqui porque existem várias maneiras de obter algum , ou seja, você pode escolher períodos bastante arbitrários, por exemplo, o código Morse americano extinto usou linhas mais curtas que a versão ITU.TT

Comece com a representação derivada do comprimento do sinal ITU, que possui cinco palavras de código básicas, geradas a partir do sinal "on" (1) e "off" (0) do comprimento da unidade: just-dot(1), just-line(111), unit-space(0) , letter-space(000) e word-space[assumiu sete zeros no International Morse, mas pode variar na prática]. Observe imediatamente que o unit-spaceitem só pode aparecer seguido por 1 somente depois just-dote just-line; e esse término de e (que é um código de vírgula; mais sobre isso mais tarde) é realmente necessário, caso contrário, você não pode nem distinguir linhas de pontos. Isso fornece a redução óbvia para quatro palavras de código com:0just-dotjust-line

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

Então esse é o código Morse quaternário: dit, dah, letter-space, word-space. A próxima observação é que o valor word-spacepode ser aproximado (ou mesmo assumido) dois letter-spaces, ou seja, seis zeros. Então, como é assim que você obtém o conjunto de palavras de código ternárias; Como referências para esta linha de raciocínio, veja, por exemplo, [1] [2] .

Há também uma razão técnica para preferir as palavras de código ternárias: é um código exclusivamente decifrável, na verdade, é um código de prefixo. No entanto, (ou a versão com apenas seis zeros) não é mais decifrável exclusivamente porque portanto, fatoração Embora isso seja teoricamente um problema, não é uma preocupação prática, porque o "metrônomo" humano tem dificuldade em medir silêncios muito longos de qualquer maneira; portanto, basicamente, qualquer silêncio maior que um certo comprimento é considerado (por um humano) uma espécie de espécie.{ 10 , 1110 , 000 , 0 7 } 0 10 = 0 3 0 7 = 0 7 0 3T={10,1110,000}{10,1110,000,07}010=0307=0703word-space

Observe também que, se você colocar nesse conjunto também (por exemplo, adotar a visualização "quinária"), ela ficará "ainda mais errada", no sentido de que mesmo não tenham mais fatoração exclusiva (pois ela também é uma palavra de código). Além disso, não está na pré-imagem de nenhum símbolo de Morse; portanto, é lixo em , assim como você pode adicionar a ; de fato, adicionar o último é menos problemático, pois, ao contrário de adicionar , não fará com que o código perca a propriedade UD.000 0 T 1 42 0 T 000000T1420T0

A redução / abstracção de dit, dah, letter-spacecomo palavras de código binário para três símbolos sumário (Trits) é útil para mostrar rapidamente que o (ternário) é o código Morse UD; isso é imediatamente óbvio porque letter-spaceatua como uma vírgula, ou seja, o código Morse ternário é um código de vírgula. (Observe que outros autores definem "código de vírgula" em um sentido mais restritivo, onde todos os símbolos que não sejam a vírgula são os mesmos; estou usando-o aqui no sentido mais amplo dado na "Álgebra pós-moderna" de DH Smith , que apenas significa usar um símbolo de terminação exclusivo para qualquer palavra de código.) Observe também que a técnica comma0code é usada em dois níveis no código Morse; o just-linee just-dotsão terminadas pelo "curto vírgula" unit-space=0000para torná-los distinguíveis um do outro. Uma vez que você abstraia essa construção para os dois trits diferentes ( dite dah), todas as letras do código Morse também são codificadas por vírgula, terminando-as com que é o terceiro trit.000

Também é possível usar o calcule entropia abordagem trit assumindo um dahe dite letter-spacesão "equivalentes" como Trits [3] , no sentido em que, por exemplo,-'e' leva 2 Trits e 'y' leva 5 Trits. A abordagem trit abstrata não é tão útil se você se importar com o quão caro cada símbolo é realmente transmitir na codificação real do BASK Morse em uma linha. Para o último, você precisa reduzir o tamanho real dos bits dos 3 (ou 4) símbolos, que são vistos apenas como transições em um autômato. Por exemplo, a letra 'e' leva 5 bits para codificar (as dit letter-space) enquanto 'y' leva 17 bits (três dahs, um dite a letter-space). Essa linha de pensamento remonta a Shannon (ver pp. 3-4). Mais detalhes podem ser encontradosna "Teoria da informação e codificação" de Blahut, por exemplo, ele calcula "uma média de 9,296 unidades de tempo de sinalização por letra de saída da fonte" para o código Morse usando as probabilidades (incondicionais) de ocorrência de letras em inglês. Para uma exposição ligeiramente diferente (por um zoólogo!), Você pode olhar para o de JP Hailman ; ele obtém uma média diferente (10,2) porque assume probabilidades ligeiramente diferentes para as letras em inglês, mas, caso contrário, sua análise é conceitualmente a mesma.

Para resumir isso: você pode ter várias visualizações do código Morse, mas algumas são mais proveitosas do que outras ao dizer algo interessante sobre isso. Não conheço nenhuma análise que use a visualização "quinary" e, para que esse modelo não seja redutível a quatro símbolos, você teria que fazer algumas suposições sobre a ocorrência do espaço-unidade que não contém Morse real , por exemplo, você poderia ter dois, mas não necessariamente três espaços de unidade adjacentes (que é Morse inválido). A visão ternária oferece uma análise rápida da decodibilidade exclusiva. A visão mais profunda / proveitosa é aquela que vê os 3 ou 4 símbolos como realmente representados por quantidades desiguais de bits, como no código Morse real (| dit| = 2, | dah| = 4, | letter-space| = 3 e |word-space| = 6 ou 7); ainda é perspicaz nesse nível inferior considerar os símbolos ternários / quaternários como transições em um autômato.

Por que a Wikipedia é uma merda nisso ... bem em alguns tópicos, apenas isso. O artigo principal em http://en.wikipedia.org/wiki/Coding_theory também não é algo que eu recomendo a leitura. Não posso dizer muito sobre o livro (Petzold) que você mencionou, exceto que não parece escrito por um especialista em teoria da informação. Petzold está correto apenas no sentido de que se as mensagens codificadas em Morse consistissem em apenas uma letra, você poderia razoavelmente dizer que elas estão em algum código binário; se você quiser enviar palavras, precisará de um separador de letras; caso contrário, o código seria horrivelmente não UD, a ponto de impraticabilidade.


É um pouco tarde aqui para eu revisar o post inteiro, mas @babou faz um argumento válido abaixo que aparentemente Shannon, Blahut e outros interpretaram mal o padrão (atual) da ITU (assumindo que ele não mudou desde o tempo) no seguinte tecnicidade: o espaço da unidade é adicionado entre dits e dahs da mesma letra , mas apenas o espaço letter-spaceé adicionado entre as letras. Essa leitura do padrão parece ser confirmada com base no livro de um praticante relativamente recente . Portanto, precisamos emprestar um 0 de letter-spacecada um dite dahquando estiverem nas posições terminais de uma letra, deixando apenas dois 0 para o letter-space, ou seja, . Isso também significa que (por exemplo) o tamanho de 'e' é de apenas 4 bits, não 5.T={10,1110,00}

Fizz
fonte
Por favor, mova qualquer outra conversa para chat.stackexchange.com/rooms/21638/...
Wandering Logic
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
Raphael
-1

Originalmente, o código Morse pretendia ser marcas escritas em uma tira de papel, mas os operadores de telégrafo logo conseguiram "ler" os cliques do equipamento. Esta versão do Morse (americano ou "land" Morse) tinha três elementos "mark", o ponto, o traço e o traço longo.

O uso do International Morse durante o século passado, via transmissão de rádio, era geralmente codificado à mão (em uma tecla de telégrafo) e decodificado pelo ouvido, ouvindo o padrão de bipes produzidos pelo receptor. Operadores qualificados podem receber melhor do que os não qualificados, e algumas pessoas podem produzir código mais fácil de entender do que o de outras. Um bom operador de transmissão teria um "bom punho". Um operador inepto foi chamado de LID. (Para a origem da "tampa" - que eu acredito que vem de um erro comum no American Morse de enviar LID para DD, daaahh, dit dit, dah dit dit em vez de dah dit dit, dah dit dit - veja esta referência: https://english.stackexchange.com/questions/31818/how-did-the-word-lid-come-to-mean-poor-operator-in-the-context-of-telegraph .)

Assim, segue-se que a "codificação" de Morse para um formato binário depende do propósito e, assim, se a qualidade de "bom punho" versus "mau punho" deve ser mantida. Uma sequência de comutação liga e desliga deve ser correspondida a um relógio e "corrigida" para dificuldades na fase ou duração de cada parte do sinal? Ou será feita uma amostragem a uma taxa suficiente para reter variações aleatórias ou confusas, presumivelmente para inspeção ou satisfação posterior?

ex-presunto
fonte
11
Desculpe, como isso responde à pergunta?
precisa saber é o seguinte