2012-01-28 6 views
5

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

4

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

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

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

+0

Что будет подходящим для этой модели? – Amyunimus

+0

Что делать, если он использует несинтетические данные? – EngrStudent

Смежные вопросы