如何使用近似量在matlab中找到傅里叶系数?

时间:2018-04-10 07:48:41

标签: matlab

我有这个公式在matlab中找到傅立叶级数

  

f(n)=(f(t),exp(jnt))

     

并且内积是:=(1 \ 2 * pi)积分(在pi和。之间)   -pi)(F1 * F2' * DT))

现在我想在matlab中为这个向量(f(t)=t)找到傅立叶系数 其中t是一个长度为1000的向量。

当k = 2时,我需要通过近似量找到2k + 1个傅里叶系数,这意味着n=(-2,-1,0,1,2)然后将其与分析计算进行比较。

这是我到目前为止所做的:

clc

t = linspace(-pi,pi,1000);
f=t;
plot(t,f); hold all;


dt=2*pi/1000;
cnPlusVal=0;
cnMinusVal=0;
FourierS1=0;
FourierS2=0;
k=2;
for l = 1:k
    cnPlusVal=cnPlusVal+f.*exp(-i*l*t)*(dt/2*pi) ;
    cnMinusVal=cnMinusVal+f.*exp(i*l*t)*(dt/2*pi);

    FourierS1=FourierS1+cnPlusVal.*(exp(i*l*t));
    FourierS2=FourierS2+cnMinusVal.*(exp(i*-l*t));

end

现在为了将它与分析计算进行比较我需要绘制forier系列..如何在f的同一图表中做任何帮助?

1 个答案:

答案 0 :(得分:1)

这里有两个问题要处理:

  • 与输出系列相比,您的第一张图的尺度完全不同;
  • 您无法使用系列的限制推断出良好的轴范围,因为它们包含复数。

以下是我建议你的解决方法:

{
  test: /\.worker\.js$/,
  use: {
    loader: 'worker-loader',
    options: {
      inline: true
    }
  }
},

基本上:

  1. 你绘制了傅立叶系列;
  2. 保留图的当前x轴和y轴限制;
  3. 您正确使用hold功能在当前地块上绘制figure(); plot(t,FourierS1); x_lim = get(gca(),'XLim'); y_lim = get(gca(),'YLim'); hold on; plot(t,f); set(gca(),'XLim',x_lim,'YLim',y_lim); hold off; ;
  4. 您将绘图限制恢复为之前的范围。
  5. 这是输出:

    Output