Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

# Problem Writing an Autoregressive Process Function

1 Ansicht (letzte 30 Tage)
Roger Kimsky am 10 Dez. 2017
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
I need to create a function that can realize an autoregressive process given three parameters: length(N), standard deviation(sigma), and a vector of coefficients (a).
I know that from the definition of an autoregressive process: x[n]+ a[1]x[n −1]+ a[2]x[n −2]+...+ a[M]x[n − M] = v[n]
Or, in other words: x[n] = -a[1]x[n −1] - a[2]x[n −2] - ... + -a[M]x[n − M] + v[n]
I can use the standard deviation input to create white Gaussian noise with a given variance by multiplying the randn function by it, which will be the v[n] term. However, I'm having trouble figuring out how to create the function since x[n] depends on previous inputs of itself and it can't be an input to the function. As such, I don't know what to do about the x[n-1], x[n-2], etc. terms in the second equation. Does anyone know how to go about doing this? With this issue solved, I can easily figure the rest out on my own. Thanks a lot!

### Antworten (1)

Michelangelo Ricciulli am 10 Dez. 2017
Hello Roger,
First I suppose the length N, is the output vector length. Right? Let's say your initial index is 1. Thus, samples before x[1] (i.e., x[0] x[-1] ... x[1-M]) can be simply considered 0 (or, if you prefer, they could be passed as an argument of the function). Then, the first sample of the vector x can be computed as,
x[1]=v[1];
At the next step, you can use x[1] since you just computed its value. So,
x[2]=a[1]*x[1]+v[2];
Then,
x[3]=a[1]*x[2]+a[2]*x[1]+v[3];
And so on and so forth. Of course, you'll need to implement these steps programmatically.
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Diese Frage ist geschlossen.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by