FFT WITHOUT Built-in functions

13 visualizzazioni (ultimi 30 giorni)
Camille Pham
Camille Pham il 7 Mag 2022
Spostato: DGM il 8 Gen 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!

Risposta accettata

Dyuman Joshi
Dyuman Joshi il 7 Mag 2022
Modificato: Dyuman Joshi il 7 Mag 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 Commenti
Camille Pham
Camille Pham il 7 Mag 2022
Spostato: DGM il 8 Gen 2024
Without the fft built in function.
Dyuman Joshi
Dyuman Joshi il 7 Mag 2022
@Camille Pham, y and z are obtained without using fft(), I just used fft() to show the comparison.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Fourier Analysis and Filtering in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by