I made some posts about Discrete Fourier Transform (DFT), they're here.

But, I received a comment asking me how to do a function that implements DFT.

Let's only write a script, not optimized, that calculates DFT:

function X = DFT(x)

n = length(x); //number of elements in 'x'

omega = exp(-2*%pi*%i/n);

j=0:(n - 1);

F=omega.^(j'*j); //Fourier matrix

X = F*x(:); //X = DFT(x)

endfunction;

If anyone wants to try the showed function, you could do like this:

N = 10;

x = rand(N, 1);

X1 = DFT(x)

X2 = dft(x, -1) // dft(.) function uses flag = -1 for direct transform and flag = 1 for inverse transform

X3 = fft(x)

Now, look the values of X1, X2 and X3.

Did I help?

## 2 comments:

Very useful!

Valeu!

Very very helpful. thanks

Post a Comment