[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