2012-01-28 58 views
5

Tôi đang điều chỉnh mã MATLAB thành R và cố gắng tạo dạng sóng bằng công thức ARMA. Có một hàm R tương đương đơn giản cho MATLAB's filter để có hệ số AR/MA để xây dựng một dạng sóng?R tương đương với chức năng lọc của 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 

Trả lời

2

Hmm bạn không thể đạt được điều đó với chức năng filter trong gói signal?

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

Cảm ơn bạn. Tôi cũng sử dụng nó. – EngrStudent

4

Vâng, bạn có thể làm điều này sử dụng arima.sim, ví dụ:

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

Lưu ý rằng mô hình được chọn cho tình trạng dừng và mô hình bạn có ở trên không dừng. Nếu bạn muốn một cái gì đó tích hợp, bạn có thể chỉ định thứ tự tích hợp trong mô hình.

+0

Thứ tự thích hợp cho mô hình này là gì? – Amyunimus

+0

Nếu anh ta đang sử dụng dữ liệu phi tổng hợp thì sao? – EngrStudent

Các vấn đề liên quan