Esercitazione N°7 Filtri Lineari
Esercizio 1 La Funzione adapt >> net = newlin([0,10],1); >> net.inputWeights{1,1}.delays = [0 1 2]; >> net.IW{1,1} = [7 8 9]; >> net.b{1} = [0]; >> pi ={1 2} pi = [1] [2] >> p = { } p = [3] [4] [5] [6] >> [a,pf] = sim(net,p,pi) a = [46] [70] [94] [118] pf = [5] [6] >> T = { }; >> net.adaptParam.passes = 10; >> [net,y,E, pf,af] = adapt(net,p,T,pi); >> y y = [ ] [ ] [ ] [ ] Costruiamo una focused TDNN e la utilizziamo come filtro lineare. Si noti l'istruzione con cui si assegnano i ritardi della linea. L'obiettivo è quello di associare alla sequenza p in ingresso, la sequenza T in uscita. La sequenza associata dalla rete adttata è contenuta nel vettore y mostrato alla fine della sequenza di istruzioni.
>> p1 = { }; %sequenza in ingresso >> t1 = { }; %sequenza desiderata >> net = newlin([-1 1],1,[0 1],0.5); %costruzione della rete. c'è un solo ritardo (provare con più ritardi) >> [net,y,e,pf] = adapt(net,p1,t1); %adattamento della rete. si cerca di avere t1 come risposta a p1 >> mse(e)% chiediamo il valore dell'errore quadratico medio ans = >> p2 = { }; %adattiamo ora la rete ad un'altra sequenza >> t2 = { }; >> [net,y,e,pf] = adapt(net,p2,t2,pf); % lo stato finale della linea di ritardo è usata come iniziale di questa (pf) >> mse(e) ans = % l'errore è diminuito >> p3 = [p1 p2];% prendiamo l'insieme delle due sequenze >> t3 = [t1 t2]; >> net.adaptParam.passes = 100;% e adeguiamo il numero di passi >> [net,y,e] = adapt(net,p3,t3);% adattiamo la rete >> mse(e) ans = % l'errore è compreso tra i valori nei due casi Esercizio 2 Filtraggio Lineare