Modello digitale
In questi ultimi anni stiamo vivendo una nuova rivoluzione tecnologica detta rivoluzione digitale che sta modificando radicalmente la nostra vita quodidiana. Il termine digitale deriva dalla parola digit che significa cifra e quindi digitale sta a indicare la possibilità di codificare una qualsiasi informazione (testo, immagini, musica, suono) mediante cifre. Il grande vantaggio di avere una informazione convertita in cifre consiste nella possibilità di memorizzarla facilmente e con altrettanto facilità di poter elaborarla e modificarla. Per questo motivo in pochi anni i testi, le foto, i filmati, la musica, la nostra voce trasmessa dal telefonino, sono diventate digitale. La digitalizzazione ha favorito la nascita di nuovi canali d'accesso all'informazione e ha mutato enormemente il lavoro e il commercio. Con questa rivoluzione è stato possibile creare dei dispositivi quasi magici pensiamo a un smartphone e a tutte le potenzialità di questo strumento: possiamo fare una foto o un filmato, possiamo scrivere un testo e inviarlo a un nostro amico insieme alla foto, possiamo leggere un e-book o un quotidiano, possiamo pagare la spesa, possiamo fare una registrazione, possiamo verificare quanti passi abbiamo fatto durante il giorno, possiamo vedere la partita di calcio della nostra squadra preferita, possiamo utilizzare il navigatore per poterci spostare in zone che non conosciamo, ... e se vogliamo possiamo anche telefonare. Come vedremo tutto ciò è stato possibile utilizzando il più semplice sistema numerico il sistema binario e la possibilità di trasformare le cifre binarie in segnali elettrici. Questa corrispondenza tra il linguaggio binario e il linguaggio elettrico ha permesso di:
far viaggiare le informazioni con una elevata velocità
poter elaborare in pochissimi istanti enormi quantità di informazioni;
memorizzare in poco spazio grandi quantità di informazioni.
Il sistema di numerazione posizionale in base 2, detto anche sistema binario, utilizza solo due cifre: 0 e 1. Nella scrittura del numero binario, ogni posizione in un numero con più cifre, a partire da destra, corrisponde ad una potenza di 2 ci0è 1, 2, 4, 8, 16, 32, ... Ad esempio, il numero binario 100101:
![]()
Rappresenta nel sistema decimale il numero 37:
![]()
Che possiamo anche scriverlo nella forma equivalente mettendo in evidenza le potenze di 2:
![]()
Quando scriviamo un numero in base diversa da 10 dobbiamo sempre specificare la nuova base; ecco ad esempio come si scrive 37 in base 2:
1001012
Nella tabella seguente sono riportati i numeri da 0 a 10 in base 2 con la relativa forma polinomiale.
![]()
Nel sistema binario le operazioni aritmetiche sono eseguite con gli stessi procedimenti che si utilizzano nel sistema decimale. Ad esempio, per eseguire l'addizione si dispongono gli addenti incolonnati e poi si sommano le cifre di ciascuna colonna a partire da destra. Bisogna tener presente che:
0 + 0 = 0; 1 + 0 = 1; 0 + 1 = 1; 1 + 1 = 10
Vediamo due esempi di addizione tra numeri binari. Nella prima addizione la somma delle cifre non genera mai un riporto mentre nella seconda ci sono due riporti.
![]()
Oggi il sistema binario è alla base del funzionamento delle calcolatrici tascabili, dei computer, dei televisori digitali, delle macchine fotografiche digitali, degli scanner, dei videoregistratori, degli smartphone, dei tablet, ecc. In un circuito elettrico possiamo, infatti, associare alla posizione chiuso dell’interruttore la cifra 1 e alla posizione aperto la cifra 0; per la lampadina associamo allo stato acceso la cifra 1 e allo stato spento la cifra 0.
![]()
Ad esempio, il numero 11, espresso in base dieci, tradotto nel sistema binario diventa 10112 e, tradotto in linguaggio elettrico diventa per l'interruttore:
chiuso-aperto-chiuso-chiuso
e per la lampadina:
accesa-spenta-accesa-accesa
tramite il seguente circuito elettrico.
![]()
Questa corrispondenza fra una disposizione degli interruttori (o delle lampadine) e un dato numero binario permette di stabilire un codice numerico che può essere utilizzato per comunicare, un messaggio (numeri, testo, immagini, suoni, ecc.) sottoforma di linguaggio elettrico che viene poi trasmesso ad un'elevata velocità. Nel linguaggio elettrico i simboli binari 0 e 1 non sono più numeri ma rappresentano il più piccolo dato di informazione codificabile chiamato BIT (BInary digiT) e ogni carattere utilizzabile nella scrittura di messaggi o di documenti viene codificato con una sequenza di 8 bit denomita byte. Essendo 256 le combinazioni di otto simboli scelti tra 0 e 1 è possibile codificare 256 caratteri che possono essere le cifre decimali, le lettere (maiuscole e minuscole), i segni di punteggiatura (, ; . ? !), i simboli delle operazioni aritmetiche, i simboli speciali come ad esempio lo spazio vuoto, i caratteri di controllo non stampabili. In altre parole ad ogni carattere corrisponde un circuito con 8 interruttori aperti o chiusi. Il byte (indicato con il simbolo B) rappresenta anche l'unità di misura della capacità di memorizzare informazioni. Per indicare la capacità di memoria di un dispositivo elettronico (CD, Ram, hard-disk, ecc.) oppure per indicare quanta memoria occupa un file si utilizzano i multipli del byte come si vede in tabella:
![]()
Vediamo alcuni esempi come una qualsiasi informazione possa essere tradotta in lunghe sequenze di codice binario e successivamete trasformato in una sequenza di segnali elettrici comprensibili a un dispositivo elettronico.
Codifica di un messaggio.
Le corrispondenze tra byte e carattere sono standardizzate e sono state stabilite da un'apposita commissione. Ad esempio, la codifica ASCII estesa (American Standard Code for Information Interchange) cioè codifica standard americana per lo scambio di informazioni è una tabella di corrispondenza tra byte e caratteri e stabilisce che ad ogni carattere della tastiera deve corrispondere un dato byte del codice.
![]()
Ad esempio, alla lettera A corrisponde il numero decimale 65 e quindi il codice binario 01000001, alla lettera a corrisponde il numero decimale 97 e quindi il codice binario 01100001. La parola Ciao è composta da quattro caratteri e ad ogni carattere corrisponde un dato byte il quale a sua volta è costituito da 8 bit. Dalla tabella ASCII possiamo vedere che:
al carattere C corrisponde il byte 01000011
al carattere i corrisponde il byte 01101001
al carattere a corrisponde il byte 01100001
al carattere o corrisponde il byte 01101111
e la codifica completa è composta da 4 byte e quindi da una stringa di 32 bit:
![]()
Pertanto, la parola Ciao viene trasformata in una sequenza di 32 numeri binari e quindi in una sequenza di 32 interruttori che rappresentano la sua codifica nel linguaggio elettrico. Una pagina di testo contiene circa 1200 caratteri e la sua codifica richiede 1200 byte e quindi 1200 ⋅ 8 = 9600 bit cioè una sequenza di 9600 cifre binarie. Attualmente, con le nuove tecnologie e con l'avvento della microelettronica, i transistor hanno preso il posto degli interrutori dando la possibilità di miniaturizzare i circuiti elettrici e di realizzare circuiti integrati detti chip. Il chip Core i7 realizzato dalla Intel nel 2008 contiene 730 milioni di transistor e il chip GC2 IPU del 2018 realizzato dalla Graphcore contiene 23 miliardi e 600 milioni di transistor.
![]()
La tabella ASCII fu creata per poter codificare dalla lingua inglese e non contiene alcuni caratteri che permettono di codificare anche dalle altre lingue. Per questo motivo attualmente si utilizza un'altra codifica di caratteri denominata UNICODE che utilizza 16 bit (2 byte) per ogni carattere. Essendo 65536 le combinazioni di sedici simboli scelti tra 0 e 1 è possibile codificare 65536 caratteri.
Codifica delle immagini in bianco e nero.
Quante volte abbiamo osservato un mosaico.
![]()
Il mosaico è una tecnica decorativa con la quale l'immagine viene riprodotta con delle tessere colorate quasi quadrate di diversi materiali. La codifica di un'immagine in un numero avviene con la stessa tecnica del mosaico. L'immagine viene prima scomposta in tessere quadrate in bianco e nero e poi i quadrati in base al colore vengono trasformati in una sequenza di 0 e 1. Ogni quadrato è detto pixel (da picture element elemento dell'immagine) e quindi il pixel rappresenta il più piccolo elemento costituente un'immagine digitalizzata. Vediamo un esempio molto semplice che comunque può essere applicato a qualsiasi altra immagine. Digitalizziamo la lettera F. Sovrapponiamo la lettera con una griglia di quadrati:
![]()
Associamo ad ogni pixel un bit: 0 se è bianco e 1 se è nero.
![]()
In questo modo si ottiene l'immagine digitalizzata in una sequenza di 56 bit.
![]()
Naturalmente, per figure più complesse, la qualità dell'immagine digitalizzata dipende dal numero di pixel utilizzati per formare la griglia che viene sovrapposta alla figura. Più alto è il numero di pixel, più sono fitte le maglie della griglia, più informazioni sono disponibili, e più dettagliata e nitida risulta l'immagine. Anche la superficie del monitor di un PC o il display di uno smartphone è suddivisa in una griglia di pixel e il rapporto tra il numero delle righe e quello delle colonne è fisso e generalmente è 16:9. Invece, le dimensioni dello schermo sono date dalla misura della diagonale espressa in pollici (1 pollice = 2,54 cm). E' importante conoscere la risoluzione dello schermo perchè da essa dipende la qualità delle immagini che vediamo infatti, più è alta la risoluzione più dettagliata sarà l'immagine. La risoluzione dello schermo viene espressa dal numero di pixel in orizzontale per il numero di pixel in verticale ad esempio la risoluzione HD (high definition) ha 1280 x 720 = 921.600 pixel. Spesso la risoluzione di uno schermo viene anche espressa in dpi (dots per inch) cioè il numero di pixel per pollice.
Una fotografia in bianco e nero contiene diverse tonalità di grigio per i contrasti, per le ombre e per le sfumature e quindi se vogliamo digitalizzarla e cogliere il maggior numero di dettagli non possiamo utilizzare solo i colori bianco e nero. Prima per definire il colore di ogni singolo pixel abbiamo utilizzato un solo bit e quindi solo due possibili colori. Utilizzando 4 bit per ogni singolo pixel possiamo avere 24=16 diverse combinazioni di 0 e 1 e quindi 16 tonalità di grigi dal più chiaro (bianco) al più scuro (nero):
![]()
Ecco ad esempio un'immagine suddivisa in pixel in cui ci sono più tonalità di grigi:
![]()
Per digitalizzarla bisogna tener presente che ad ogni pixel bisogna associare una sequenza di 4 bit.
Codifica delle immagini a colori.
I colori sono onde luminose che differiscono per lunghezza d'onda e frequenza. Noi vediamo i colori perchè nella retina dell'occhio ci sono tre specie di fotorecettori i coni che sono sensibili a tre colori: rosso, verde e blu tendente al violetto (in inglese Red, Green, Blu da cui l'acronimo RGB). Questi tre colori sono detti colori primari additivi della visione. Sullo schermo di un computer o di un televisore o di un smartphone tutti i colori sono ottenuti dalla sovrapposizione di tre sorgenti luminose che sono i tre colori primari della visione.
![]()
Il nostro occhio riesce a distinguere fino a 160 sfumature cromatiche per ciascuno dei tre colori primari e il più piccolo multiplo di 2 vicino a 160 è 28=256. Pertanto, nella codifica del colore, per ciascun colore primario sono previste 256 sfumature che vanno da 00000000 a 11111111. Questo significa che si possono codificare 23x8 = 16.777.216 colori distinti. Per ottenere un'immagine a colore (foto, dipindo, disegno) ad ogni pixel bisogna associare 3 byte: il primo per il colore rosso, il secondo per il colore verde e il terzo per il colore blu. Ecco ad esempio alcuni colori con la codifica RGB:
![]()
Un'immagine colorata formata da 150 ⋅ 150 pixel con 24 bit per pixel occupa una memoria 540.000 bit cioè 67,5 kB.
Visualizzazione di una lettera sullo schermo premendo un tasto della tastiera.
Quando premiamo un tasto sulla tastiera immediatamente la lettera che compare su questo tasto viene visualizzata sullo schermo: questa apparente semplice azione è il risultato di una sequenza di operazioni non semplici. Vediamole. Supponiamo di premere sulla tastiera il tasto della lettera C. I tasti sono degli interruttori normalmente aperti e quindi se non sono premuti non lasciano passare la corrente, quando premiamo il tasto C chiudiamo un dato circuito che corrisponde al codice binario 01000011 della lettera C e a tale codice è abbinato una determinata sequenza di segnali elettrici che viene inviata a una unità di elaborazione centrale detta CPU che a sua volta associa a tale sequenza il corrispondente codice binario dell'immagine della lettera C come si vede in figura.
![]()
Tale codice viene trasferito sottoforma di sequenza di segnali elettrici allo schermo il quale traduce ogni singolo segnale elettrico in un pixel bianco o nero.
![]()
Come creare immagini in movimento.
Un video è formato da una serie di immagini fisse leggermente diverse che vengono visualizzate una sull'altra in rapida successione tanto da essere percepite dal nostro cervello come immagini in movimento. Ogni singola immagine è detta frame e per dare l'illusione del movimento fluido la velocità con cui si susseguono è generalmente di 24-30 frame al secondo (24-30 Fps). Ogni frame è costituito da una lunga sequenza di codice binario che viene tradotto in una lunga sequenza di segnali elettrici che vengono trasmessi in modo che il tempo di visualizzazione del frame sia 1/24 di secondo.Codifica del suono.
Il suono è costituito da onde, generate da un oggetto che vibra, che si propagano attraverso l'aria a una velocità di 340 m/s. La propagazione delle onde genera nell'aria una pertubazione e il valore della pressione varia da punto a punto: aumenta dove le molecole sono compresse, diminuisce dove le molecole sono espanse. Se la vibrazione è costante nel tempo si generano un suono puro che da luogo a onde armoniche che si ripetono periodicamente. La rappresentazione di un'onda armonica nel piano cartesiano è una curva detta sinusoide
![]()
Le caratteristiche principali di questa curva sono: l'ampiezza (spostamento massimo dalla posizione di equilibrio), la lunghezza d'onda (distanza tra due creste successive), la frequenza (numero di oscillazioni complete in un secondo, la frequenza si misura in 1/s cioè in herz che si indica con Hz). In generale le onde sonore non sono pure ma una somma di molte onde sinusoidali armoniche con ampiezza e frequenza variabili nel tempo.
![]()
Il nostro orecchio riesce a percepire suoni che hanno frequenze comprese tra 20 Hz e 20.000 Hz (una frequenza di 20 Hz vuol dire che l'onda in ogni secondo compie 20 ascillazioni complete). La digitalizzazione dei suoni viene fatta sull'onda che genera il suono e questa procedura viene detta campionamento perchè a intervalli costanti di tempo si prelevano dei campioni dell'ampiezza dell'onda i cui valori vengono espressi in codice binario. Il numero degli intervalli costanti viene detto frequenza di campionamento. Per la voce telefonica viene utilizzata una frequenza di 8.000 campioni per secondo; per la musica fino a 44.100 campioni per secondo. I valori dell'ampiezza cioè i campioni sono memorizzati o in 8 o in 16 bit. Con 8 bit, il campione può assumere 256 possibili valori mentre con 16 bit i valori possibili sono 65536. Naturalmente maggiore è la frequenza di campionamento e il numero dei bit per memorizzare i valori delle ampiezze più lunga è la sequenza numerica della codifica e migliore è la qualità del suono perchè la ricostruzione dell'onda risulta più fedele a quella originale. Ecco ad esempio, come risulta un campionamento con frequenza di campionamento di 12 valori e campioni memorizzati con solo 4 bit.
![]()
Un secondo di musica richiede 44.100 campioni di 16 bit (2 byte) quindi 88.200 byte e se la musica è stereo occorrono 88.200 byte per ciascuno dei due canali. In teoria la misurazione del suono richiede infiniti valori mentre la digitalizzazione del suono richiede solo un numero discreto di valori, nel primo casi si dice che la misurazione del suono è continua e si utilizza il termine misurazione analogica nel secondo caso si dice che è discontinua e si utilizza il termine misurazione digitale. Nel processo di digitalizzazione il microfono da una misura analogica del suono che invia a un convertitore analogico-digitale (ADC) che campiona l'onda a intervalli regolari e la trasforma in una sequenza di numeri binari. Nel processo di riproduzione del suono la sequenza dei numeri binari passa in un convertitore digitale-analogico (DAC) che riproduce l'onda sonora trasformandola in un'onda elettrica che invia ad un altoparlante che la converte in onda sonora.
![]()