Un DSD player autocostruito

Documenti analoghi
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Elettronica dei Sistemi Programmabili

Dispense di Informatica per l ITG Valadier

Realizzazione siti web. I suoni

Amplificatori Audio di Potenza

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Il web server Apache Lezione n. 3. Introduzione

Dispensa di Informatica I.1

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

Introduzione all analisi dei segnali digitali.

Corso di Informatica

Alfabetizzazione Informatica. Prof. Giuseppe Patti

4 3 4 = 4 x x x 10 0 aaa

Verifica scritta di Sistemi e Reti Classe 5Di

Digital Signal Processing: Introduzione

Architettura hardware

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Informatica 1 Lezione 1

LABORATORIO DI SISTEMI

Dispositivi di rete. Ripetitori. Hub

I L C O M P U T E R COM E FATTO DENTRO (Unità 2)

Documentazione illustrativa

INTEGRATORE E DERIVATORE REALI

Vari tipi di computer

Architettura di un calcolatore

Calcolo del Valore Attuale Netto (VAN)

Come valutare le caratteristiche aerobiche di ogni singolo atleta sul campo

Sistema acquisizione dati

Una scuola vuole monitorare la potenza elettrica continua di un pannello fotovoltaico

Mac Application Manager 1.3 (SOLO PER TIGER)

NOZIONI ELEMENTARI DI HARDWARE E SOFTWARE

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

COMPETENZE INFORMATICHE DI BASE PER ADULTI

risulta (x) = 1 se x < 0.

La Videosorveglianza Criteri per il dimensionamento dello storage

Informatica per la comunicazione" - lezione 7 -

Transitori del primo ordine

ISC. L indicatore sintetico di costo del conto corrente

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Introduzione al sistema operativo Il file system: file, directory,...

Hardware delle reti LAN

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Laurea Specialistica in Informatica

Gestione di una UART SOFTWARE.

Presentazione di virtual desktop client + LTSP server

COME È FATTO IL COMPUTER

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Le basi della Partita Doppia in parole Facile e comprensibile. Ovviamente gratis.

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

OSCILLOSCOPIO SOFTWARE

M320 ESAME DI STATO DI ISTITUTO TECNICO INDUSTRIALE CORSO DI ORDINAMENTO. Indirizzo: ELETTRONICA E TELECOMUNICAZIONI

Compagnia delle Ombre.

Informatica - A.A. 2010/11

esales Forza Ordini per Abbigliamento

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Informatica per la comunicazione" - lezione 8 -

Remote Download (DLD ) veloce, comodo ed economico Trasferimento wireless tramite WLAN / GPRS

Il Processore: i registri

Circuiti amplificatori

INTERFACCIA PER PC MEDIANTE PORTA SERIALE

C. P. U. MEMORIA CENTRALE

I componenti di un Sistema di elaborazione. CPU (central process unit)

Informazione analogica e digitale

Internet e il World Wide Web. Informatica Generale -- Rossano Gaeta 30

Capitolo 2. Operazione di limite

Reti di calcolatori ed indirizzi IP

ELETTRONICA DIGITALE

(fonte: +elettronica+pa+-+regole+generali/ )

La memoria centrale (RAM)

DISCRETIZZAZIONE DI UN SEGNALE ANALOGICO:

Il Personal Computer. Cos è Lo schema di massima Che cosa ci possiamo fare. 1

Procedura per creare un archivio storico remoto nelle 24 ore giornaliere

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Memoria Secondaria o di Massa

Manuale Intel su reti Wireless

Le novità del software di configurazione ETS4 e gli esempi applicativi

Codifiche a lunghezza variabile

Invio SMS. DM Board ICS Invio SMS

Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress

Creare una Rete Locale Lezione n. 1

DATABASE MASTER (SEDE PRINCIPALE)


Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Introduzione alle misure con moduli multifunzione (DAQ)

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Strutturazione logica dei dati: i file

INTRODUZIONE I CICLI DI BORSA

E ora, col cuore leggero per lo scampato pericolo, andiamo ad approfondire, e a scoprire:

Determinare la grandezza della sottorete

I Filtri Crossover. Per poter pilotare in modo corretto gli altoparlanti presenti in una cassa acustica sono essenziali i filtri Crossover.

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Algoritmi e strutture dati. Codici di Huffman

Software per Helpdesk

PREMESSA AUTOMAZIONE E FLESSIBILITA'

Dispositivo di conversione di energia elettrica per aerogeneratori composto da componenti commerciali.

Sistema di acquisizione dati

introduzione I MICROCONTROLLORI

Transcript:

Un DSD player autocostruito Analogico o digitale? LP o CD? Lungi da me l' idea di riattizzare una polemica vecchia e per conto mio sterile. Mi pongo invece un obiettivo preciso: illustrare come esista una "terza via", diversa e probabilmente migliore di entrambe. Supponiamo di voler produrre un CD (o anche un vinile). Dobbiamo naturalmente per prima cosa eseguire una registrazione dell' evento musicale. Per questo utilizzeremo delle apparecchiature oggi in genere di tipo numerico, non analogico - in grado di fornirci il file di dati da memorizzare sul dischetto. Questi dati non sono altro che una sequenza di numeri binari a 16 o 24 bit, cioe' la misura istante per istante del segnale analogico (e' la nota tecnica di codifica PCM). Ogni numero della sequenza rappresenta un campione del segnale, e la frequenza di campionamento (per il CD) e' 44,1KHz. Ma vediamo la cosa piu' in dettaglio: l' apparecchio di registrazione contiene un convertitore analogico/digitale, che in genere e' del tipo cosiddetto "sigma-delta". Questo convertitore funziona producendo un "bitstream" PDM, cioè una sequenza di impulsi codificata "Pulse Density Modulation", cioe' piu' o meno "densa" di impulsi a seconda del livello del segnale analogico da convertire, e con una frequenza di clock elevata, tipicamente 2,8224 Mhz. Ma, per produrre il nostro CD o LP non e' possibile usare il bitstream cosi' com' e' (dati mono-bit a 2,8224 MHz): dobbiamo ricavare da esso dei numeri a 16 (o 24) bit con frequenza di campionamento 44.1KHz, perché questo e' il contenuto di un CD audio (dati PCM). A questo scopo, viene eseguita sul bitstream una operazione di signal processing, una sorta di filtraggio digitale, chiamato "decimazione". Si ottengono cosi' nuovi campioni, aventi le caratteristiche richieste, non piu' quindi mono-bit, ma a 16/24 bit con 44.1Kz come frequenza di campionamento. E fino qui siamo alla fase di registrazione, di preparazione del supporto. Veniamo alla fase di riproduzione, al momento in cui avviamo il CD player o il giradischi per gli amanti dell' analogico: notiamo che per il vinile, la testina del giradischi e' in grado di estrarre il segnale audio applicando una singola legge dell' elettromagnetismo (lo stesso principio della dinamo di una bicicletta): qualcosa che potremmo definire "semplice". Nel caso del CD player il discorso si fa più complicato: abbiamo bisogno di un convertitore, questa volta digitale/analogico, un DAC quindi, per ricavare il segnale musicale dai dati numerici PCM presenti sul dischetto. Attualmente anche per i DAC la tecnologia predominate e' quella sigma-delta: i dati subiscono un processo di sovracampionamento - filtraggio digitale - modulazione, e filtraggio analogico finale. Ora, fate mente locale sulla quantita' di elaborazione che ha subito il segnale dal

momento della registrazione: troviamo modulazione sigma-delta, decimazione, oversampling, filtraggi digitali.. Si tratta di operazioni di digital signal processing che la teoria dice non impattare negativamente sulla informazione contenuta nei dati elaborati. In teoria, appunto. In realta', e' evidente l'impatto sul segnale che ha ad esempio il tipo di filtro digitale utilizzato in un DAC sigma-delta, specialmente sulla riproduzione dei transienti. Consiglio a questo proposito una interessante lettura: http://www.wolfsonmicro.com/documents/uploads/misc/en/ultra_high_performance_d AC_whitepaper.pdf E' ragionevole quindi pensare che una semplificazione del processo di registrazione / riproduzione non possa che portare a dei benefici in termini qualitativi. Ebbene, le stesse societa' che hanno creato il CD-Audio, in tempi abbastanza recenti hanno proposto un nuovo standard, che alla ricerca di una superiore qualita' sonora, si muove proprio nel senso della semplificazione del percorso del segnale. Come funziona: abbiamo detto che al momento di registrare il nostro brano musicale, il convertitore A/D produce un bitstream di dati mono-bit a 2,8224 Mhz di clock, destinato a essere trasformato in PCM. Supponiamo invece di interrompere qui il procedimento, e registrare direttamente in un file il bitstream. Avremo una sequenza binaria, una lunga serie di '0' e '1' con frequenza di clock pari a 64 x 44100 (=2822400). Ora, la cosa interessante e' che basta far passare questo bitstream in un semplice filtro passa- basso per ottenere il nostro segnale musicale. Si elimina cosi' tutta una serie di elaborazioni, in parte fatte in registrazione e parte in riproduzione (decimazione, oversampling, filtraggio digitale, modulazioni ecc.). Lo standard definisce questa codifica "Direct-Stream Digital" (DSD) e rappresenta il contenuto dei SACD (Super Audio CD). Ora, sappiamo che il SACD ha avuto alterne fortune - del resto e' noto che non sempre e' il prodotto tecnicamente superiore a imporsi sul mercato ma quello che piu' importa e' che oggi e' possibile procurarsi musica liquida in questo formato. Alcune piccole case discografiche infatti permettono il download di brani musicali in formato DSD, oltre che nei classici.wav,.mp3, FLAC ecc. Di solito hanno il suffisso.dff. Esistono anche delle varianti, ad es. i files.dsf. Naturalmente come sempre c' e' un prezzo da pagare per la qualita', e uno di questi e' la dimensione dei files DSD, specie se raffrontati agli altri formati : oltre 41Mbytes per 1 minuto di musica stereo. Un' altro problema posto dal sistema e' la difficolta' di elaborare il segnale: non si tratta di dati PCM, e questo pone problemi in sede di mixaggio ecc. Questo fa si' che gran parte dei files DSD disponibili non siano "nativi", ma siano invece ottenuti per post-processing di un file PCM, e quindi con caratteristiche leggermente inferiori.

Costruiamo un DSD player Come abbiamo visto, i files in formato DSD non contengono dati numerici PCM come avviene per il classico CD audio, i files.wav ecc. Per questo parlavo all' inizio di un sistema differente dal consueto analogico e digitale. Nel caso di un contenuto stereo, lo stream binario DSD che rappresenta la sequenza di impulsi e' multiplexato per canale in questo modo: <8bit CH1><8bit CH2><8bit CH1><8bit CH2><8bit CH1>... Come avviene anche per i file.wav, i dati veri e propri sono preceduti da un "preambolo" contenente varie informazioni ad es. dimensioni, numero di canali, dati compressi/noncompressi ecc. Ho realizzato un piccolo prototipo (*) per sperimentare sui files DSD, composto da una interfaccia USB (FTDI FT245R), una logica programmabile (Altera EP2C5T144) e un filtro passa-basso. Possiamo trasmettergli brani residenti sul PC, tramite interfaccia USB, e avremo in uscita un segnale audio stereo, adatto all' ingresso di un qualsiasi amplificatore di potenza. Il materiale necessario e' facilmente reperibile, le due schedine FPGA e FT245 sono disponibili off-the-shelf in un noto sito di e-commerce ad un costo totale di 22-25 Euro, comprese le spese di spedizione. (*) ispirato in parte all' unica realizzazione simile che ho trovato in rete (https://sites.google.com/site/koonaudioprojects): nel mio caso pero', non viene utilizzato il dispositivo FTDI FT232H (interfaccia USB del tipo "high-speed"), ma il piu' economico e facilmente reperibile full speed FT245R la memoria FIFO e' integrata nel FPGA la serializzazione necessaria alla creazione del bitstream viene effettuata "hardware" nel FPGA di conseguenza diversa e' anche la struttura del software di comunicazione con il PC

La gestione del protocollo USB senz'altro complesso - e' svolta dall' integrato FT245R. Questo integrato ha in ingresso il collegamento USB proveniente dal PC e mette a disposizione una interfaccia di uscita a 8 bit verso il FPGA. Il clock di sistema e' derivato dall' oscillatore a quarzo a 50 MHz presente sulla schedina FPGA. Il dispositivo FPGA contiene la logica di controllo del FT245R, una memoria FIFO e il circuito di generazione dei due bitstream L/R in uscita.

La memoria FIFO (FirstIn-FirstOut) permette di assorbire le instabilita' nella comunicazione sul canale USB, disaccoppiando i domini di clock. Questo sistema elimina il possibile jitter dovuto al canale USB: il clock del bistream in uscita e' quello derivato dall'oscillatore a quarzo. Riguardo al problema del jitter negli USB-DAC, molto si e' scritto. Come e' noto, gli USB DAC in genere vengono visti dal sistema operativo come appartenenti alla classe audio : per essi viene attivata la trasmissione USB cosiddetta isocrona, prevista per lo streaming audio. Questa a sua volta può essere sincrona, asincrona o adattativa, con prestazioni piu' o meno elevate riguardo al jitter. La questione non e' semplice, essendo lo USB un sistema a pacchetti. Ogni millisecondo il PC trasmette un pacchetto di dati: ora, se la frequenza di campionamento e' 48Khz e avremo pacchetti di 48 bit, ma per i 44.1Khz abbiamo gia' una complicazione. Inoltre, quale e' la stabilita' del clock a 1 ms generato dal computer host? Nel nostro caso si risolve il problema alla radice con una memoria FIFO di una discreta dimensione. La FIFO memory nel nostro caso e' comunque essenziale anche per il fatto che il chip FT245R non funziona in modalita' Audio Class ma Bulk : vedremo che per questo motivo, dovremo impiegare sul PC un programma player sviluppato ad hoc. Le uscite bitstream left/right vanno a un semplice filtro RC passivo, all' uscita del quale e' prelevabile il segnale audio per essere amplificato.

Come abbiamo visto infatti, basta far passare il bitstream a 2.8224 MHz in un filtro lowpass, per ottenere l' audio in uscita: niente piu' oversampling, filtri digitali, modulatore sigma-delta. Potremmo dire che questo e' il nostro DAC! Risposta in frequenza (e fase) del filtro (su un carico di 47KOhm ): Come si vede oltre a essere estremamente semplice (resistenza/condensatore), presenta una frequenza di taglio ben distanziata dalla banda audio ( i -3dB sono a oltre 40KHz). (So che qualcuno potrebbe dubitare che l'unica elaborazione necessaria sia questa: a questi consiglio di leggere attentamente i datasheet di alcuni convertitori disponibili sul mercato, ad es. Burr-Brown DSD1792 o DSD1793. Ci si puo' comunque divertire a sperimentare gli infiniti tipi di filtro possibili).

Questo e' l' aspetto del segnale il bitstream prima del filtro:

Output: sinusoide a 1KHz Come si vede il rapporto segnale/rumore ottenuto con il semplicissimo filtro utilizzato non e' eccezionale, ma siccome trovo molto soddisfacente il risultato all' ascolto, personalmente non vedo la necessita' di complicarlo (si potrebbe anche abbassare l' impedenza di uscita verso l' amplificatore, ma io insisto sulla filosofia minimalista del progettino). La THD e' sicuramente sotto lo 0.1%, anche considerando l' uso di strumentazione di misura non professionale.

Sul PC Abbiamo accennato al fatto che non e' possibile utilizzare un programma player general purpose per trasmettere i files al nostro prototipo: i programmi pensati per gestire integrati USB-DAC Audio Class semplicemente non vedono il chip FT245R. Grazie alle librerie messe a disposizione sul sito FTDI non e' pero' difficile scrivere un piccolo programma adatto allo scopo (nel mio caso ho utilizzato il compilatore "free" MinGW + FLTK). Il software e' stato provato su due sistemi Windows XP (Pentium 4, 2.8 e 3.0 Ghz) e su Windows 7 ( Core i5, 2.5GHz). Un solo inconveniente: a seconda delle prestazioni del PC, nel caso di contemporaneo uso del PC per altre applicazioni, le dimensioni della FIFO realizzabile nel FPGA a basso costo utilizzato possono non essere sufficienti: in questo caso la soluzione e' incrementare la priorita' assegnata nel sistema operativo del PC al programma "DSD USB Audio".

Utilizziamolo ora con: un Media Player DSD Mantenendo la linea low-cost, possiamo costruire un media player fan-less e di minime dimensioni e consumo. Come? Sul mercato dell' usato informatico in rete e' disponibile una vasta scelta di piccoli computers, tipicamente senza hard-disk, i cosiddetti thin-clients. Quello che vedete qui sotto in foto e' costato circa 15 Euro + spese postali. In questo caso, il thin-client ha alimentatore da rete incorporato. Sul pannello frontale e' presente una comoda presa USB, altre due sono sul retro. Niente impedisce naturalmente di collegarci un qualsiasi DAC USB del mercato o perche' no, autocostruito.

Come si vede, il livello di costruzione e' ottimo. L' apparecchio dispone all' interno anche di una memoria Compact Flash. Ho utilizzato questa schedina CF per l' installazione del sistema operativo: si presta molto bene una particolare distribuzione Linux, pensata per risiedere su una chiavetta USB, Puppy Linux. Xhippo, un' interfaccia grafica per media-players, e' utilizzato in combinazione col mio programma, questa volta in versione Linux e a linea di comando.

E' possibile evitare di collegare monitor e tastiera, telecomandando il tutto per mezzo di un collegamento wi-fi. Conclusioni Devo dire che il risultato finale e' soddisfacente: in uscita dal filtro analogico troviamo un segnale di qualita' sorprendente. Ascoltando uno dei brani demo che sono liberamente scaricabili dal sito della casa discografica 2L (http://www.2l.no/hires/index.html), risulta quasi incredibile che da un hardware minimo ed economico come questo si possa ottenere un risultato di livello cosi' buono. Totale assenza di fatica di ascolto, grande naturalezza. Certamente il formato DSD ha delle carte da giocare, riguardo poi all' "ingombro" dei files in termini di Mbytes, bisogna considerare che solo pochi anni fa un hard-disk da 40 Gbytes era considerato di grande capacita': la tecnologia e i termini di paragone cambiano velocemente. Per chi volesse cimentarsi nella realizzazione, qui diy_dsd_player.zip trovate cablaggio, file per la configurazione del FPGA e il software (per Puppy Linux 5.28). Caricate la directory con il software su una chiavetta USB e attivate Xhippo. Nel file test.zip c'e' un segnale di prova sinusoidale. Attenzione: non posso garantire il successo, si tratta di un esperimento non di un prodotto commerciale! Autore: Gianfranco Meneghetti meneghettig @ alice.it