R-эквивалент функции фильтра MATLAB - PullRequest
5 голосов
/ 29 января 2012

Я адаптирую код MATLAB для R и пытаюсь сгенерировать сигнал, используя формулу ARMA.Существует ли простая эквивалентная функция R для MATLAB filter, которая принимает коэффициенты 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 ]

4 голосов
/ 29 января 2012

Да, вы можете сделать это, используя arima.sim, например

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

Обратите внимание, что модель проверена на стационарность, а модель, которую вы выше, не является стационарной.Если вы хотите что-то интегрировать, вы можете указать порядок интеграции в модели.

2 голосов
/ 29 января 2012

Хм, вы не можете этого добиться с помощью функции filter в пакете сигнал ?

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