Calcolo di un modello autoregressivo

galessandroni
Salve a Tutti.

Devo risolvere questo problema:

$ R \lambda=r $

Dove $ R $ è una matrice di Toeplitz n x n e $ \lambda $ sono le incognite, ovvero si ha:

$ ( (r_1 , r_2 , r_3 , r_4 , r_5 , r_6 , r_7 ),( r_2 , r_1 , r_2 , r_3 , r_4 , r_5 , r_6 ),( r_3 , r_2 , r_1, r_2, r_3 , r_4 , r_5 ),( r_4 , r_3 , r_2 , r_1 , r_2 , r_3 , r_4 ),( r_5 , r_4 , r_3 , r_2 , r_1 , r_2 , r_3 ),( r_6 , r_5 , r_4 , r_3 , r_2 , r_1 , r_2 ),( r_7 , r_6 , r_5 , r_4 , r_3 , r_2 , r_1 ) ) ( ( 1 ),( \lambda_1 ),( \lambda_2 ),( \lambda_3 ),( \lambda_4 ),( \lambda_5 ),( \lambda_6 ) ) = ( ( r_0 ),( r_1 ),( r_2 ),( r_3 ),( r_4 ),( r_5 ),( r_6 ) ) $

So che per matrici di Toeplitz, come in questa forma, il problema può essere risolto con l'algoritmo di Levinson-Durbin evitando l'inversione della matrice (comodissimo per ridurre i calcoli a livello computazionale), ma non riesco a trovarne una implementazione pratica.

Mi accontenterei di un pseudocodice o di una versione Matlab.

Grazie in anticipo,
Giacomo.

Risposte
galessandroni
"Sergio":
Non conosco l'algoritmo, ma mi pare che googlando si trovano parecchie cose per MATLAB, Octave, R.


Pare a te. :D

Ma alla fine ce l'ho fatta. Ho trovato uno pseudocodice sulle specifiche dei protocolli UMTS.
Matlab non è stato d'aiuto: l'algoritmo in questione, noto come Levinson-Durbin, è complilato. E dire che sono poche righe.

Non so se qui interessa un codice, in caso ditemelo che lo scrivo.

galessandroni
"Sergio":
[quote="galessandroni"]Matlab non è stato d'aiuto: l'algoritmo in questione, noto come Levinson-Durbin, è complilato. E dire che sono poche righe.

Per MATLAB no, ma per Octave il codice è disponibile. Ad esempio il file scripts/signal/durbinlevinson.m nei sorgenti di Octave, oppure:
http://octave-signal.sourcearchive.com/ ... ource.html
http://afshin.sepehri.info/projects/ADS ... durbin.htm
Non vanno bene?

Inoltre il pacchetto ltsa di R contiene una funzione TrenchInverse() che inverte una matrice di Toepliz usando l'algoritmo Trench, e anche in questo caso il sorgente è disponibile.[/quote]

Grazie Sergio!

Sì vanno benissimo, ad Octave non avevo proprio pensato e nelle ricerche fatte mi ero imbattutto in altre pagine (alcune addirittura proponevano soluzioni cosiddette "superveloci" con la FFT) ma gli pseudocodici presentati erano tutt'altro che chiari.

L'unico documento che mi ha aiutato è stato "Digital cellular telecommunications system (Phase 2+); Universal Mobile Telecommunications System (UMTS); LTE; Mandatory Speech Codec speech processing functions; Adaptive Multi-Rate (AMR) speech codec; Transcoding functions (3GPP TS 26.090 version 11.0.0 Release 11)" che a pagina 19 riporta uno pseudocodice uguale a quello di Octave.

Grazie ancora,
Giacomo.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.