Ops, questo post mi era completamente sfuggito...
cmpaolo ha scritto:Vorrei capire perchè per il flusso dsd è possibile prevedere una "conversione" tramite filtro passa basso (un segnale diretto) mentre ciò è impossibile per il pcm...in sostanza quali sono le ragioni che consentono di applicare al flusso dsd tecniche come il No-dac (assenza di un reale convertitore)?
se vuoi comprendere l'argomento in modo rigoroso, l'articolo postato da Massimo mi sembra abbastanza esaustivo. In breve, intuitivamente parlando, il motivo sta nelle caratteristiche -completamente diverse- della codifica DSD rispetto a quella PCM.
480px-PCM-vs-DSD.svg.png
Uno
stream PCM è niente altro che una mera sequenza di numeri, ciascuno dei quali rappresenta il valore di un singolo "campione", cioè la misura (
quantizzata) dell'ampiezza del segnale in un dato istante di tempo (quantizzata = approssimata con un numero razionale descritto da un numero finito e predeterminato di cifre). Tale sequenza è codificata in binario con "parole" composte di "n" bit ciascuna (16, 24, 32, ...), secondo uno dei vari standard esistenti, in un modo da risultare trasmissibile, memorizzabile ed elaborabile per mezzo di strumenti elettronici/informatici.
Sebbene da un punto di vista logico (e del contenuto di informazioni) uno stream PCM sia una rappresentazione perfettamente valida (e, entro i limiti previsti dalla teoria, "perfetta") di un dato segnale analogico, da un punto di vista per così dire fisico/elettrico uno stream di dati PCM comunque trasmesso (come tale) su una linea elettrica “non assomiglia per niente”, neanche lontanamente, al segnale analogico che rappresenta. Per poter ricostruire tale segnale analogico a partire dallo stream PCM è necessario operare in modo opportuno... cioè utilizzare un DAC.
Tecnicamente, anche uno
stream DSD non è altro che una sequenza di numeri (binari). Ma ci sono alcune differenze sostanziali. Anziché essere costituito da una sequenza di parole di "n" bit, ciascuna delle quali rappresenta il valore "assoluto" di un dato campione (cioè dell'ampiezza del segnale in un dato istante di tempo), uno stream DSD è costituito invece da una sequenza di singoli bit ciascuno dei quali rappresenta per così dire “
l'andamento della variazione dell'ampiezza del segnale” in quel dato punto
rispetto al punto precedente (punto="campione").
In altre parole, posto che il mio segnale analogico abbia una ampiezza "X" al tempo "t" ed "Y" al tempo "t+1" (tempo "discreto", cioè la sequenza degli istanti di campionamento scanditi dal clock), nel mio stream DSD il bit corrispondente al tempo "t+1" varrà "1" se Y>X, "0" in caso contrario (Y<=X).
(...un matematico probabilmente direbbe qualcosa del tipo: “ciascun bit rappresenta il
segno della derivata prima rispetto al tempo della funzione S(t) che rappresenta il segnale, in un intorno
dt di ogni dato istante di tempo t1 ... tn”).
Questo fa sì che, diversamente da quanto accade per il PCM, un segnale elettrico corrispondente ad uno stream di dati DSD (rappresentato in modo "diretto", ad es. 5V se 1, 0V se 0) abbia un fortissimo “legame” con il segnale analogico di partenza.
In che senso? Prendi una matita ed un foglio di carta a quadretti e traccia un grafico, su un piano cartesiano, con il tempo "t" in ascissa ed un valore y=f(t) in ordinata. Comincia segnando un punto nell'origine (y=0, t=0), quindi passa a t=1 e vai a guardare il valore del bit corrispondente (primo bit della lunga serie...) nel tuo stream DSD. Se questo vale 1 segna un punto in (t=1, y=1), in caso contrario segnalo in (t=1, y=-1). Passa ora a t=2 e
somma 1 oppure -1
al valore del punto precedente a seconda che il bit per t=2 valga 1 oppure 0. Segna un punto con il valore y così ottenuto in corrispondenza di t=2. Continua così per tutti gli altri bit del tuo stream.
In altri termini, stai plottando il valore di una
sommatoria cui aggiungi o togli una unità a seconda che il bit corrispondente dello stream DSD valga 1 oppure 0:
f(t)=0 per t=0;
f(t)=sum[]( f(t-1) + x(t) ) per t>0;
laddove:
x(t)=1 se dsd(t)=1
x(t)=-1 se dsd(t)=0
A questo punto "unisci i puntini" e guarda cosa viene fuori...
...indovinato, ciò che hai ottenuto è proprio "una copia" del tuo segnale analogico di partenza!
Ora, rifletti un attimo: che tipo di operazione hai effettuato con quella funzione "y=f(t)"?
hint #1: una sommatoria è l'equivalente "discreto" di un ... ?
hint #2: qual è la funzione inversa di una derivata?
hint #3: a quale funzione matematica corrisponde un filtro passa/basso RC?