# Modulazione a impulsi codificati

La modulazione a impulsi codificati (abbreviata PCM, acronimo del corrispettivo inglese pulse-code modulation), in elettronica e nelle telecomunicazioni, è un metodo di rappresentazione digitale di un segnale analogico. In un flusso PCM, l'ampiezza del segnale analogico viene campionata a intervalli uniformi e ciascun campione viene quantizzato al valore più vicino entro un intervallo di steps digitali.
La modulazione lineare a impulsi codificati (abbreviata LPCM, acronimo del corrispettivo inglese linear pulse-code modulation) è un tipo specifico di PCM in cui i livelli di quantizzazione sono linearmente uniformi; ciò è in contrasto con la codifica PCM in cui i livelli di quantizzazione variano in funzione dell'ampiezza (come con l'algoritmo a-law o l'algoritmo μ-law). Sebbene PCM sia un termine più generale, viene spesso utilizzato per descrivere i dati codificati come LPCM.

## Storia

La PCM, come molte altre grandi invenzioni sembra essere semplice e ovvia. Il motivo principale che portò alla campionatura dei segnali era la necessità di far passare su un unico cavo diversi campioni provenienti da diverse fonti telegrafiche. fu inventata nel 1853, dallo statunitense M.B. Farmer.
L'ingegnere elettrico W.M. Miner, nel 1903, usò un commutatore elettro-meccanico per la multiplazione a divisione di tempo di diversi segnali telegrafici, applicò in seguito questa tecnologia alla telefonia. Ottenne flussi audio intelligibili per canali campionati a 3 500–4 300 Hz: al di sotto la comunicazione era insoddisfacente. Questa TDM usava canali PAM (pulse-amplitude modulation) e non PCM.
Paul M. Rainey della Western Electric nel 1926 brevettò un convertitore analogico-digitale che però non andò mai in produzione. L'ingegnere inglese Alec Reeves, ignaro del lavoro precedente, pensò alla PCM per le comunicazioni vocali nel 1937 mentre lavorava per la International Telephone and Telegraph in Francia. Descrisse la teoria e i vantaggi ma non ne derivarono usi pratici. Reeves brevettò questi studi in Francia nel 1938, e nel 1943 negli Stati Uniti.
La prima trasmissione di un discorso mediante tecniche digitali fu utilizzata per le comunicazioni di alto livello degli Alleati durante la seconda guerra mondiale nel 1943.
Non prima della metà del 1943 i tecnici dei Bell Labs, che inventarono il sistema SIGSALY (usato per le comunicazioni degli Alleati), vennero a conoscenza che la codifica binaria PCM era già stata proposta da Alec Reeves. La PCM negli anni cinquanta usava un tubo a raggi catodici con una griglia perforata per la codifica. Come in un oscilloscopio il raggio si muoveva orizzontalmente alla frequenza di campionamento e lo spostamento verticale era controllato dal segnale analogico d'ingresso. La griglia era progettata non per produrre codice binario semplice, bensì codice Gray.

## Descrizione

Il metodo utilizza un campionamento dell'ascissa del segnale a intervalli regolari; i valori letti vengono poi quantizzati in ordinata e infine digitalizzati (in genere codificati in forma binaria). La PCM è ampiamente utilizzata nei sistemi di telefonia, ma si basano su questo principio anche molti standard video, come l'ITU-R BT.601. Poiché la PCM pura richiede un bitrate molto elevato, gli standard video di consumo come DVD o DVR sono basati su sue varianti che fanno uso di tecniche di compressione. Molto frequentemente, la codifica PCM viene impiegata per facilitare le trasmissioni digitali in forma seriale.

### Modulazione

Nel diagramma un'onda sinusoidale (rossa) è campionata e quantizzata. L'onda sinusoidale è campionata a intervalli regolari rappresentati dai trattini sull'asse delle X. Per ogni campione, uno dei valori disponibili sull'asse delle Y è scelto da opportuni algoritmi, in genere viene approssimato al più vicino. Questo produce una rappresentazione discreta del segnale di ingresso che può essere facilmente codificata in digitale per essere memorizzata e manipolata. Queste operazioni sono effettuate da un unico circuito integrato chiamato ADC (analog-to-digital converter) a cui va fornito solamente il clock e l'alimentazione, in uscita produce direttamente la codifica digitale del segnale analogico in ingresso. Per l'onda sinusoidale rappresentata sulla destra possiamo verificare che i valori campionati sono quantizzati con i valori 8, 9, 11, 13, 14, 15, 15, 15, 14, 13, ecc. Codificando questi valori in binario avremo le seguenti parole di 4 bit: 1000, 1001, 1011, 1101, 1110, 1111, 1111, 1111, 1110, 1101, ecc. Questi valori digitali possono essere processati o analizzati da un analizzatore di segnali digitali o da una semplice CPU. Diversi canali PCM possono anche essere multiplati, di solito per trasmettere una maggior quantità di dati su un unico mezzo trasmissivo. Questa tecnica è chiamata Time Division Multiplexing (TDM, o multiplazione a divisione di tempo), ed è largamente usata nei moderni sistemi di telefonia pubblica.

### Demodulazione

Per ricavare in ricezione il segnale campionato di ingresso si utilizza la demodulazione, cioè il contrario della modulazione. Passato ogni periodo di campionamento è letto il seguente valore e l'uscita si porta quasi istantaneamente al nuovo valore. Come risultato di queste variazioni istantanee si avrà un alto numero di armoniche indesiderate (maggiori di ${\frac {1}{2}}f_{c}$) che si possono eliminare attraverso un filtro analogico. Teoricamente è impossibile rappresentare discretamente un segnale con banda infinita ma secondo il teorema del campionamento se si utilizza una frequenza di campionamento molto più alta di quella del segnale (pari a due volte la sua banda di frequenza) il segnale ricostruito in ricezione non si discosterà molto da quello originario. L'elettronica utilizzata per riprodurre un accurato segnale analogico da dati discreti è simile a quella usata per generare il segnale digitale. Questi dispositivi sono chiamati DAC (digital-to-analog converters), e operano in modo simile agli ADC. Producono in uscita una tensione o una corrente (dipende dal tipo) secondo il valore presente in ingresso. Questo segnale di uscita viene generalmente filtrato e amplificato prima di essere utilizzato.

### Limitazioni

Ci sono due fonti di errore implicite nel PCM:
* scegliere un valore discreto “vicino” a quello del segnale analogico per ogni campione (errore di quantizzazione).
* nessuna misura è effettuata tra due campioni; secondo il teorema del campionamento ogni componente di frequenza superiore o uguale a ${\frac {1}{2}}f_{c}$ sarà distorta o persa completamente (effetto di aliasing).
Poiché i campioni dipendono dal tempo è necessario un clock molto preciso per un'accurata riproduzione. Se il clock di codifica o decodifica non è preciso ne risentirà la qualità del segnale in uscita dal dispositivo. Un piccolo errore tra i due clock non è motivo di preoccupazione anche se costante, tuttavia se l'errore non è costante si va incontro a una distorsione considerevole, soprattutto nei segnali audio e video.

## Digitalizzazione

Nel PCM convenzionale, il segnale analogico può essere modificato (ad esempio mediante compressione del livello audio) prima di essere digitalizzato. Una volta effettuato il passaggio alla forma digitale, il segnale PCM è di solito soggetto a ulteriori elaborazioni (per esempio compressione dei dati).
Alcune forme particolari di PCM combinano insieme l'elaborazione e la codifica dei segnali. Le vecchie versioni di questi sistemi applicavano l'elaborazione nel dominio analogico come parte della conversione analogico-digitale, mentre le implementazioni più recenti la svolgono nel dominio digitale. Queste semplici tecniche sono state poi rese obsolete dalle moderne tecniche di compressione audio digitale.

### Differential pulse-code modulation

La differential pulse-code modulation (DPCM) codifica i valori della PCM tramite le differenze tra il valore attuale e il successivo (predetto). Per i segnali audio questo tipo di codifica riduce il numero di bit richiesti per campione di circa il 25% rispetto al PCM.
La DPCM è una tecnica di predizione dei campioni utilizzata per la trasmissione di segnali analogici in formato numerico (digitale). La tecnica prevede la quantizzazione e codifica binaria dell'errore tra la predizione generata e il campione analogico in ingresso. Il valore di predizione viene ottenuto mediante un predittore più complicato rispetto a quelli utilizzati in tecniche più semplici ma meno preciso e tiene conto della funzione di autocorrelazione di un segnale analogico. In particolare il valore predetto è dipendente da N campioni precedenti a ognuno dei quali è assegnato un "peso" a cui corrisponde il proprio coefficiente Ci.
La DPCM viene calcolata mediante l'espressione:
$\sum _{i=1}^{N}Ci*[x(k-i)Tc]$
dove Tc esprime il tempo di campionamento 1/fc del segnale analogico in ingresso al sistema.
Il valore dei coefficienti Ci è ottenuto attraverso un calcolo matriciale che tiene conto appunto della autocorrelazione Rx(i). Il valore di predizione sarà tanto più preciso quanto meglio è possibile stimare la funzione di autocorrelazione stessa.

### Adaptive differential pulse-code modulation

L'adaptive DPCM (ADPCM) è una variante del DPCM che rende arbitraria la dimensione dei passi di campionamento, così da consentire ulteriori riduzioni della larghezza di banda richiesta per un dato rapporto segnale/rumore.

### Modulazione delta

Esiste anche la modulazione delta, che può essere vista come una variante della DPCM: con questo metodo di compressione si richiede che ogni valore campionato differisca dal precedente di +1 o -1; sotto queste condizioni, può essere trasmesso un singolo bit che dice se il nuovo campione è maggiore o minore del precedente. L'occupazione di banda è di 1/4 rispetto al PCM classico. La modulazione delta è adottata dai sistemi di telecomunicazioni militari (NATO e no) sin dagli anni settanta.

## Codifica per la trasmissione

La PCM può essere sia return-to-zero (RZ) sia non-return-to-zero (NRZ). Nei sistemi NRZ è necessaria la sincronizzazione e quindi non ci possono essere lunghe sequenze di 1 o di 0. Nei sistemi PCM binari la densità di 1 è chiamata appunto “ones-density”. La ones-density è spesso controllata con una tecnica di precodifica chiamata run length limited, con cui il codice PCM è leggermente allungato e viene garantito un limite di ones-density prima della modulazione. In altri casi sono aggiunte occasionali variazioni di livello nel flusso. Un'altra tecnica per il controllo della ones-density è l'uso dello scrambler che fa sembrare il flusso dati pseudo-random, l'originario segnale può essere estratto mediante un'operazione inversa. Lunghe sequenze di 0 e di 1 sono ancora possibili ma altamente improbabili.