[Tech] Domanda di C
Valerio Montagnani
tech@vmontagnani.it
Mer 26 Maggio 2004 16:45:38 CEST
On Wed, 26 May 2004 16:20:56 +0200 (CEST)
Franco Bagnoli <bagnoli@dma.unifi.it> wrote:
>
> Credo che con una union con una struttura (esempio da manuale) possa
> farcela:
>
> union {
> unsigned little-endian;
> struct {
> unsigned char low;
> unsigned char high;
> } data;
> } x;
>
> x=<dato>
> y = x.data.low | (x.data.high<<8);
> (qualche operazione su y)
> ecc. ecc.
>
Esempio da manuale? Hai trovato questo su un manuale di riferimento? Potresti darmi il titolo? Grazie.
> puoi anche usare due strutture, se vuoi evitare di shiftare i bit, oppure
> fare tutto con gli shift.
>
> per amplificare puoi anche convertire il numero in double, moltiplicarlo e
> manipolarlo in maniera appropriata usando funzioni tipo arrcotangente
> iperbolica per mantenerlo nel range giusto, ma non so quanti dati devi
> trattare.
Sono vettori di 1920000 campioni di tipo signed char.
L'idea è quella di creare qualcosa di simile alla funzione di Audacity che normalizza e amplifica una sequenza audio.
--
Valerio Montagnani (Lug-Account) <tech@vmontagnani.it>
pub 1024/C7E4BC57 sub 2048g/0E170155
Key fingerprint = D5A4 EDFC 060C 5BD6 E2DD 8252 3B67 C1EB C7E4 BC57
Maggiori informazioni sulla lista
flug-tech