Hi all,(adsbygoogle = window.adsbygoogle || []).push({});

I'm new to Matlab, and I'm trying to evaluate a function via fast fourier transform using Matlab, then compare the values at each gridpoint with the exact value.

The function is

y1 = cos(x)-20*sin(5*x)+6*sin(12*x)

on the interval [-pi, pi], using n = 9 gridpoints.

I first tried to find the Fourier coefficients F1:

n = 9;

x = -pi:(2*pi/(n-1)):pi;

y1 = cos(x)-20*sin(5*x)+6*sin(12*x);

F1 = fft(y1);

I checked the values of my coefficients with the formula given by my teacher:

F1_k = SUM[y1(x_j)*exp(pi*i*j*k/m)]

where m = n/2, k = 0, 1, ..., 2m-1, and SUM is from j = 0 to j = 2m-1.

The coefficients matched.

Then I tried to compute the function F(x) at each grid point x_j using the formula

F(x) = (1/m)*SUM(F1_k*exp(i*k*x))

where SUM is from k = 0 to 2m-1

(This is the formula given by my teacher.)

for j=1:1:n

sum=0;

for k=1:1:n

sum=sum+(F1(k)*(exp(i*(k-1)*x(j))));

end

F(j)=sum/(n/2);

end

However, the values for F(x) that I got were

-0.2222 -14.8231i

-15.3243 +36.4597i

22.2864 -22.5086i

-4.6765 + 1.8450i

-2.0000 + 0.0000i

-30.6032 -12.5842i

26.5710 +26.7933i

-7.6067 -17.8277i

-0.2222 -14.8231i

instead of the actual values

-1

-14.849242

20

-13.435029

1

14.849242

-20

13.435029

-1

What is wrong with my program?

Thank you.

Regards,

Rayne

**Physics Forums | Science Articles, Homework Help, Discussion**

Dismiss Notice

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Homework Help: Evaluate a function via fast fourier transform using Matlab

**Physics Forums | Science Articles, Homework Help, Discussion**