我正在将MATLAB代码调整为R并尝试使用ARMA公式生成波形。 MATLAB的filter
是否有一个简单的R等价函数来获取AR / MA系数来构建波形?
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 个答案:
答案 0 :(得分:4)
是的,您可以使用arima.sim
进行操作,例如
arima.sim(npts, model=list(ar=a, ma=b), rand.gen=rnorm)
请注意,检查模型的稳定性,上面的模型不是静止的。如果您想要集成某些内容,可以指定模型中的集成顺序。
答案 1 :(得分:2)
嗯,你无法通过filter
包中的signal功能实现这一目标吗?
require(signal)
a = c(1,0.6)
b = c(1,0.25,3)
e = rnorm(100)
waveform = filter(b,a,e)