使用ezplot绘制傅立叶部分和

时间:2019-02-28 00:46:10

标签: matlab plot fft series

我正在尝试创建一个脚本,以绘制给定多个术语并给出一个函数的傅里叶正弦和余弦序列。 代码如下:

syms x k L n
evalin(symengine,'assume(k,Type::Integer)');

f = (cos((k*pi*x)/L))^2;

% Cosine series

a_0 = @(f,x,L) int(f,x,-L,L); % a0
a_n = @(f,x,k,L) int(f*cos(k*pi*x/L)/L,x,-L,L); % an

fs_cosine = @(f,x,n,L) a_0(f,x,L)/(2*L) + ...
    symsum(a_n(f,x,k,L)*cos(k*pi*x/L),k,1,n); % nth partial sum for cosine series

% Sine Series

b = @(f,x,k,L) int(f*sin(k*pi*x/L)/L,x,-L,L); % bn

fs_sine = @(f,x,n,L)symsum(b(f,x,k,L)*sin(k*pi*x/L),k,1,n); % nth partial sum sine series

% Plot partial sums
ezplot(fs_cosine(f,x,3,1),-1, 1) % n = 3
title('Partial sum with n=2')

我为ezplot输出了错误:

  

在绘制方程式时变量的数量不得超过两个。

查看其他帖子后,我实质上了解了问题所在。 n = 3时的傅立叶余弦级数在方程式中仍为L,k和x。

fs_cosine_3 = (L*sin((2*pi*k)/L))/(4*k*pi) - (4*L*cos(pi*x)*cos(pi/L)*sin(pi/L))/(- pi*L^2 + 4*pi) + (4*L*cos(2*pi*x)*cos((2*pi)/L)*sin((2*pi)/L))/(- 2*pi*L^2 + 8*pi) - (4*L*cos(3*pi*x)*cos((3*pi)/L)*sin((3*pi)/L))/(- 3*pi*L^2 + 12*pi) + 1/2

我想我有些困惑;我以为我传入了k和L的值,所以不确定为什么仍然显示它们。 任何有关如何解决此问题并使ezplot不会出错的建议,将不胜感激。

0 个答案:

没有答案