複素フーリエ級数 その5

y(t)= e^{\cos(t)} \cos(\sin(t)), y(t+2π)=y(t) のフーリエ級数展開。(周期T=2π)
有周波数f0=1/T=1/2π。

clear; close all; clc;

T=2*pi;
f0=1/T;
dt=0.01;
t=-T/2:dt:T/2;

f=@(t) exp(cos(t)).*cos(sin(t));
y=f(t);
plot(t,y,'DisplayName','original');
hold on;

syms x;
x2 = cos(x)*cos(sin(x));
% c = @(n) 1/T*int(x2*exp((-1j*2*pi*f0*n)*x),-T/2,T/2);
c = @(n) 1/(2*factorial(abs(n)));
c0 = c(0)+1/2;

nmaxs=[1,2,3,4];
for idx=1:length(nmaxs)
    nmax = nmaxs(idx);
    ft=fourier_series_complex(t,f0,c0,c,nmax);
    plot(t,ft,'DisplayName',sprintf('N=%d',nmax));
end
legend();

big;

function ft=fourier_series_complex(t,f0,c0,c,nmax)
ft = 0;
for n=-nmax:nmax
    if n==0
        cn = c0;
    else
        cn = c(n);
    end
    ft = ft + cn*exp(1j*(2*pi*f0*n)*t);
end
end