giovedì 3 dicembre 2020

Capacità — 9. Finalmente la codifica Morse

“Siamo pronti per un riassunto finale”.

“Oh, finalmente”.

Abbiamo ricavato questa formula ricorsiva per la lunghezza delle stringhe codificate col codice Morse:”.

N(negativo) = 0
N(0) = 1
N(1) = 0
N(t) = N(t − 2) + N(t − 4) + N(t − 5) + N(t − 7) + N(t − 8) + N(t − 10)

“Giusto”.

“Abbiamo detto che, per calcolare la capacità di un canale in cui le trasmissioni avvengono secondo una determinata codifica, dobbiamo calcolare la lunghezza delle stringhe per t che diventa sempre più grande, farne il logaritmo, e dividere tutto per t”.

“Ricordo anche questo.”.

“E, infine, abbiamo visto un metodo per risolvere un'equazione alle ricorrenze, con l'uso delle funzioni esponenziali”.

“L'abbiamo usato con i numeri di Fibonacci, mi ricordo. Si immagina che la soluzione sia un'esponenziale, si sostituisce, e si fanno tornare i conti scoprendo di quale esponenziale si tratti”.

“Di quale, o di quali: potrebbero essercene anche più di una. La formula per i numeri di Fibonacci ne contiene due, per esempio”.

“Ah, vero. Però a lungo andare, quando il numero diventa sempre più grande, ce n'è una che comanda, perché l'altra dà un contributo sempre più piccolo”.

“Sì, è così. Abbiamo un'esponenziale con esponente positivo che, a lungo andare, diventa sempre più grande, e un'esponenziale con esponente negativo che, a lungo andare, diventa sempre più trascurabile”.

“Ok. Quindi ora dovremmo risolvere quella brutta equazione alle ricorrenze per il codice Morse? Sostituendo un'esponenziale generica?”.

“Già”.

“Ma se prendo una funzione del tipo an e sostituisco, mi viene una roba complicatissima!”.

“Prova, però devi sistemare le lettere, perché questa volta abbiamo indicato con N(t) il numero di stringhe di lunghezza t. Quindi, se vuoi provare con una funzione esponenziale, deve essere del tipo N(t) = at”.

“Ah, ok, io provo. Se sostituisco at mi viene questo:”.

at = at-2 + at−4 + at−5 + at−7 + at−8 + at−10

“Giusto”.

“Ma è una cosa orribile”.

“Eh, un po'”.

“E come la risolvo?”.

“Comincia col raccogliere il termine più piccolo, at−10”.

“Giusto, e poi lo semplifico. Direi che risulti una cosa del genere:”.

a10 = a8 + a6 + a5 + a3 + a2 + 1

“Bene”.

“Ma è un'equazione di decimo grado, chi la risolve?”.

“Questo lo facciamo fare ai computer, ecco qua”.

“Ah, veh che bello. Vedo due risultati reali, uno positivo e uno negativo, e poi dei risultati complessi”.

“A noi interessa quello positivo, che sarà quello che comanda quando la lunghezza della stringa diventa sempre più lunga”.

“Dice che è circa 1.4529”.

“E quindi la nostra N(t) si comporta circa come 1.4529t, a lungo andare”.

“E adesso?”.

“E adesso ne fai il logaritmo in base 2, e dividi per t”.

“La t si semplifica, rimane log2(1.4529)”.

“Che fa circa 0.539”.

“E quindi?”.

“E quindi abbiamo fatto: la capacità di una linea che trasmette in codice Morse è di 0.539 bit per unità di tempo”.

“Che fatica”.

“Pensa che Shannon ha spiegato tutto questo in due mezze pagine di un suo famosissimo articolo”.

“Cosa?”.

“Pagina 3 e pagina 4”.

“Su quante?”.

“Cinquantacinque”.

“Aiuto!”.