2012-01-28 10 views
5

Dostosowuję kod MATLAB do R i próbuję wygenerować przebieg z wykorzystaniem formuły ARMA. Czy istnieje odpowiednia funkcja równania R dla MATLAB-a filter, aby przyjąć współczynniki AR/MA do zbudowania kształtu fali?R odpowiednik funkcji filtrującej MATLAB

npts = 100; 
a = [1 0.6]; % AR coeffs 
b = [1 0.25 3]; % MA coeffs 
e = randn(npts,1); % generate gaussian white noise 
waveform = filter(b,a,e); % generate waveform 

Odpowiedz

2

Hmm, nie możesz tego osiągnąć za pomocą funkcji filter w pakiecie signal?

require(signal) 
a = c(1,0.6) 
b = c(1,0.25,3) 
e = rnorm(100) 
waveform = filter(b,a,e) 
+0

Dziękuję. Użyłem tego również. – EngrStudent

4

Tak, możesz to zrobić, korzystając z usługi arima.sim, np.

arima.sim(npts, model=list(ar=a, ma=b), rand.gen=rnorm) 

Należy zauważyć, że model jest sprawdzany pod kątem stacjonarności, a model, który posiadasz powyżej, nie jest nieruchomy. Jeśli chcesz coś zintegrowanego, możesz określić kolejność integracji w modelu.

+0

Jaka byłaby odpowiednia kolejność dla tego modelu? – Amyunimus

+0

Co się stanie, jeśli użyje danych niesyntetycznych? – EngrStudent

Powiązane problemy