- ここの話しの続き
- 資料はこちら
- 総期間、サンプル数、サンプル番号、サンプリング時刻(Regular samplingの場合は)、時刻での観測値
- は虚数単位
- Regular sampling
- IRRegular sampling
- 2式の違いを強調した表示
- Regular sampling
- IRRegular sampling
- Regular sampling
fourier.reg.disc<-function(ps,m=NULL,inverse=FALSE){
x<-1
v<-1
J<-complex(real=0,imaginary=1)
n<-length(ps)
if(is.null(m)){
m<-0:(n-1)
}
if(inverse){
x<--1
v<-n
}
ret<-rep(0,length(m))
for(i in 1:length(m)){
for(j in 1:n){
ret[i]<-ret[i]+ps[j]*exp(-x*J*2*pi*(m[i])*(j-1)/n)
}
}
ret/v
}
fft(fft(1:4),inverse=TRUE)/4
fourier.reg.disc(fourier.reg.disc(1:4),inverse=TRUE)
fourier.irreg.disc<-function(ps,ts,m=NULL,inverse=FALSE){
x<-1
v<-1
J<-complex(real=0,imaginary=1)
tw<-ts[length(ts)]
n<-length(ps)
if(is.null(m)){
m<-0:(n-1)
}
if(inverse){
x<--1
v<-n
}
ret<-rep(0,length(m))
for(i in 1:length(m)){
for(j in 1:n){
ret[i]<-ret[i]+ps[j]*exp(-x*J*2*pi*(m[i])*(ts[j]-ts[1])/tw)
}
}
ret/v
}
ts<-1:length(ts)
f.irreg.out<-fourier.irreg.disc(ps,ts)
f.reg.out<-fourier.reg.disc(ps)
fft.out<-fft(ps)
f.irreg.out-f.reg.out
f.reg.out-fft.out
fft.out<-fft(ps)
f.irreg.out-fft(ps)
fourier.reg.disc(fourier.reg.disc(1:4),inverse=TRUE)
fourier.irreg.disc(fourier.irreg.disc(1:4,1:4),1:4,inverse=TRUE)
fourier.reg.disc(fourier.irreg.disc(1:4,1:4),inverse=TRUE)