Funzioni > Elaborazione dei segnali > Analisi della serie temporale > Esempio: metodi di predizione lineare
  
Esempio: metodi di predizione lineare
Utilizzare le funzioni burg e yulew per generare coefficienti per il modello di predizione lineare denominato. Queste funzioni implementano rispettivamente il metodo di Burg e l'algoritmo di Yule-Walker. Per una descrizione di questi algoritmi e della matematica su cui si basano, vedere Sophocles J. Orfanidis, Optimum Signal Processing, Macmillan (1989).
Predizione di Yule-Walker
1. Utilizzare la funzione cos per definire un segnale di coseno.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
2. Tracciare il grafico del segnale.
Fare clic per copiare questa espressione
3. Utilizzare la funzione rnd per aggiungere rumore casuale al segnale.
Fare clic per copiare questa espressione
4. Tracciare il grafico dei segnali originali e rumorosi.
Fare clic per copiare questa espressione
Dal segnale viene sottratto 0.2 per centrare il componente casuale intorno all'ampiezza 0.
5. Utilizzare un breve insieme di campioni dall'inizio del segnale.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
6. Impostare l'ordine di predizione e utilizzare la funzione yulew per calcolare i coefficienti.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Tali coefficienti sono destinati a un filtro a soli poli che approssima il segnale originale. Come previsto, è presente un polo grande che rappresenta il coseno e diversi poli più piccoli, che approssimano il rumore.
L'ordine P determina il numero di valori consecutivi utilizzati per predire il valore successivo nella sequenza. Vengono utilizzati dal primo al sesto elemento del vettore di coefficienti, ignorando l'elemento di ordine zero, che è sempre 1. Questo 1 è necessario quando si utilizza y come filtro degli errori di predizione per generare l'insieme completo di errori di predizione.
7. Confrontare con i dati originali i punti previsti, calcolati utilizzando gli P punti precedenti nel segnale. In questo modo è possibile determinare il grado di correttezza del filtro se utilizzato al posto del segnale X.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
8. Tracciare il grafico del segnale originale e previsto.
Fare clic per copiare questa espressione
L'approssimazione è molto soddisfacente, anche se si utilizzano solo i primi 20 punti di dati.
9. Utilizzare la funzione response per generare gli errori di predizione per i coefficienti di Yule-Walker utilizzando l'array di coefficienti come filtro, calcolando quindi la risposta con il campione come input.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
L'array di coefficienti completo è talvolta denominato filtro degli errori di predizione.
10. Verificare che tali errori indichino effettivamente la differenza tra i due grafici precedenti.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
L'algoritmo di Yule-Walker minimizza la somma dei quadrati degli errori di predizione.
Fare clic per copiare questa espressione
11. Verificare rapidamente la minimizzazione modificando y tramite l'aggiunta di una piccola quantità causale a tutti i coefficienti eccetto il primo e ricalcolando la somma posizionando il cursore sulla funzione rnd riportata sotto e premendo [F5] più volte.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Predizione di Burg
1. Costruire una sequenza per cui la predizione lineare funzioni correttamente, ovvero un processo autoregressivo con coefficienti noti.
Fare clic per copiare questa espressione
2. Inizializzare la serie temporale.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
3. Generare il resto delle serie utilizzando l'autoregressione più il rumore.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Utilizzare l'intera serie temporale come campione e calcolare i coefficienti per un modello di ordine 6, quindi utilizzare la funzione burg per calcolare i coefficienti.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
5. Confrontare i coefficienti che hanno generato effettivamente il processo utilizzando la convenzione di segno del presente documento.
Fare clic per copiare questa espressione
Coefficiente di ordine zero è stato escluso poiché è sempre uguale a uno.
Gli elementi calcolati 1 e 5 di C sono diversi.
6. Utilizzare il vettore di coefficienti di Burg C per generare gli errori di predizione.
Fare clic per copiare questa espressione
Il metodo di Burg assegna il peso 0 al primo errore P, in modo che la minimizzazione non venga influenzata dal riempimento con zeri del campione, come avviene per la minimizzazione eseguita tramite Yule-Walker.
Il criterio di Burg interessa sia gli errori in avanti FE sia quelli all'indietro BE.
7. Utilizzare le funzioni response e reverse per calcolare i gli errori all'indietro.
Fare clic per copiare questa espressione
8. Utilizzare gli errori di predizione FE e la funzione di autoregressione b per calcolare le predizioni effettive AP, quindi tracciare il grafico di una parte della serie prevista e di quella effettiva a partire dal termine Pth.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Stima spettrale
È possibile utilizzare coefficienti generati dai metodi di predizione lineare per stimare lo spettro di potenza del processo in fase di modellazione. In questo contesto l'algoritmo di Burg è noto come algoritmo MESA (Maximum Entropy Spectrum Analysis) e in alcuni casi può determinare in modo più accurato gli spettri di serie temporali brevi rispetto a FFT.
Stimare lo spettro di potenza di un processo costituito da una somma di sinusoidi con rumore gaussiano aggiunto eseguendo le operazioni descritte di seguito.
1. Utilizzare la funzione sin per definire un segnale che contiene due componenti seno.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
2. Utilizzare la funzione gaussn per aggiungere rumore gaussiano.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
La funzione gaussn restituisce un vettore di n elementi di numeri casuali che segue una distribuzione di probabilità gaussiana con media 0 e deviazione standard 1.
3. Definire due ordini per la predizione lineare.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
4. Utilizzare la funzione burg per stimare lo spettro con modelli autoregressivi degli ordini di due, utilizzando l'intera serie temporale come campione.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
5. Utilizzare la funzione gain per calcolare gli spettri di potenza corrispondenti, come la grandezza quadratica della funzione di trasferimento definita dagli array di coefficienti F1 e F2.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
6. Tracciare il grafico dei due spettri di potenza.
Fare clic per copiare questa espressione
Ogni spettro di potenza ha due picchi.
Entrambi i picchi di frequenza, inferiore e maggiore, per i due spettri si verificano a circa la stessa frequenza.
7. Suddividere le curve spec1 e spec2 in due segmenti ciascuna per facilitare l'individuazione dei picchi di resa e le frequenze a cui si verificano.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
8. Utilizzare la funzione if per definire una funzione che restituisca la frequenza a cui il segmento specificato ha un picco, quindi utilizzarla per trovare i picchi di sinistra e destra di ogni traccia degli spettri.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
9. Utilizzare la funzione max per calcolare la grandezza di ogni picco.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
10. Tracciare il grafico di ogni funzione separatamente. Utilizzare gli indicatori orizzontale e verticale per mostrare la grandezza di ogni picco e la frequenza a cui si verifica.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Osservare i due grafici mentre si ricalcola il foglio di lavoro.
La grandezza dei picchi varia con ogni caso di ricalcolo e in genere presentano valori diversi. È tuttavia possibile che le grandezze siano uguali.
I picchi si verificano a circa le stesse frequenze.
Per ulteriori informazioni su questo metodo di stima spettrale, vedere Digital Spectral Analysis with Applications di S. Lawrence Marple, Jr (Prentice-Hall, Inc).