How to Plot a Fourier Series?

856 ビュー (過去 30 日間)
Alexander McGlone
Alexander McGlone 2020 年 10 月 24 日
編集済み: Bhavik Jain 2022 年 2 月 7 日
Hi,
I was given a half range expansion function f(x) = 0, 0<x<2 and f(x) = 1, <2<x<4.
I was asked to solve for the Fourier cosine series and Fourier sine series and then plot each.
I solved by hand:
Fourier Cosine Series:
a0 = 1/2
an = -2/(n*pi)*sin((n*pi)/2)
f(x) = 1/2 + sum(an*cos((n*pi*x)/4)) from n =1 to infinity
Fourier Sine Series:
bn = [2/(n*pi)]*[(-1)^(n+1) + cos((n*pi)/2)]
f(x) = sum(bn*sin((n*pi*x)/4))
I'm fairly new to Matlab and very unexperienced, where I'm having dificulty is plotting these functions against x, say x = [-24 24] and n=1:1:50 or until square waves appear. I gained some experience plotting their partial sums using fplot, but that approach does not appear to work here. It isn't feasible to plot the 50th partial sum. I've seen more arrayfun usage online, but I do not understand it whatsoever.
Any help and explanation would be greatly appreciated. Thanks in advance.

採用された回答

Alan Stevens
Alan Stevens 2020 年 10 月 24 日
編集済み: Alan Stevens 2020 年 10 月 24 日
Here's the cosine version. You can add the sin version and play with different ranges for n:
x = -24:0.1:24;
n = 10;
ycos = fcos(x,n);
plot(x,ycos),grid
xlabel('x'),ylabel('cos function')
% Define functions
function f = fcos(x,n)
f = zeros(1,numel(x));
f = 1/2;
for i = 1:n
an = -2*sin(i*pi/2)/(i*pi);
f = f + an*cos(i*pi*x/4);
end
end
This results in
  1 件のコメント
Alexander McGlone
Alexander McGlone 2020 年 10 月 25 日
Thank you!

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

その他の回答 (1 件)

Bhavik Jain
Bhavik Jain 2022 年 2 月 7 日
編集済み: Bhavik Jain 2022 年 2 月 7 日
bn=[2/(n*pi)]*[(x^2)^(n+1)+cos((n*pi)/2)]

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by