View Full Version : Funzione di scrambling semplice e leggera
Daniels118
07-08-2015, 13:38
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.
Daniels118
08-08-2015, 14:03
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.
Daniels118
08-08-2015, 16:24
Ottimo :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.