Azzera filtri
Azzera filtri

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

1 visualizzazione (ultimi 30 giorni)
'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.

Risposta accettata

Mathieu NOE
Mathieu NOE il 1 Dic 2023
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])
  1 Commento
Dyuman Joshi
Dyuman Joshi il 1 Dic 2023
This one is duplicate of the question I linked. And it would be better if all discussion was on a single thread.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by