Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Calcoli Fixed-Point

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Calcoli Fixed-Point

Messaggioda Foto Utentecencia » 20 nov 2012, 19:06

Ciao A tutti del Forum,
vorrei esporre alcune mie perplessità riguarda a una cosa che sto studiando riguardo i calcoli con i dsPIC in generale.

Mi si dice che per rapprensetare a=2,4*10^{-4} in base 12 è 1,024. Ora a è un coefficiente moltiplicatico di una variabile e con e in base 24: I_{32}=a_{12}*e_{24} dove I_{32} è una variabile long int.
Quindi definisco una Macro come
Codice: Seleziona tutto
#define Macro(e) ((e>>12))
e tutto mi torna perché shiftando e di 12 posizioni e destra lo divido per 2^{12}, e il risultato è il $a=2,4*10^{-4}$.

Tutto chiaro fino a qua? nel senso: ho capito tutto bene fino a qua?
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

2
voti

[2] Re: Calcoli Fixed-Point

Messaggioda Foto UtenteIsidoroKZ » 20 nov 2012, 19:09

Forse l'espressione base 12, base 24 e base 32 non sono corrette. I numeri sono in base 2, e il valore di un numero in fixed point dipende da dove si assume sia messo il punto decimale.

Se linki il documento che stai leggendo indicando la pagina, si puo` essere piu` precisi.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
121,2k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 21059
Iscritto il: 17 ott 2009, 0:00

0
voti

[3] Re: Calcoli Fixed-Point

Messaggioda Foto Utentecencia » 21 nov 2012, 12:42

Allego argomento di interesse nel pdf.

Non sto capendo alcuni passaggi. Ripeto quello descritto sopra penso di averlo capito; è la seconda parte che non ho capito, riguardo alla rappresentazione di Ki.

mi puoi illuminare e darmi la chiave di lettura corretta?
Allegati
Integrazione.pdf
(40.73 KiB) Scaricato 175 volte
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

0
voti

[4] Re: Calcoli Fixed-Point

Messaggioda Foto Utentecencia » 22 nov 2012, 10:53

IsidoroKZ :

qualcosa non è comprensibile?
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10

1
voti

[5] Re: Calcoli Fixed-Point

Messaggioda Foto UtenteIsidoroKZ » 22 nov 2012, 11:49

Si`, non capisco la tua domanda :(. Il documento che hai postato, che in forma completa si trova qui, riguarda la normalizzazione delle grandezze perche' possano essere rappresentate correttamente in un microcontrollore.

Se ho ben capito quello che sta dicendo e` che ha una grandezza intera rappresentata su 12 bit. Per farci su i conti "con la virgola" la moltiplica per 2^12, in pratica usa 24 bit di variabile intera denormalizzata (oppure pensa che ci sia un fixed point a destra del dodicesimo bit). Ma sui dettagli sono perplesso.

Meglio sentire anche qualche controllista digitale come ad esempio Foto Utentedimaios
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
121,2k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 21059
Iscritto il: 17 ott 2009, 0:00

0
voti

[6] Re: Calcoli Fixed-Point

Messaggioda Foto UtenteTardoFreak » 22 nov 2012, 12:58

cencia ha scritto:... calcoli con i dsPIC in generale...

I dsPIC non sono una caso generale ma è il nome della linea di DSP (Digital Signal Processor) prodotta dalla Microchip.

Ciò detto,
Il documento a cui fai riferimento illustra il trucchetto che si usa per fare moltiplicazioni veloci con i mcircontrollori. In pratica si tratta di trasformare i valori in virgola mobile in numeri interi per poi moltiplicarli fra di loro.

Per fare questo si usa la notazione Qm,n che è ben descritta QUI. A questo link, gentilmente fornito da Foto Utentedimaios, ci sono anche esempi di implementazione in C.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

6
voti

[7] Re: Calcoli Fixed-Point

Messaggioda Foto Utentedimaios » 22 nov 2012, 14:53

Foto Utentecencia, tutto quello vuoi sapere riguardo l'aritmetica a precisione finita relativamente all'analisi numerica dei segnali e' descritta in modo eccellente in questo documento scritto dal Prof. Gian Antonio Mian ( ho avuto l'onore di averlo come docente nel corso di Analisi Numerica dei Segnali all' Universita' di Padova e come contro relatore per la tesi di laurea e devo dire che e' stato un professore eccellente ed un uomo di grande elevatura, peccato che sia mancato pochi anni fa ).

Esistono fondamentalmente cinque problemi da affrontare :

[1] Rappresentazione numerica all'interno del processore
[2] Effetto delle operazioni matematiche nella propagazione dell'errore di approssimazione
[3] Effetto della quantizzazione dei coefficienti
[4] Scalamento delle variabili di ingresso/intermedie/uscita per ottimizzare la precisione
[5] Scelta della struttura numerica ottimale per eseguire i calcoli. Infatti a seconda della sequenza con la quale vengono eseguite le operazioni, la propagazione dell'errore varia ed anche sensibilmente.

Il punto [1] dipende dall'applicazione dalla casa produttrice del processore e dalle ottimizzazioni introdotte per il calcolo. Infatti ogni rappresentazione ha pro e contro.


I punti [2], [3] e [4] sono fondamentali per capire come si propagano gli errori e se il sistema rimane stabile a partire da un analogo stabile in floating point.

Il punto [5] invece e' lo step finale che viene dettato da un compromesso tra la facilita' di implementazione e la complessita' di una struttura al fine di preservare la stabilita' numerica e la precisione del risultato.

Il punto [2] ed il punto [5] sono chiaramente legati tra loro, la differenza e' che per un filtro numerico le strutture sono sostanzialmente prefissate mentre per algoritmi generici bisogna verificare "manualmente" caso per caso la propagazione dell'errore.

Concludo dicendo che con l'avvento dei processori floating-point sempre meno vengono fatte le dovute verifiche ed il risultato a volte e' sconcertante. Purtroppo si assiste ad un eccesso di fiducia nei confronti delle rappresentazioni in virgola mobile che pero' spesso sono implementate a singola precisione anziche' a doppia. Se i poli del sistema sono troppo vicini al cerchio unitario anche passando da double a float si puo' incorrere nel fenomeno dell'instabilita' per cui ...... la teoria dei DSP fixed point rimane un solido riferimento anche al giorno d'oggi.
Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes

0
voti

[8] Re: Calcoli Fixed-Point

Messaggioda Foto Utentecencia » 22 nov 2012, 21:03

Grazie del ripasso della teoria, qualche volta non fa male direi. Purtroppo di Elaborazione Numerica non ho fatto un granchè e adesso mi trovo a domandare il più possibile su questi argomenti.
Ma non demordo e vorrei riproporvi la domanda:
nell'articolo di parla esplicitamente di base per rappresentare un numero reale. Ad esempio, indicando con i la corrente reale e con #I la corrente digitalizzata, si può asserire che per rappresentare correnti con 12 bit si può ricorrere alla formula #I_{12} = i*\frac{4096}{20} dove i=20 è il riferimento massimo della corrente.
qualcuno mi sa spiegare il paragrafo 1.6 Integrazione che ho allegato nel file pdf?
è un paragrafetto di neanche una pagina, ma non riesco a metterlo a fuoco definitivamente, o meglio riesco a capirlo per il 70%, ma vorrei delle dritte aggiuntive in più.
se volete lo possiamo vedere assieme postando riga per riga, tanto saranno 10 le righe di interesse.
O_/ 4
#-o
Avatar utente
Foto Utentecencia
8 1 5
New entry
New entry
 
Messaggi: 98
Iscritto il: 1 giu 2012, 22:10


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti