[Tech] Domanda di C

Claudio Kutufà claudiok@nexusfi.it
Gio 27 Maggio 2004 12:32:48 CEST


>Io mi trovo ad acquisire un vettore audio di durata 1 minuto; i dati 
>campionati sono di tipo signed char.
>Questo significa che ho dei valori compresi tra -128 e 127.
>Il modo in cui i dati campionati vengono rappresentati in memoria è, come 
>detto ieri, basato sul little-endian 16.

deduco che non ti arrivano mai valori negativi, altrimenti castizzando a 
unsigned potresti avere valori sballati.

>Il segnale acquisito è basso, per cui ho bisogno di amplificarlo.
>Per ciò, indipendentemente da come saranno organizzati i dati, se prendo 
>ciascuna componente del buffer (in cui sono stati salvati i campioni), la 
>castizzo, per esempio double (così casco in piedi) e infine la moltiplico 
>per un fattore di amplificazione ottengo una grezza amplificazione.
>Alla fine del ciclo otterrò un nuovo vettore audio, moltiplicato tante 
>volte quanto è il valore di amplificazione, nel formato little-endian (a 
>questo punto 64 bit perchè ho valori double).
>
>Vi sembra logico, o ho fatto qualche considerazione sbagliata?

non vedo errori (ma magari sono io un po' orbo) e comunque mi sembra la 
stessa tecnica che volevi appunto usare ieri, separando i due blocchi di 
bit e moltiplicandoli. In ogni caso anche ieri l'avevo trovata una tecnica 
corretta.

L'uso o meno di una struct o di una union secondo me dipende poi da quanto 
pesante è l'uso che fai delle singole parti di segnale e soprattutto da 
quanti sono i differenti segnali che devi elaborare in contemporanea col 
tuo programma. Se il segnale è uno solo, o almeno uno per volta, ti 
sconsiglio la struct che ti complica inutilmente la sintassi.

ciao
Cla




_____________________________________________________________

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