how to plot fourier series in matlab

800 Ansichten (letzte 30 Tage)
omar alblooshi
omar alblooshi am 16 Mär. 2018
Kommentiert: Rik am 29 Apr. 2023
how to plot fourier series in matlab
  5 Kommentare
Salihath
Salihath am 15 Dez. 2022
Verschoben: Rik am 16 Dez. 2022
how to write matlab code for time modulated array
Rik
Rik am 16 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (6)

Abraham Boayue
Abraham Boayue am 18 Mär. 2018
Bearbeitet: Abraham Boayue am 15 Jun. 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 Kommentar
Korosh Agha Mohammad Ghasemi
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/

Melden Sie sich an, um zu kommentieren.


Abraham Boayue
Abraham Boayue am 18 Mär. 2018
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 am 16 Mär. 2018
https://in.mathworks.com/help/curvefit/fourier.html
  2 Kommentare
Korosh Agha Mohammad Ghasemi
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/
vikrant rana
vikrant rana am 26 Jan. 2022
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.

Melden Sie sich an, um zu kommentieren.


Mohamed Abugammar
Mohamed Abugammar am 10 Apr. 2019
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 Kommentar
Korosh Agha Mohammad Ghasemi
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/

Melden Sie sich an, um zu kommentieren.


Dhiya Eid
Dhiya Eid am 20 Jul. 2020
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 Kommentare
Deniz Sezen
Deniz Sezen am 28 Apr. 2023
Could you solve that question?
Rik
Rik am 29 Apr. 2023
This is an 'answer' from almost 3 years ago. I doubt you will get a response.

Melden Sie sich an, um zu kommentieren.


Korosh Agha Mohammad Ghasemi
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 Kommentare
taha bandrawala
taha bandrawala am 22 Sep. 2020
how to write if i want to solve f(x)=x^3 and find the fourier series of f(x)
Gülcan söm
Gülcan söm am 30 Dez. 2020
how to write if i want to solve f(x)=cos(3x) and find the fourier series of f(x)

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by