how to plot fourier series in matlab

682 ビュー (過去 30 日間)
omar alblooshi
omar alblooshi 2018 年 3 月 16 日
コメント済み: Rik 2023 年 4 月 29 日
how to plot fourier series in matlab
  5 件のコメント
Salihath
Salihath 2022 年 12 月 15 日
移動済み: Rik 2022 年 12 月 16 日
how to write matlab code for time modulated array
Rik
Rik 2022 年 12 月 16 日
@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.

サインインしてコメントする。

回答 (6 件)

Abraham Boayue
Abraham Boayue 2018 年 3 月 18 日
編集済み: Abraham Boayue 2018 年 6 月 15 日
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 件のコメント
Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi 2020 年 9 月 22 日
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/

サインインしてコメントする。


Abraham Boayue
Abraham Boayue 2018 年 3 月 18 日
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.
  1 件のコメント
Rik
Rik 2022 年 3 月 7 日
Comment posted as flag by @Muhammet Bilgiç:
this guy is great

サインインしてコメントする。


Abhishek Ballaney
Abhishek Ballaney 2018 年 3 月 16 日
https://in.mathworks.com/help/curvefit/fourier.html
  2 件のコメント
Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi 2020 年 9 月 22 日
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 2022 年 1 月 26 日
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.

サインインしてコメントする。


Mohamed Abugammar
Mohamed Abugammar 2019 年 4 月 10 日
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 件のコメント
Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi 2020 年 9 月 22 日
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/

サインインしてコメントする。


Dhiya Eid
Dhiya Eid 2020 年 7 月 20 日
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 件のコメント
Deniz Sezen
Deniz Sezen 2023 年 4 月 28 日
Could you solve that question?
Rik
Rik 2023 年 4 月 29 日
This is an 'answer' from almost 3 years ago. I doubt you will get a response.

サインインしてコメントする。


Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi 2020 年 9 月 22 日
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 件のコメント
taha bandrawala
taha bandrawala 2020 年 9 月 22 日
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 2020 年 12 月 30 日
how to write if i want to solve f(x)=cos(3x) and find the fourier series of f(x)

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCalculus についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by