Abbiamo elaborato i campioni della corrente di collettore a nostra disposizione, in modo tale da estrarre un periodo esatto del segnale, al fine di eliminare le ridondanze, e da ricavare una sua approssimazione usando un numero limitato di armoniche. Siano () i campioni del segnale di partenza; il comando MATLAB fft() restituisce un vettore così strutturato:
1 | continua |
2 | armonica |
armonica | |
armonica | |
dispari | armonica |
1 | continua |
2 | armonica |
armonica | |
dato da scartare | |
armonica | |
pari | armonica |
Quindi se , e vogliamo che solo le prime armoniche siano diverse da zero, dobbiamo considerare anche la continua ponendo , e quindi:
1 | continua |
2 | armonica |
armonica | |
0 | |
0 | |
6 | armonica |
7 | armonica |
Si può iterare questo discorso, in modo tale da considerare un numero di armoniche sempre più grande arrestandosi al raggiungimento dell'approssimazione desiderata. L'algoritmo si arresta comunque quando , che in caso di dispari è uguale a e in caso di pari è uguale a , ottenendo la ricostruzione completa del segnale di partenza.
Il programma richiede come valore di input l'errore relativo voluto, e restituisce il numero di campioni elaborati, il numero di armoniche utilizzato, e l'errore che si ottiene calcolando alcuni parametri della corrente di collettore dalla sua approssimazione.