[R] Weird (wrong?) result for fft

Jiefei Wang @zwj|08 @end|ng |rom gm@||@com
Tue Mar 23 05:06:07 CET 2021


Hi Filippo,

Why do you expect these two expressions to produce the same output?
Especially the second expression contains the first expression. There is no
way to have the same result unless the function "fft( * , inverse = TRUE)"
does nothing but multiplies the input by the input's length. It does not
make any sense.

Actually, both results are correct as Jeff said. The first is the result of
discrete Fourier transform and the second is the reverse of the transform.
That's why the second output is the same as your variable "x". There are
some rounding errors in the computation so you might get very
small imaginary numbers after doing the reverse transformation. That's why
you see "0i" in the second output.

Best,
Jiefei

On Tue, Mar 23, 2021 at 12:17 AM Filippo Monari <ingfimo using gmail.com> wrote:

> Hi all,
>
> I am plying around with fft function from the stats package.
> Running the example that is listed in the documentation:
>
> x <- 1:4
> fft(x) #output 1
> fft(fft(x), inverse = TRUE)/length(x) #output 2
>
> I was expecting that output 1 and two were the same but I get:
>
> > fft(x)
> [1] 10+0i -2+2i -2+0i -2-2i
>
> > ft(fft(x), inverse = TRUE)/length(x)
> [1] 1+0i 2+0i 3+0i 4+0i
>
> Am I doing something wrong or is there a bug somewhere?
>
> Regards,
> Filippo
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list