2012-01-28 82 views
5

我正在適應MATLAB代碼到R並嘗試使用ARMA公式生成波形。對於MATLAB的filter,是否有一個簡單的R等效函數來採用AR/MA係數來構建波形?R的等效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 

回答

2

嗯,難道你不能用filter函數實現那個包嗎signal

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

謝謝。我也用過這個。 – EngrStudent 2014-07-23 16:46:46

4

是的,你可以這樣做,使用arima.sim,例如,

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

請注意,檢查模型是否平穩,上面的模型是不固定的。如果你想要集成某些東西,你可以指定模型中的集成順序。

+0

該模型的適當順序是什麼? – Amyunimus 2012-01-29 00:16:44

+0

如果他使用非合成數據會怎麼樣? – EngrStudent 2014-07-23 17:46:35