# Spectra of moving average processes # We constructing a moving average with a peaked spectrum and verify # that the process shows periodic behavior # We construct a polynomial Q such that |Q(exp(2*pi*lambda))|^2 # has a maximum around 1/11. The moving average process with # the spectral density equal to |Q(exp(-2*pi*lambda))|^2 # has then an approximately periodic behavior with period about 11 # Q is constructed by multiplying polynomials which have zeroes at # +1, -1, exp(+-2.5i), exp(+-1.8i) and exp(+-1.1i) nu <- seq(0,0.5,length=(1001))*2*pi z <- exp(-nu*1i) Q <- (1-z)^2*(1+z)^2*(1-2*cos(2.5)*z+z^2)^2* (1-cos(1.8)*z+z^2)^2*(1-cos(1.1)*z+z^2)^2 plot(nu/(2*pi), Mod(Q)^2,type="l") 2*pi/nu[Mod(Q) == max(Mod(Q))] # 1/frequency where spectral density is maximal # Simulating the corresponding moving average process by applying successive # moving averages for each factor in Q. x <- rnorm(1000) x <- filter(x,c(1,-1),"convolution",sides=1) x <- filter(x,c(1,-1),"convolution",sides=1) x <- filter(x,c(1,1),"convolution",sides=1) x <- filter(x,c(1,1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(2.5),1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(2.5),1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(1.8),1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(1.8),1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(1.1),1),"convolution",sides=1) x <- filter(x,c(1,-2*cos(1.1),1),"convolution",sides=1) plot(x) acf(x[17:1000])