это первый раз, когда я задаю вопрос здесь, поэтому надеюсь, что вы поймете мою проблему.x минус x не 0 в R
Вещь - это то, что я хочу сделать свой собственный fft(), не используя данный в R. Пока это хорошо работает для серии, такой как seq (1,5).
Но для c (1,1) произошло что-то странное. Насколько я мог указать на это, кажется, что x - x не является 0 в этом случае. Вот строки кода:
series <- c(1,1) # defining the Serie
nr_samples <- length(series) # getting the length
#################
# Calculating the harmonic frequncy
#################
harmonic <- seq(0,(nr_samples-1))
harmonic <- 2*pi*harmonic
harmonic <- harmonic/nr_samples
#################
# Exponential funktion needed for summing up
#################
exponential <- function(index, omega){
result <- exp(-((0+1i)*omega*index))
return(result)
}
#################
# The sum for calculating the fft
#################
my_fft <- function(time_series, omega){
nr_samples <- length(time_series)
summand <- 0
# In the next loop the mistakes Happens
# While running this loop for harmonic[2]
# the rseult should be 0 because
# summand = - exp_factor
# The result for summand + exp_factor
# is 0-1.22464679914735e-16i
for (i in 1:nr_samples){
exp_factor <- exponential((i-1), omega)
summand <- summand + time_series[i]*exp_factor
print(paste("Summand", summand, "Exp", exp_factor))
}
return(summand)
}
transform <- sapply(harmonic, function(x){my_fft(series,x)})
fft_transform <- fft(series)
df <- data.frame(transform, fft_transform)
print(df)
Может кто-нибудь сказать мне, почему слагаемым + exp_factor для гармоники [2] не равно нулю ??
Спасибо за ответ, думаю, что это должно помочь. –