如何在matlab中绘制这个gibbs-fourier图

如何在matlab中绘制这个gibbs-fourier图,matlab,Matlab,有人能帮我吗,我需要用吉布斯振荡来画这个波浪闭合的牙齿,我有一天要做,我从来没有用Matlab来画 这是我试图为吉布斯振荡波编程的图形: 这就是我所做的,但如果它是这样工作的话,那就不是真的了 clear all; syms x n; f=(-4)*(x-pi); T=2; w0=((2*pi)/T); fb=f*sin(n*w0*x); bn=(2/x)*int(fb,x,0,2*pi); x=0:1/(1000):15; bn_12=bn*sin(n*w0*x); c=1;

有人能帮我吗,我需要用吉布斯振荡来画这个波浪闭合的牙齿,我有一天要做,我从来没有用Matlab来画

这是我试图为吉布斯振荡波编程的图形:

这就是我所做的,但如果它是这样工作的话,那就不是真的了

clear all; 
syms x n; 
f=(-4)*(x-pi); 
T=2; w0=((2*pi)/T); 
fb=f*sin(n*w0*x); 
bn=(2/x)*int(fb,x,0,2*pi); 
x=0:1/(1000):15; 
bn_12=bn*sin(n*w0*x); 
c=1; j=100; 
fs=symsum(bn_12,n,c,j)

有人能帮我一下吗。

现在无法测试此功能,但类似的功能应该可以:

t = -4:0.01:4 %Create numerical vector of time
T = 2; %Period, adjust as suitable
V = 4; %Adjust to appropriate amplitude
w0 = 2*pi/T; %Angular frequency

line = (V/pi) * w0 * t - V; %Start with straight line with correct gradient and y intercept
%Then subtract 2*V for every 2*pi
step = floor((w0 * t) / (2*pi))*2*V; %So step should be a step function that steps up 2V every 2pi
sawtooth = line  - step;

plot(w0*t, sawtooth)

这就是他所展示的,我还有一个问题,如果我想重复波形,就像图中每2pi重复一次一样,应该如何在matlab中编程?很抱歉,这个问题是创建“步骤”时缺少括号。我想除以2π,除以2再乘以π。试试上面编辑过的版本,我在这里测试过了:它可以工作。希望这对您来说是及时的。@Dan下次您可以使用Saturn Fiddles运行MATLAB/Octave代码。请在以下位置查看此图: