[Tech] OT: C, linux e la rappresentazione in mem

Claudio Kutufà claudiok@nexusfi.it
Lun 1 Mar 2004 16:46:10 CET


At 16.35 01/03/04 +0100, you wrote:
>Ciao amici, vi vorri sottoporre questo quisito:
>
>devo acquisire un segnale audio e poi elaborarlo successivamente.
>I seguenti parametri non possono essere cambiati:
>
>16 bit
>2 canali
>8000 Hz di freq. di campionamento.
>durata acquisizione 60 sec.
>
>la quantità di memoria da allocare è: 60*16*2*8000=15360000 bit.
>
>Voglio che il buffer che dovrà contenere i dati audio, sia un buffer in 
>allocazione dinamica di tipo float, per cui:
>
>p=(float *)calloc(size,sizeof(float));
>
>in linux sizeof(float)=4 (32 bit), quindi per esprimere in bytes la 
>quantità di memoria sopra calcolata e tenendo conto del numero di bit 
>necessari per la rappresentazione di un numero di tipo float, si ha:
>
>60*16*2*8000/32 = 480 Kb.
>


forse sono un po' arrugginito, ma non mi sembra un calcolo esatto.... 32 
bit sono 4 bytes... non puoi quindi dividere tutto per 32... dovresti 
dividere per 8

>Qui viene il mio dubbio. La scheda audio quantizza il suono con 16 bit 
>(come richiesto). Un tipo float usa 32 bit per la rappresentazione di un 
>numero. Quindi nel mio buffer avrò i 16 bit più rappresentativi tutti con 
>il valore 0, mentre i meno significativi saranno effettivamente impiegati 
>per la rappresentazione del campione audio.
>Inoltre dato che l'acquisizione avviene su 2 canali (acquisizione stereo) 
>significa che nel buffer finiscono 32 bit per il canale sx e 32 bit per il 
>canale dx, rappresentati come descritto prima.

questo invece mi sembra giusto ma devo pensarci un po' meglio...

a dopo :-)
Claudio



+++++++++++++++++++++++++++++++++++++++++++++++++++++
Ing. Claudio Kutufa'
NEXUS SISTEMI INFORMATIVI S.P.A.
e-mail personale: claudiok@nexusfi.it
tel. cellulare: 335 5859567
Sede Oper.va : Via Dante da Castiglione, 33
Tel. : +39 055 229413 Fax : +39 055 229785
50125 Firenze - Italy
Sede Amm.va : Via Panciatichi 40/11
Tel. : +39 055 4222030 Fax : +39 055 4376670
50100 Firenze - Italy
Nexus home page: www.nexusfi.it
+++++++++++++++++++++++++++++++++++++++++++++++++++++




Maggiori informazioni sulla lista flug-tech