Filter löschen
Filter löschen


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
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
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,
At the next step, you can use x[1] since you just computed its value. So,
And so on and so forth. Of course, you'll need to implement these steps programmatically.

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