FFT of the average vs average of the FFT

43 views (last 30 days)
Gianmarco Venditti
Gianmarco Venditti on 13 Apr 2022
Edited: Paul on 13 Apr 2022
Hello everyone,
I've a (probably naive and simple question):
I've a NxM matrix (S): N measures, with M data point
I do the average along N and than compute the FFT =>
A = FFT(mean(S) )
on the other side I do first the FFT of each of the N measure and than I average along N:
B = mean(FFT(S))
Now my A and B are different, and look like that the average and FFT are not abelian operations.
However from my memory using the linearity of the Fourier transform and the Fubini-Tonelli theorem (you can switch sum and integral if every integral is finite) A and B should be the same.
I mean: the fourier transform of the average of a set of signals should be the average of the fourier transforms of eahc signals
.
Am I missing something? Should I expect my A and B to be the same? And if not, why?
Thanks in advance

Answers (1)

Paul
Paul on 13 Apr 2022
Edited: Paul on 13 Apr 2022
For a matrix input, fft() works down the columns. Maybe this:
rng(100);
S = rand(5);
fft(mean(S,1)) % mean for each column, fft of resulting row
ans =
2.3586 + 0.0000i -0.0250 + 0.2397i -0.1065 - 0.2300i -0.1065 + 0.2300i -0.0250 - 0.2397i
mean(fft(S.').',1) % fft of each row S, mean down the columns
ans =
2.3586 + 0.0000i -0.0250 + 0.2397i -0.1065 - 0.2300i -0.1065 + 0.2300i -0.0250 - 0.2397i

Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!