how to plot fourier series in matlab

how to plot fourier series in matlab

5 Commenti

Have you done the integrals to fined the a0, an and bn? If so, what is the expression you got for the fourier series?
Akira Agata
Akira Agata il 16 Mar 2018
Modificato: Akira Agata il 16 Mar 2018
Regarding the question (1) in the picture, I would recommend try to calculate by hand first, for your better understanding of Fourier transformation of periodic function.
clear all;clc;
syms x n pi
% pi=3.14;
sum=0;
y=x %function you want
a0=(1/pi)*int(y,x,-pi,pi)
% for n=1:5
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi)
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi)
sum=a0/2+(an*cos(n*x)+bn*sin(n*x))
% end
ezplot(x,y,[-pi,pi])
grid on;hold on;
ezplot(x,(sum+a0/2),[-pi,pi])
% https://www.instagram.com/koroshkorosh1/
syms x pi
F =(1/pi) * int(x^2+5*x,'Hold',true)
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi), G = bn
Gcalc = release(G)
Fcalc = int(bn)
clear all;clc;
syms x pi n
% pi=3.14;
sum=0;
y= x + (x^2) ; %function you want
a0=(1/pi)*int(y,x,-pi,pi)
% for n=1:3
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi)
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi)
sum=sum+(an*cos(n*x)+bn*sin(n*x))
% end
% https://www.instagram.com/koroshkorosh1/
ezplot(x,y,[-3.14,3.14]);
grid on;hold on;
ezplot(x,(sum+a0/2),[-3.14,3.14])
% https://www.instagram.com/koroshkorosh1/
Salihath
Salihath il 15 Dic 2022
Spostato: Rik il 16 Dic 2022
how to write matlab code for time modulated array
Rik
Rik il 16 Dic 2022
@Salihath Since your post was not an answer, I moved it to the comment section. Have a read here and here. It will greatly improve your chances of getting an answer.

Accedi per commentare.

Risposte (6)

Abraham Boayue
Abraham Boayue il 18 Mar 2018
Modificato: Abraham Boayue il 15 Giu 2018
Here is what your Fourirer series would like if my calculations were made correctly. An attachment of the solution is also included for your reference. Take care for now.
clear variables
close all
% Fourier series of neither even nor odd function
% Decompose f(x) into even (fe) and odd (fo) functions.
% fe = (f(x) + f(-x))/2, fo = (f(x) - f(-x))/2
N = 500;
L = 4;
xd = -L:2*L/(N-1):L;
y1 = -1/8*xd.^2;
y2 = 1/8*xd.^2;
fo = y1.*(-L<=xd & xd<=0) +y2.*(0<=xd & xd<=L);
fe = 4-xd.^2/8;
f2 = fe + fo;
a0 = 10/3;
% Generate the fourier series of f(x)
y = zeros(1,N);
x = [];
K = 80;
for k = 1:K
ck = 1/(pi*k);
an = (2*L*(-1).^(k+1))*ck^2;
bn = L*(-1).^(k+1)*ck + (2*L*ck^3)*((-1)^k-1);
y = y + (an*cos(pi*k/L*xd)+ bn*sin(pi*k/L*xd)); % For fe and fo
x = [x;y];
end
y = a0 +y;
x = a0 +x;
% Color codes
s = distinguishable_colors(K); % search this function on mathworks
figure
subplot(121) % Plot f(t)
plot(xd,f2,'linewidth',2.5,'color',s(1,:))
line(xlim,[0 0],'color',s(6,:),'linewidth',3);
line([0 0],ylim,'color',s(6,:)','linewidth',3);
ylim([-.5 4]);
a= xlabel('\itt\rm (seconds)');
set(a,'fontsize',20);
a = ylabel('\itf\rm(\itt\rm)');
set(a,'fontsize',20);
a= title('f(t)');
set(a,'fontsize',14);
grid
subplot(122) % Plot fouries series of f(t);
hold on
q = length(x(:,1));
M = 1:q;
for i = 1:6:q
plot(xd,x(i,:),'linewidth',2.5,'color',s(i,:),'DisplayName',sprintf('S = %1.2f',M(i)))
end
a= title('Fourier series of f(t)');
set(a,'fontsize',14);
a= xlabel('\itt\rm (seconds)');
set(a,'fontsize',20);
a = ylabel('\itf\rm(\itt\rm)');
set(a,'fontsize',20);
line(xlim,[0 0],'color',s(6,:),'linewidth',3);
line([0 0],ylim,'color',s(6,:)','linewidth',3);
legend('-DynamicLegend','location','bestoutside');
grid

1 Commento

clear all;clc;
syms x
pi=3.14;
sum=0;
y=exp(x); %function you want
a0=(1/pi)*int(y,x,-pi,pi);
for n=1:3
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi);
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi);
sum=sum+(an*cos(n*x)+bn*sin(n*x));
end
% https://www.instagram.com/koroshkorosh1/
ezplot(x,y,[-pi,pi]);
grid on;hold on;
ezplot(x,(sum+a0/2),[-pi,pi]);
% https://www.instagram.com/koroshkorosh1/

Accedi per commentare.

Abraham Boayue
Abraham Boayue il 18 Mar 2018

2 voti

The is the solution file, the math is a bit messy, but I assume that you are familiar with the material that you are studying.
Abhishek Ballaney
Abhishek Ballaney il 16 Mar 2018

0 voti

https://in.mathworks.com/help/curvefit/fourier.html

2 Commenti

clear all;clc;
syms x
pi=3.14;
sum=0;
y=exp(x); %function you want
a0=(1/pi)*int(y,x,-pi,pi);
for n=1:3
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi);
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi);
sum=sum+(an*cos(n*x)+bn*sin(n*x));
end
% https://www.instagram.com/koroshkorosh1/
ezplot(x,y,[-pi,pi]);
grid on;hold on;
ezplot(x,(sum+a0/2),[-pi,pi]);
% https://www.instagram.com/koroshkorosh1/
hey abhishek,
what would be the changes in code if y=(pi-x)/2
and the limits are from 0 to 2 pi
like i am trying to make changes in the code by substituiting my values i not happening.
i shall be thankful to you if you resolve my doubt.

Accedi per commentare.

Mohamed Abugammar
Mohamed Abugammar il 10 Apr 2019

0 voti

clc;
close all;
clear all;
dx=0.001;
L=pi;
x=(-1+dx:dx:1)*L;
n=length(x); nquart=floor(n/4);
% define the hat function;
f=0*x;
f(nquart:2*nquart)=4*(1:nquart+1)/n;
f(2*nquart+1:3*nquart)=1-4*[1:500]/n;
plot(x, f,'r','LineWidth', 2); hold on;
%% define the coffeciet
A0=sum(f.*ones(size(x)))*dx;
fFS = A0/2;
for k=1:10
Ak=sum(f.*cos(pi*k*x/L))*dx;
Bk=sum(f.*sin(pi*k*x/L))*dx;
fFS=fFS+Ak*cos(pi*k*x/L)+Bk*sin(pi*k*x/L);
plot(x,fFS);
pause(1); drawnow;
end

1 Commento

clear all;clc;
syms x
pi=3.14;
sum=0;
y=exp(x); %function you want
a0=(1/pi)*int(y,x,-pi,pi);
for n=1:3
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi);
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi);
sum=sum+(an*cos(n*x)+bn*sin(n*x));
end
% https://www.instagram.com/koroshkorosh1/
ezplot(x,y,[-pi,pi]);
grid on;hold on;
ezplot(x,(sum+a0/2),[-pi,pi]);
% https://www.instagram.com/koroshkorosh1/

Accedi per commentare.

Dhiya Eid
Dhiya Eid il 20 Lug 2020

0 voti

Let f(x) be a 2π-periodic function such that f(x)=x2 for x∈[−π,π]. Find the Fourier series for the parabolic wave.
solve it in matlab

2 Commenti

Could you solve that question?
Rik
Rik il 29 Apr 2023
This is an 'answer' from almost 3 years ago. I doubt you will get a response.

Accedi per commentare.

f=@(x)x.*(x>0 & x<-pi)-2*(x/pi+1).*(x>=-pi & x<=-pi/2);
n=50;
k=0:n;
a=1/pi*(integral(@(x)f(x).*cos(k*x),-pi,-pi/2,'ArrayValued',true)+integral(@(x)f(x).*cos(k*x),0,pi/2,'ArrayValued',true));
k=1:n;
b=1/pi*(integral(@(x)f(x).*sin(k*x),-pi,-pi/2,'ArrayValued',true)+integral(@(x)f(x).*sin(k*x),0,pi/2,'ArrayValued',true));
ffun=@(x)a(1)/2+sum(a(2:n+1).*cos((1:n)*x)+b(1:n).*sin((1:n)*x));
x=linspace(0,pi,200);
fx=arrayfun(@(x)ffun(x),x);
plot(x,fx,x,f(x))
% https://www.instagram.com/koroshkorosh1/

3 Commenti

clear all;clc;
syms x
pi=3.14;
sum=0;
y=exp(x); %function you want
a0=(1/pi)*int(y,x,-pi,pi);
for n=1:3
%finding the coefficients
an=(1/pi)*int(y*cos(n*x),x,-pi,pi);
bn=(1/pi)*int(y*sin(n*x),x,-pi,pi);
sum=sum+(an*cos(n*x)+bn*sin(n*x));
end
% https://www.instagram.com/koroshkorosh1/
ezplot(x,y,[-pi,pi]);
grid on;hold on;
ezplot(x,(sum+a0/2),[-pi,pi]);
% https://www.instagram.com/koroshkorosh1/
how to write if i want to solve f(x)=x^3 and find the fourier series of f(x)
how to write if i want to solve f(x)=cos(3x) and find the fourier series of f(x)

Accedi per commentare.

Categorie

Scopri di più su Mathematics in Centro assistenza e File Exchange

Richiesto:

il 16 Mar 2018

Commentato:

Rik
il 29 Apr 2023

Community Treasure Hunt

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

Start Hunting!

Translated by