~/matteospanio

IT#music#dsp

DSP: il suono in digitale

Come il suono diventa una sequenza di numeri, dal campionamento alla quantizzazione fino alla trasformata di Fourier e alla codifica PCM

Secondo la fisica, il suono è una vibrazione itinerante, cioè un’onda che si muove attraverso un mezzo come l’aria. L’onda sonora trasferisce energia da particella a particella fino a quando non viene finalmente “ricevuta” dalle nostre orecchie e percepita dal nostro cervello. I due parametri fondamentali per descrivere un suono sono l’ampiezza (ciò che chiamiamo anche volume) e l’altezza (o frequenza, la misura delle oscillazioni dell’onda per unità di tempo).

La recente crescita tecnologica ha comportato un deciso miglioramento delle performance di velocità e di densità di circuiti e memorie, rendendo possibile la rappresentazione digitale di grandi quantità di dati, compresi i segnali acustici. Nello specifico la digitalizzazione del suono ha comportato una serie di trasformazioni a partire dagli anni ‘80, che hanno interessato sia i professionisti che i fruitori di musica. Dall’introduzione sul mercato del primo CD per uso commerciale nel 1982 ad oggi si è assistito alla nascita (e fine) di numerosi supporti digitali (Digital Audio Tape, MiniDisc, USB, DVD, HDD, SSD, Cloud).

Ciò ha permesso che il trattamento e il processo numerico dei segnali digitali1 assumesse una netta preponderanza rispetto a quello analogico: una successione di numeri che rappresentano l’ampiezza del segnale in precisi e ravvicinati istanti di tempo è molto più precisa e affidabile di un’approssimazione non discreta acquisita su un nastro magnetico. Quindi si è dovuto progettare dei sistemi in grado di convertire il suono analogico in una successione di valori che vadano a descrivere i vari parametri del suono (altezza, intensità, timbro). Osservando la rappresentazione cartesiana di un’onda sonora nel dominio del tempo si nota come l’asse delle ordinate descriva l’ampiezza e l’asse delle ascisse metta in evidenza la frequenza a cui si muove l’onda. La conversione del suono da analogico a digitale avviene quindi sui due livelli suddetti: si parlerà di campionamento per la frequenza e quantizzazione per l’ampiezza.

Quattro grafici a confronto: la stessa sinusoide mostrata come segnale continuo, come segnale a gradini su livelli di ampiezza discreti, come segnale letto solo a istanti regolari e infine come sequenza di impulsi discreti su entrambi gli assi.

a) segnale analogico, b) quantizzato, c) campionato, d) quantizzato e campionato

Campionamento

Il campionamento corrisponde all’individuazione periodica della presenza di segnale da parte della macchina e consente di analizzare e ricostruire le frequenze in ingresso.

Quantizzazione

La quantizzazione è il processo di sostituzione di ogni numero reale della sequenza di campioni con un’approssimazione da un insieme finito di valori (solitamente 2162^{16}).

La trasformata di Fourier

Schema della trasformata di Fourier: a sinistra il segnale nel dominio del tempo s(t) con le sinusoidi che lo compongono, a destra lo stesso segnale nel dominio della frequenza S(ω), dove ogni componente diventa un picco dello spettro.

Oltre alla rappresentazione del suono nel dominio del tempo, esiste la possibilità di rappresentarne le stesse proprietà anche nel dominio della frequenza. Questo sistema venne studiato da Joseph Fourier, che definì anche come passare dalla rappresentazione nel dominio del tempo a quello nel dominio della frequenza, questo processo è detto trasformata di Fourier o Fourier Transform (FT).

Quando il segnale di partenza è in formato digitale si può applicare la Trasformata Discreta di Fourier (DFT). L’idea sottostante alla DFT è che lo spettro sia campionato in frequenza così come la forma d’onda digitale viene campionata nel tempo.

Animazione della ricostruzione di un'onda quadra per somma di sinusoidi: a ogni passo si aggiunge un'armonica e il profilo si avvicina al fronte ripido, mentre il grafico a barre sulla destra elenca le ampiezze delle componenti usate finora.

Matematicamente parlando, la relazione tra NN campioni nel dominio del tempo x0,x1,...,xN1x_0, x_1, ..., x_{N-1} e NN numeri complessi della trasformata discreta di Fourier X0,X1,...,XN1X_0, X_1, ..., X_{N-1} è descritta dalla formula:

Xk=n=0N1xneik2πNnk=0,...,N1X_k = \sum_{n = 0}^{N-1} x_n e^{-ik\frac{2\pi}{N}n}\quad k=0,..., N-1

dove ii è l’unità immaginaria e ei2πNe^{i\frac{2\pi}{N}} è una radice dell’unità primitiva NN-esima.

Pulse Code Modulation

Il passo finale della digitalizzazione, che ingloba i processi di quantizzazione e campionamento, è la generazione del codice associato al campione.

Esistono molti modi di codificare un segnale. Il modo di cui ci siamo concettualmente serviti senza saperlo è il Pulse Amplitude Modulation (PAM), per il quale un impulso occorre a ogni intervallo di campionamento, e l’ampiezza della forma d’onda è un valore digitale che corrisponde all’ampiezza analogica. Ma il modello considerato standard per la codifica digitale è il cosiddetto Pulse Code Modulation (PCM): l’informazione viene racchiusa in gruppi di bit che rappresentano il variare dell’ampiezza nel tempo, l’uno corrisponde a presenza di segnale, mentre lo 0 ne descrive l’assenza.

La codifica PCM è usata in tutti i settori dell’archiviazione e della trasmissione digitale dei dati. La comodità di questa rappresentazione è che si possono facilmente operare controlli o modifiche sui bit senza perdere il segnale originale, inoltre è molto meno sensibile al rumore delle altre codificazioni.

Esempio di codifica PCM: un treno di impulsi a due soli livelli, 0 e 1, raggruppati in parole di quattro bit; sotto ogni gruppo è indicato il valore di ampiezza corrispondente, dal campione I al campione XIII.

Footnotes

  1. DSP sta per Digital Signal Processing ed è un termine usato per indicare l’elaborazione elettrica dei segnali, permettendo al computer di analizzarli. Questo tipo di operazioni sta alla base di molti campi di applicazione: dal sound engineering alle telecomunicazioni, passando per la computer vision.

cite this post

apa

Spanio, M. (2021, July 10). DSP: il suono in digitale. Matteo Spanio. https://matteospanio.github.io/blog/2021/DSP-il-suono-in-digitale/

bibtex
@misc{spanio2021dspilsuonoindigita,
  author       = {Spanio, Matteo},
  title        = {{DSP}: il suono in digitale},
  year         = {2021},
  month        = jul,
  howpublished = {Blog post, \url{https://matteospanio.github.io/blog/2021/DSP-il-suono-in-digitale/}},
  url          = {https://matteospanio.github.io/blog/2021/DSP-il-suono-in-digitale/}
}