Need help plotting Fourier series in matlab

Click For Summary
SUMMARY

This discussion focuses on plotting Fourier series in MATLAB, specifically the equation y=∑(3sin(2πnx))/(nπ) over the domain -2π ≤ x ≤ 2π. The user provided MATLAB code to visualize the series but encountered issues with the output not resembling a Fourier series. It was concluded that the equation may be incorrect, as it tends to zero as n approaches infinity, which is not characteristic of a proper Fourier series. The user was advised to revisit the derivation of the equation.

PREREQUISITES
  • Understanding of Fourier series concepts
  • Familiarity with MATLAB programming
  • Knowledge of plotting functions in MATLAB
  • Basic mathematical skills for evaluating series
NEXT STEPS
  • Review the derivation of Fourier series equations
  • Learn about MATLAB's linspace() function for generating points
  • Explore MATLAB's plotting functions for visualizing mathematical series
  • Study convergence properties of Fourier series
USEFUL FOR

Students learning Fourier series, MATLAB users interested in mathematical visualization, and educators teaching signal processing concepts.

BigDave11
Messages
9
Reaction score
0
Hi all my first post as I need to seek help!

I have just learned some simple Fourier series stuff and would like to be able to plot my answers in matlab.

Assuming this is correct I was wondering if someone would be able to walk me through plotting this equation in Matlab?

y=\sum_{n=1}^\infty (3sin(2∏nx))/(n∏)
 
Physics news on Phys.org
Here is some quick and dirty code to plot this over the domain -2\pi \le x \le 2\pi for n up to 10,000

Code:
%Use linspace() for the domain, it generates 100 evenly spaced points over
%a specified interval
x = linspace(-2*pi,2*pi);

%Define your function anonymously with two variables, X and N
y = @(X,N) (3./N*pi)*sin(2*pi*N*X);

%Loop through the n values and evaluate the function over the domain x for
%each value of n. Store those values in the rows of Y such that the first
%row of Y is n=1, the second is n=2, etc...
for n = 1:10000
Y(n,:) = y(x,n);
end

%Plot all rows of Y
figure;
plot(x,Y)

%Plot the summation over n
figure(2);
plot(x,sum(Y))

See the plots in the attached files.
 

Attachments

  • 1.jpg
    1.jpg
    21.9 KB · Views: 734
  • 2.jpg
    2.jpg
    37.8 KB · Views: 699
Maybe it is the linespace that is the problem is there a way to evenly space more than 100 points in the domain?

edit: no come to think of it I don't think this will help do you know why this doesn't resemble a Fourier series?
 
Last edited:
linspace(-2*pi, 2*pi, N) gives N evenly spaced points.
 
Wow just realized the equation must be wrong as it tends to 0 as n tends to infinity which should not happen.
 
So where did you derive the equation from? It sounds like you need to start over.
 
yeh it was a simple example used to teach me about Fourier series. I thought would be fun to see how the series works out but I fear I may have done it wrong

f(x)=3 ; 0<x<1
=-3 ; -1<x<0

Sorry about the formatting still new to me
 

Similar threads

  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 22 ·
Replies
22
Views
4K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 12 ·
Replies
12
Views
3K