MATLAB Fourier Series: Evaluate & Tabulate 1st 8 Terms

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
3 replies · 79K views
morry
Messages
136
Reaction score
0
hey guys, I've got to do some Fourier series work using matlab, but I have no idea what to do.

Ive found the coefficients by hand, but now I need to use MATLAB to evaluate and tabulate the first 8 terms.

I then have to evaluate the series at 1000 points over a certain range.

Does someone know how to go about this?
 
Physics news on Phys.org
Discretize your function over the range to more than 4000 points (say) and store it in a vector.
Then use ifft(vector). You'll get the coefficients (if you want 1000, get the first 1000).

Suppose you have a cosine transform.

f=f0+2*f1*cos*(w*x)+2*f2*cos(2*w*x)+2*f3*cos(3*w*x)+...

ifft will give you these coefficients f0, f1, f2...

If you want to reconstruct the function by yourself in matlab, you'll have to code a for loop.

start with f=f0.

then a variable for from 2:(the number of components you want)
add to f
end;

I hope this is clear. You should do the same thing with the 8 modes you calculated by hand.
 
If I don't discretize my function, then, I have to find the coefficient by numerical integration.

quad(f,-1,1)

where my f depends on n (the index of coefficient). And Matlab just says something like "dimension mismatch". Do you guys know how to deal with it?


I can actually do it like this:

for n=-N:N
fexp=@(x) (x+2).*exp(i*pi*n*x);
c(n+N+1)=quad(fexp,-0.5,0.5);
end

but I don't like to do it like this because this method seems to take a lot of computer time.
 
Last edited: