[Tech] Domanda di C

Franco Bagnoli bagnoli@dma.unifi.it
Gio 27 Maggio 2004 12:37:53 CEST


On Thu, 27 May 2004, Valerio Montagnani wrote:

> 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.

a questo punto sono io che non capisco. Se i dati sono signed char perché 
li converti a short? Sei tu che li converti? e che te ne frega se sono 
little endian in memoria? 
 
> Il segnale acquisito è basso, per cui ho bisogno di amplificarlo.

ma poi li devi risalvare come signed char o no? perché il range è talmente 
piccolo...

> 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).

il formato double è tutto diverso da quello int. Se prendi un numero che è 
in una rapprensetazione diveersa da quella nativa, e lo converti a double, 
direi che ha poco a che fare con il numero originario. 

Ma  chi è che ti ha messo in testa questa storia del little 
endian? 

> Vi sembra logico, o ho fatto qualche considerazione sbagliata?

A me sembra che ci sia parecchia confusione...


-- 
Franco Bagnoli (franchino) <bagnoli@dma.unifi.it> 
virtual location: Dipartimento di Energetica "S. Stecco"
ultra-virtual affiliation: Centro Dinamiche Complesse (CSDC-Firenze)
real location: Dip. Matematica Applicata "G. Sansone", Universita' Firenze,
Via S. Marta, 3 I-50139 Firenze, Italy. Tel. +39 0554796422, fax: +39 055471787




Maggiori informazioni sulla lista flug-tech