# how can I plot the fourier series of this function by calculating the coeffcients and for different n?

7 views (last 30 days)
Niloufar on 6 Oct 2022
Commented: Niloufar on 6 Oct 2022
I don't want to use loop in my code because the speed is low.this is my code but it doesn't work:
x = linspace(-2*pi, 2*pi, 1000);
a0 = 1/2;
n = 5;
an = zeros(1,n);
for i = 1:n
if mod(4,i)==1
an(1,i) = 2/i*pi;
elseif mod(4,i)==3
an(1,i) = -2/i*pi;
end
end
fs = zeros(1,n+1);
fs(1,1) = a0;
for i = 2:n+1
fs(1,i) = an(1,i)*sin(i*x);
end
plot(x,fs,'color','r');

Torsten on 6 Oct 2022
Edited: Torsten on 6 Oct 2022
Note that the function f you defined is even - thus it must be cos(n*x), not sin(n*x) that appears in the Fourier series.
x = linspace(-2*pi, 2*pi, 1000).';
a0 = 1/2;
n = 1000;
an = zeros(1,n);
for i = 1:n
if mod(i,4)==1
an(i) = 2/(i*pi);
elseif mod(i,4)==3
an(1,i) = -2/(i*pi);
end
end
f = a0 + sum(an.*cos((1:n).*x),2);
plot(x,f)
Niloufar on 6 Oct 2022

Walter Roberson on 6 Oct 2022
an = zeros(1,n);
i = 1 : n;
##### 2 CommentsShowHide 1 older comment
Niloufar on 6 Oct 2022
I wanted to calculate the coefficient of the fourier series but this code gives the wrong answer.an should be zero when n is even and for n=4k+1 should be 2/(n*pi) and for n=4k+3 should be -2/(n*pi) and after that I want to plot the fourier series until desired n. I mean use this formula for calculating the fourier series

### Categories

Find more on Fourier Analysis and Filtering in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by