# Sum of fourier series:

101 views (last 30 days)
Real Name on 6 Jan 2017
Commented: Ale gutierrez on 21 Jun 2018
I just have a quick question. How do I enter the formula shown above? I can't seem to get n = 1, 3, 5, ... I tried different code along the line of this:
syms k x
x = 1/2 + symsum(k^2, k, [1:2:15])
But there is an error message.
Also, on a side note, what's the purpose of syms and the "x" variable shown in the matlab documentation example where I got this code?

John BG on 6 Jan 2017
Edited: John BG on 6 Jan 2017
Philip
the 1st part of Walter's answer has syntax error:
• it's most likely that t will have a higher amount of elements than vector n
• therefore sin(n.*pi.*t) will always find one or more terms (of n) with a numel(n) href = ""</a> numel(t) mismatch
returning error, from the attempted d.*t
.
Let me suggest the following:
L=100;
t=[0:2/L:2];
x=zeros(1,numel(t));
for n = 1:2:15
x=x+ sin(n*pi*t)/n;
end;
x=x+.5/pi
plot(t,x);grid on
.
Increase L to improve signal time resolution.
.
thanks in advance for time and attention
John BG
Ale gutierrez on 21 Jun 2018
I don't understand why you divide x by./2

Walter Roberson on 6 Jan 2017
Easiest is to use a definite sum:
n = 1:2:15;
x = 1/2 + sum( 2./(pi*n) .* sin(n.*pi.*t) );
But you could use
syms n t
x = 1/2 + symsum( 2./(pi*(2*n-1)) .* sin((2*n-1).*pi.*t), n, 1, 8 );
##### 2 CommentsShowHide 1 older comment
Walter Roberson on 7 Jan 2017
For vector t, if you are using R2016b or later,
n = (1:2:15).';
x = 1/2 + sum( 2./(pi*n) .* sin(n.*pi.*t) );
For previous versions,
n = (1:2:15).';
x = 1/2 + sum( bsxfun(@times, 2./(pi*n), sin( bsxfun(@times, n.*pi, t) ) ) );