Il problema riguarda il filtraggio predittivo per ottenere il valore d(n) a partire dai valori x(n), x(n-1) e x(n-2).
Dopo aver realizzato il filtro di Wiener ottimo, il programma Sol_Pred_Wiener mostrato a lezione effettua un certo numero di realizzazioni in cui viene creato un segnale x da passare al filtro ottimo per ottenere y. Riporto di seguito le istruzioni che mi risultano poco chiare:
D=1;
s=sigma_w*randn(1,lunghsim+D);
x=filter(1,[1 -rho],s);
d=x(D+1:end);
x=x(1:lunghsim);
In tal modo viene creato un vettore di lunghezza "lunghsim+1", da cui poi viene realizzato un vettore d, dato dal vettore x privato del primo elemento. Così facendo però si ottiene un vettore d di lunghezza lunghsim
Se invece il codice fosse:
D=1;
s=sigma_w*randn(1,lunghsim+D);
d=filter(1,[1 -rho],s);
x=d(D+1:end);
d=d(1:lunghsim);
io realizzerei un vettore d di lunghsim+1 elementi, diciamo contenenti i valori d=[d(n+1) d(n) d(n-1)....d(n-lunghsim+1)], da cui poi estrarrei un vettore
x=[d(n) d(n-1) d(n-2)....d(n-lunghsim+1)]=[x(n) x(n-1) x(n-2)......
x(n-lunghsim+1)]. Tale vettore, inserito in un filtro ottimo di Wiener, produrrà un uscita di lunghsim elementi, ossia y=[F(x(n) F(x(n-1) F(x(n-2)...... F(x(n-lunghsim+1)]. Potrei quindi confrontare in tal modo l'elemento d(n+1) con il valore di y, ottenuto a partire dai valori di x precedenti l'istante n+1.
come si spiega?
ringrazio anticipatamente chiunque vorrà darmi una mano.