2012-01-28 16 views
5

Sto adeguando il codice MATLAB a R e sto provando a generare una forma d'onda utilizzando la formula ARMA. Esiste una semplice funzione R equivalente per MATLAB filter per prendere i coefficienti AR/MA per costruire una forma d'onda?equivalente R della funzione filtro 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 

risposta

2

Hmm non è possibile ottenere ciò con la funzione filter nel pacchetto signal?

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

Grazie. Ho usato anche questo. – EngrStudent

4

Sì, è possibile farlo utilizzando arima.sim, ad es.

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

Nota che il modello viene controllato per la stazionarietà e il modello si dispone di cui sopra non è fermo. Se vuoi qualcosa di integrato puoi specificare l'ordine di integrazione nel modello.

+0

Quale sarebbe l'ordine appropriato per questo modello? – Amyunimus

+0

Cosa succede se sta usando dati non sintetici? – EngrStudent