Compute FFT consecutively in Matlab
Afficher commentaires plus anciens
I have an array of numbers in variable "filter". I wanted to compute Fourier Transform (fft) on every 32 data consecutively using matlab. But the codes below doesn't seems to work. Anyone have a better solution?
for aa=1:length(filter)-32 %scans every row of numbers
output(aa) = fft(filter(aa + (0:31))); % compute fft every 32 data continuously
end
Réponses (2)
Youssef Khmou
le 18 Mar 2014
hi, First remark is the name of the variable "filter" is built-in function, this will lead to ambiguity, the other problem is you are iterating with a step of 32 points but you expect to store 32 points in 1 element, the partition in the right must be the same in the left :
for aa=1:length(X)-32 %scans every row of numbers
output(aa+(0:31)) = fft(X(aa + (0:31)));
end
output is complex vector.
Greg Heath
le 18 Mar 2014
0 votes
output(aa) is a scalar
output(aa,:) is a row vector
Hope this helps.
Thank you for formally accepting my answer
Greg
1 commentaire
Youssef Khmou
le 18 Mar 2014
this is another option to store nx32 matrix like a spectrogram.
Catégories
En savoir plus sur Fourier Analysis and Filtering dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!