MATLAB Fourier Series: Evaluate & Tabulate 1st 8 Terms

Click For Summary

Discussion Overview

The discussion revolves around using MATLAB to evaluate and tabulate the first 8 terms of a Fourier series. Participants explore methods for calculating Fourier coefficients and reconstructing functions using numerical techniques, including discretization and numerical integration.

Discussion Character

  • Technical explanation
  • Mathematical reasoning
  • Homework-related

Main Points Raised

  • One participant expresses uncertainty about how to use MATLAB for Fourier series after finding coefficients by hand.
  • Another participant suggests discretizing the function over a large number of points and using the inverse fast Fourier transform (ifft) to obtain coefficients.
  • A method for reconstructing the function in MATLAB using a for loop is proposed, starting with the zeroth coefficient and adding terms iteratively.
  • A different approach is mentioned that involves numerical integration to find coefficients, but the participant encounters a "dimension mismatch" error in MATLAB.
  • A participant shares a code snippet for numerical integration but expresses concern about the computational efficiency of this method.

Areas of Agreement / Disagreement

Participants do not reach a consensus on the best method for evaluating the Fourier series in MATLAB, as different approaches are discussed without resolution of their effectiveness or efficiency.

Contextual Notes

Participants mention limitations related to discretization and numerical integration methods, including potential computational inefficiencies and issues with MATLAB's handling of dimensions.

Who May Find This Useful

This discussion may be useful for students or practitioners working with Fourier series in MATLAB, particularly those seeking methods for coefficient calculation and function reconstruction.

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.
 
Thanks anaemic.
 
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:

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 6 ·
Replies
6
Views
7K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 1 ·
Replies
1
Views
6K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
7K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
27K
  • · Replies 4 ·
Replies
4
Views
4K