|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1349
|
Funzione di scrambling semplice e leggera
*
Ultima modifica di das : 17-05-2016 alle 21:16. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Secondo me una cosa del genere su un segnale analogico non è fattibile, perché:
- la funzione deve essere continua (se non lo fosse, piccoli errori nell'ingresso potrebbero trasformarsi in enormi "salti" nell'uscita); - deve essere strettamente monotona (almeno nell'intervallo interessato), altrimenti la sua inversa avrebbe più soluzioni. Partendo dalle precedenti ipotesi, le uniche funzioni non lineari che possano soddisfarle comportano necessariamente una perdita della dinamica. Ciò potrebbe anche non rappresentare un grosso problema, non è raro infatti imbattersi in situazioni nelle quali di un segnale enorme è sufficiente avere l'ordine di grandezza. In questi casi si adotta una funzione logaritmica; il suo uso è talmente frequente che molti chip hanno proprio un'uscita logaritmica invece che lineare. Un'altra possibilità - per rimanere nell'ambito dei segnali analogici - sarebbe quella di ricavare il valore come funzione di altri 2. Supponiamo ad esempio che tu voglia inviare alla mcu l'orientazione: piuttosto che inviare l'angolo, potresti trasmettere i valori di seno e coseno e ricostruire l'angolo nella mcu con la funzione atan2. Naturalmente questo sistema presuppone di avere più canali a disposizione. Ma se devo essere sincero, per una cosa simile punterei su una comunicazione digitale (che già basterebbe a rendere incompatibile il segnale con i dispositivi analogici), eventualmente protetta con un sistema di cifratura. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1349
|
*
Ultima modifica di das : 17-05-2016 alle 21:16. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1349
|
*
Ultima modifica di das : 17-05-2016 alle 21:16. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Sommare un offset lo escluderei perché ridurrebbe parecchio la dinamica... invertire il segnale sarebbe troppo semplice?
Tipo: y(x) = maxX - x In ogni caso puoi usare una lookup table per ovviare al problema della complessità. Supponendo che gli adc siano a 10 bit, e che il valore sia un intero a 16 bit, l'intera tabella occuperebbe 2 KB. Se fossero troppi puoi inserire meno valori e usare l'interpolazione lineare per quelli mancanti, oppure utilizzare soluzioni ibride (funzioni di approssimazione + lookup table). Un'altra idea potrebbe essere quella di usare l'interpolazione lineare sui valori di una lookup table appositamente studiata, ovvero non ottenuta come risultato di una funzione, ma come semplice sequenza di numeri "casuali" strettamente crescenti. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2001
Città: Livorno
Messaggi: 1349
|
*
Ultima modifica di das : 17-05-2016 alle 21:17. |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2014
Messaggi: 852
|
Ottimo
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:39.