I want to Fourier transform the 'y' function using Euler's formulas.

1 次查看(过去 30 天)
'y' is
x = [-pi:pi/10:pi];
sum=0;
y1=0;
for k=1:100
y1=(((cos(k*pi)-1).*cos(k*x))./(-pi*(k^2)));
sum=sum +y1;
end
y=sum+pi/2;
figure(1)
plot(x,y)
axis([-4 4 0.5 2.7])
I want to Fourier transform the 'y' function using Euler's formulas.
One cycle is 2pi. I'm not sure how to express this in Matlab. I need help.

采纳的回答

Mathieu NOE
Mathieu NOE 2023-12-1
here you are my friend :
clc
x = [-pi:pi/10:pi];
sum=0;
y1=0;
for k=1:100
y1=(((cos(k*pi)-1).*cos(k*x))./(-pi*(k^2)));
sum=sum +y1;
end
y=sum+pi/2;
% fourier series
a0 = trapz(x,y)/(2*pi);
m = 8;
for n = 1:m
a(n) = trapz(x,y.*cos(n*x))/pi;
b(n) = trapz(x,y.*sin(n*x))/pi;
end
% let's prove the fourier sum approximate y
yf = a0;
for n = 1:m
yf = yf + a(n)*cos(n*x) + b(n)*sin(n*x);
end
figure(1)
plot(x,y,'b',x,yf,'*--r')
axis([-4 4 0.5 2.7])

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by