FFT WITHOUT Built-in functions

63 vues (au cours des 30 derniers jours)
Camille Pham
Camille Pham le 7 Mai 2022
Déplacé(e) : DGM le 8 Jan 2024
How do I write the matlab code for fourier transform without the built-in function (fft). NOT DFT! Decimation in time radix-2fft please!

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 7 Mai 2022
Modifié(e) : Dyuman Joshi le 7 Mai 2022
Using the definition given at the end of FFT document
%x is your input
x=[1 2 3 4];
fft(x) %using for comparison
ans =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 + 0.0000i -2.0000 - 2.0000i
Method 1
%loop approach
for j=1:numel(x)
y(j)=sum(arrayfun(@(z) x(z)*exp(-i*2*pi*(j-1)*(z-1)/numel(x)),1:numel(x)));
end
y
y =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 0.0000i -2.0000 - 2.0000i
Method 2
%vector approach
l=length(x);
z = x*exp(-2j*pi/l*(0:l-1).'*(0:l-1))
z =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 0.0000i -2.0000 - 2.0000i
  2 commentaires
Camille Pham
Camille Pham le 7 Mai 2022
Déplacé(e) : DGM le 8 Jan 2024
Without the fft built in function.
Dyuman Joshi
Dyuman Joshi le 7 Mai 2022
@Camille Pham, y and z are obtained without using fft(), I just used fft() to show the comparison.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Fourier Analysis and Filtering dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by