Questa parte descrive i metodi di modulazione usati per i modem convenzionali. Non tratta i metodi di alta velocità (modulus conversion), talvolta usati dai I modem a 56k (v.90). Ma anche i modem a 56k usano i metodi di modulazione qui descritti.
La modulazione è la conversione di un segnale digitale rappresentato da valori binary (0 o 1) in un segnale analogico che ricorda un'onda sinusoidale. Il segnale modulato consiste in un segnale di un onda sinusoidale pura "portante" che è modificata per veicolare informazioni. Un'onda portante sinusoidale pura, non cambiando in frequenza e voltaggio, non genera un flusso di informazioni (ad eccezione del fatto che sia presente una portante). Per fare convogliare le informazioni modifichiamo (o moduliamo) questa portante. Ci sono 3 tipi principali di modulazione: frequenza, ampiezza e fase. Verranno di seguito spiegate.
Il più semplice metodo di modulazione è la modulazione di frequenza. La frequenza è misurata in cicli per secondo (di un'onda sinusoidale). È il conto del numero di volte in cui la forma dell'onda sinusoidale ripete se stessa in un secondo. È la stessa cosa del numero di volte che raggiunge il valore più alto in un secondo. La parola "Hertz" (abbreviato Hz) viene usato per intendere "cicli per secondo".
Un semplice esempio di modulazione di frequenza è dove una frequenza significa uno 0 binario ed un'altra significa 1. Ad esempio, per alcuni modem obsoleti da 300 baud, 1070 Hz significa uno 0 binario mentre 1270 Hz significa un 1 binario. Questo viene chiamato "Frequency shift keying". Invece di solo due possibili frequenze, se ne potrebbero usare di più per consentire la trasmissione di più informazioni. Se abbiamo 4 differenti frequenze (che chiameremo A, B, C, e D), allora ognuna di queste potrebbe supportare un paio di bit. Ad esempio per inviare 00 si dovrebbe usare la frequenza A. Per inviare un 01, usiamo la frequenza B, per 10 usiamo C, per 11 usiamo D. In questo modo, usando 8 frequenze differenti potremo inviare 3 bit per ogni cambiamento di frequenza. Ogni volta che raddoppiamo il numero delle frequenze possibili, incrementiamo il numero di bit che possiamo rappresentare di 1.
Una volta capito l'esempio della modulazione di frequenza sopra indicato, incluso le possibilità di rappresentare alcuni bit tramite un singolo spostamento nella frequenza, è facile capire sia la modulazione di ampiezza e la modulazione di fase. Per modulazione di ampiezza basta cambiare l'altezza (voltaggio) dell'onda sinusoidale equivalente per cambiare la frequenza dell'onda sinusoidale. Per un caso semplice ci potrebbero essere solo 2 livelli di ampiezza consentiti, una rappresentato da un bit 0 e l'altro rappresentato da un bit 1. Come spiegato per il caso della modulazione di frequenza, l'avere diverse possibili ampiezze risulterà in maggiori informazioni che si trasmettono per cambiamento in ampiezza.
Per cambiare la modulazione di fase di un onda sinusoidale in un certo perido di tempo, dobbiamo smettere di inviare questa vecchia onda sinusoidale ed immediatamente iniziare ad inviare una nuova onda sinusoidale della stessa frequenza ed ampiezza. Se iniziamo ad inviare la nuova onda sinusoidale allo stesso livello di voltaggio (e con la stessa pendenza) presente quando abbiamo interrotto l'invio della vecchia onda sinusoidale, non ci sarà nessun cambio di fase (e nessun cambio identificabile in assoluto). Ma supponiamo di avere iniziato la nuova onda sinusoidale ad un differente punto della curva dell'onda sinusoidale. Si dovrebbe probabilmente verificare un improvviso sbalzo di voltaggio al punto temporale dove la vecchia onda sinusoidale si è fermata ed è iniziata la nuova. Questo è uno spostamento di fase ed è misurato in gradi (deg.) Uno spostamento di fase di deg 0 (o di deg 360) significa nessun cambiamento in assoluto, mentre uno spostamento di fase di 180 inverte il voltaggio (e pendenza) dell'onda sinusoidale. Rendendolo in altri termini, uno spostamento di fase di 180 deg semplicemente salta in avanti di un mezzo periodo (180 deg) al punto di transizione. Naturalmente si potrebbe saltare di, diciamo, 90 deg o 135 deg. Così come nell'esempio della modulazione di frequenza, maggiori sono i possibili spostamenti di fase, maggiori bit possono essere rappresentati da un singolo spostamento di fase.
Invece di selezionare semplicemente sia la frequenza, l'ampiezza o la modulazione di fase, possiamo scegliere di combinare i metodi di modulazione. Supponiamo di avere 256 frequenze possibili, quindi possiamo trasmettere un byte (8 bit) per ogni spostamento di frequenza (visto che 2 elevato alla 8 equivale a 256). Supponiamo anche di avere altre 256 differenti ampiezze così che ogni spostamento in ampiezza rappresenti un byte. Supponiamo anche che ci siano 256 spostamenti di fase possibili. Poi in un certo momento vogliamo fare uno spostamento in tutte e 3: frequenza, ampiezza e fase. Questo significherebbe spedire 3 byte per ognuna di queste transazioni.
Nessun metodo di modulazione in uso oggi fa veramente questo. Non è pratico a causa del tempo relativamente lungo che occorrerebbe per rilevare tutti i 3 tipi di cambiamento. Il problema principale è che frequenti cambi di fase possono far sembrare che sia accaduto un cambio in frequenza laddove in realtà non è successo.
Per evitare questi problemi si potrebbe cambiare simultaneamente solo la fase e l'ampiezza (senza nessun cambio di frequenza). Questa viene chiamata modulazione di fase-ampiezza (qualche volta chiamata anche "quadrature amplitude modulation" = QAM). Questo metodo è usato per le comuni velocità dei modem di 14,4k, 28.8k, e 33.6k. Il solo caso significativo dove questo metodo di modulazione non viene oggi usato è per i modem a 56k. Ma anche i modem a 56k usano esclusivamente QAM (modulazione di fase-ampiezza) nella direzione dal vostro PC in uscita verso la linea telefonica. Qualche volta anche nell'altra direzione si ritorna alla modulazione QAM quando le condizioni della linea non sono sufficientemente buone. Quindi QAM (modulazione di fase-ampiezza ) rimane ancora il metodo più largamente usato nelle ordinarie linee telefoniche.
Il metodo di modulazione usato sopra i 33.6k è completamente diverso dalla comune modulazione fase-ampiezza. Visto che le chiamate telefoniche ordinarie sono convertite in segnali digitali nelle centraline locali della compagnia telefonica, la velocità più elevata con la quale si possono spedire dati digitali tramite una ordinaria chiamata telefonica è la stessa di quella che la compagnia telefonica usa lungo la sua porzione digitale della trasmissione della chiamata telefonica. Qual è questa velocità? Beh, è vicina ai 64Kbps. Dovrebbe essere 64k ma talvolta alcuni bit sono "rubati" per scopi di segnalazione. Ma se la compagnia telefonica sa che il collegamento non è per la voce, i bit potrebbero non essere rubati. Verrà presentato il caso dei 64k, quindi verrà spiegato perché la velocità reale è più bassa (56k o meno -- in genere significativamente meno).
Quindi 64k è la maggiore velocità possibile per una chiamata telefonica ordinaria usando la porzione digitale del circuito che era stata concepita per inviare le codifiche digitali della voce umana. Per potere usare 64k, il modem deve sapere esattamente come la compagnia telefonica faccia la sua codifica digitale del segnale analogico. Questo compito è troppo complicato se entrambi gli estremi di una chiamata telefonica hanno un'interfaccia analogica alla compagnia telefonica. Ma se da una parte si ha una interfaccia digitale, allora è possibile (almeno in una direzione). Quindi se il vostro ISP ha una interfaccia digitale con la compagnia telefonica, l'ISP può inviare un certo segnale digitale attraverso la linea telefonica verso il vostro PC. Il segnale digitale dall'ISP viene convertito in analogico alla centralina telefonica vicina alla locazione fisica del vostro PC (forse vicino a casa vostra). Poi è compito del vostro modem cercare di capire esattamente che cos'era quel segnale digitale. Se può fare questo, allora la trasmissione a 64k (la velocità del segnale digitale della compagnia telefonica) è possibile in questa direzione.
Che metodo usa la compagnia telefonica per decodificare in digitale i segnali analogici? Usa il metodo di campionare l'ampiezza del segnale analogico alla velocità di 8000 campioni per secondo. Ogni ampiezza campione è codificata come un byte a 8 bit (tipo ASCII). (Notare: 8 x 8000 = 56k). Questa viene chiamata "Pulse Code Modulation" = PCM. Questi byte sono poi inviati digitalmente sui circuiti digitali della compagnia telefonica dove diverse chiamate condividono un singolo circuito, usando uno schema di time-sharing chiamato "time division multiplexing". Poi finalmente nella locale centralina telefonica vicina a casa vostra, il segnale digitale viene demultiplexato risultando nello stesso segnale digitale così come originariamente creato da PCM. Questo segnale viene poi riconvertito in analogico ed inviato a casa vostra. Ogni byte da 8-bit crea una certa ampiezza del segnale analogico. Il vostro modem deve determinare cosa era quel byte PCM a 8 bit basandosi sulla ampiezza analogica che rileva.
Questa è (in un certo senso) una "demodulazione di ampiezza" ma non realmente. Non si tratta di "demodulazione di ampiezza" perché non vi è portante. In verità, viene chiamata "conversione di modulo" ("modulus conversion") che è l'inverso di PCM. Per determinare il segnale digitale che la compagnia telefonica ha usato per creare il segnale analogico, il modem deve campionare questo segnale di ampiezza analogica esattamente agli stessi punti temporali che la compagnia telefonica ha usato quando ha creato il segnale analogico. Per fare questo viene un generato un segnale temporizzato dal segnale residuo di 4k Hz sulla linea telefonica analogica. La creazione dei campioni di ampiezza che escono dalla vostra casa/ufficio ad 8k campioni/sec circa creano un segnale di 4k. Supponete che ogni altra ampiezza fosse di polarità opposta. Allora dovrebbe essere stata creata un'onda simile alla sinusoidale di 4k Hz. Ogni ampiezza è in un certo senso un simbolo ad 8 bit e quando si campionano le ampiezze è conosciuto come "symbol timing".
Ora la codifica di queste ampiezze in PCM non è lineare. A basse ampiezze un incremento di 1 nel byte PCM rappresenta un incremento molto più piccolo nell'ampiezza del segnale analogico rispetto a quella che sarebbe se l'ampiezza che viene campionata fosse più alta. Quindi per basse ampiezze è difficile distinguere tra valori di byte adiacenti. Per facilitare le cose, alcuni codici PCM rappresentanti ampiezze molto basse non sono usati. Questo dà un delta più ampio tra le possibili ampiezze e fa sì che il modem le riconosca correttamente con più facilità. Quindi la metà dei livelli di ampiezza non sono usati dal v.90. Questo è equivalente ad ogni simbolo (livello di ampiezza consentito) che rappresenta 7 bit invece di 8. Ecco da dove proviene il 56k: 7 bit/simbolo x 8k simboli/secondo = 56k bps. Naturalmente ogni simbolo è in realtà generato da 8 bit ma solo 128 byte dei possibili 256 sono effettivamente usati. C'è una tavola di codici che mappa questo 128 byte a 8 bit con quelli a 7 bit.
Ma è un poco più complicato di questo. Se le condizioni della linea non rasentano la perfezione, allora sono usati anche meno livelli (simboli), risultando in velocità sotto i 56k. Negli Stati Uniti, anche a causa di regole governative che proibiscono gli alti voltaggi sulle linee telefoniche, certi alti livelli di ampiezza non posssono essere usati, risultando quindi in soli 53.3k circa al massimo per i modem a 56k.
Notate che la parte digitale della rete telefonica è bi-direzionale. Questi due circuiti sono usati per una chiamata telefonica, uno in ciascuna direzione. Il segnale a 56k viene usato solamente in una di queste direzioni: dal vostro ISP al vostro PC. Nell'altra direzione dalla casa/ufficio verso l'ISP è usato lo schema convenzionale di modulazione fase-ampiezza con un massimo di 36.6k (e non 53.3K). Inoltre grazie a sofisticati metodi di cancellazione (non spiegati qui) consente di inviare simultaneamente in entrambe le direzioni.
I modem moderni sono capaci di ricevere ed inviare segnali contemporaneamente. Si potrebbe chiamare questa capacità "bidirezionale" o "full duplex". Una volta la cosa era fatta usando una frequenza per inviare ed un'altra per ricevere. Oggi, la stessa frequenza viene usata sia per la trasmissione che per la ricezione. Come funzioni la cosa non è facile da capire.
La maggior parte delle linee principali del sistema telefonico sono digitali con due canali in uso quando si fa una chiamata telefonica. Quello che dite va su un canale digitale e quello che dice l'altra persona va sull'altro (inverso) canale digitale. Sfortunatamente, la porzione del sistema telefonico che va alle case (e molti uffici) non è digitale ma è un singolo canale analogico. Se entrambi i modem fossero direttamente connessi con la parte digitale del sistema telefonico allora la comunicazione bidirezionale (inviare e ricevere allo stesso tempo) non sarebbe un problema visto che sarebbe disponibili due canali.
Ma le porzioni finali del percorso del segnale passano su un solo circuito. Come è possibile che ci sia comunicazione simultanea nei due sensi? Funziona grossomodo così. Supponete che il vostro modem stia ricevendo un segnale dall'altro modem e non stia trasmettendo. In questo caso non c'è problema. Ma se si iniziasse a trasmettere (mentre l'altro segnale in ricezione sta ancora scorrendo nel modem) il segnale in ricezione sarebbe soffocato. Se il segnale in trasmissione fosse un'onda di voltaggio "solida" applicata alla fine della linea non ci sarebbe alcuna possibilità che un qualsiasi segnale in ricezione possa essere presente a quel punto.
Ma il trasmettitore ha una "impedenza interna" ed segnale in trasmissione applicato alla fine della linea non è solido (o abbastanza forte) da eliminare completamente il segnale in ricezione che arriva dall'altro capo. Quindi mentre il voltaggio alla fine della linea è per la maggior parte il più forte segnale in trasmissione, una piccola parte di esso è il segnale in ricezione richiesto. Tutto quello che serve è filtrare il segnale in trasmissione, più forte, e quello che rimane sarà il segnale dall'altro capo che vogliano. Per fare questo, basta prendere il puro segnale in trasmissione direttamente dal trasmettitore (prima che sia applicato sulla linea), amplificarlo per un determinato ammontare, quindi sottrarlo dal segnale totale presente alla fine della linea. Facendo questo nei circuiti di ricezione rimane un segnale che per la maggior parte proviene dall'altra parte della linea.
Un segnale che viaggia attraverso una linea in una direzione potrebbe incontrare cambiamenti nella linea che farà si che parte del segnale venga riecheggiato all'indietro nella direzione opposta. Visto che viene usato lo stesso circuito per il flusso bidirezionale di dati detti eco genereranno ricezioni sporche. Un modo di migliorare le cose è inviare segnali di prova ogni tanto per determinare le caratteristiche di eco della linea. Questo consentirà di predirre gli eco che potrebbero essere generati ad ogni segnale. Quindi il metodo di predizione è usato per predirre quali eco il segnale in tramissione provocherà. Poi questo eco presunto del segnale viene sottratto dal segnale ricevuto. Questo elimina gli eco.