用gnuplot进行傅立叶展开

时间:2019-02-11 11:15:49

标签: gnuplot continuous-fourier

计算完函数的傅立叶系数后,我想绘制该系列的第一项。但是,我无法获得正确的结果……

正确绘制图形无关紧要 https://www.desmos.com/calculator/dh84khkc1o 使用下面的gnuplot代码

set terminal pngcairo
set output 'Fourier.png'
set samples 2000;

aa = -pi/2;
bb = pi/2;
repete(x) = (x-(bb-aa)*floor((x-aa)/(bb-aa)));
ff(x) = (-pi/2<x) && (x<0) ? x-cos(x)+1 : ((0<=x) && (x<pi/2)) ? x+cos(x)-1: 0;
fourier(k, x) = ((1-pi/2)*((-1)**k)+1/(4*k**2-1)) * sin(2*k*x) / k;

plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(k,x)

我有间断点,但是“ cos”部分变成一条直线。

enter image description here

1 个答案:

答案 0 :(得分:2)

因为调用Fourier(k,x)时的“ k”是迭代器的索引变量[k = 1:50],所以它是整数。但是,傅里叶函数是真实的。通过将plot命令修改为

可以修复您的绘图
 plot ff(repete(x)), 2/pi*sum [k=1:50] fourier(real(k),x)