MATLAB Answers

0

Where is the problem with my code. it never ends !!

Asked by geometry geometry on 18 May 2018
Latest activity Answered by Geoff Hayes
on 18 May 2018

What is the problem with the following code?

It calculates the exponential coefficients fo fourier series of periodic function f(t).

when I run it the compilation never ends !! and I must close matlab and run it again.

function [an]=fc(f,T)
syms t n
n=-20:1:20;
an=(1/T)*int(f*exp(-1i*n*2*pi*t/T),t,0,T);
end
syms t  n
 f=rectangularPulse(t/4)*(abs(t)-1);
%f=rectangularPulse(t);
% f=sin(t);
 Y=fc(f,20);
subplot(211)
stem(-20:1:20,abs(Y));
ylabel('|an|')
grid;
subplot(212)
stem(-20:1:20,angle(Y));
ylabel('<an')
grid;

  0 Comments

Sign in to comment.

1 Answer

Answer by Geoff Hayes
on 18 May 2018

geometry - your function appears to be recursive

function [an]=fc(f,T)
syms t n
n=-20:1:20;
an=(1/T)*int(f*exp(-1i*n*2*pi*t/T),t,0,T);
end
syms t  n
f=rectangularPulse(t/4)*(abs(t)-1);
%f=rectangularPulse(t);
% f=sin(t);
Y=fc(f,20);    % <------------------

So it continually calls itself and without a stopping condition, it will call itself forever (!).

  0 Comments

Sign in to comment.