Octave/Matlab 中的 FFT,绘制 cos(x) 并近似为

FFT in Octave/Matlab, Plot cos(x) and approximate with

我必须在 Octave 中绘制练习 cos(x) 并通过

对其进行插值

我用

绘制了 cos(x)
fplot("[cos(x)]", [0, 2*pi])

n 是 [0, 2*pi] 上的等距支撑点,我用

计算
x = zeros(n,1);
for i=1:n
    x(i,1)= (-1) + (i-1/2)*(2/n);
end

如何绘制项来近似它?

我也很困惑到底是什么问题。我猜你想绘制那个公式。

有一个行向量k = 0:(n/2 - 1)(假设n偶)。

然后您需要 d 系数作为相同长度的行向量。 (虽然我不知道你从哪里得到它们)

然后定义你的向量x(列向量由行向量转置而成,例如x = x.'

函数的左项是

leftterm = sum(d .* exp(i * x * k), 2)

正确的术语:

rightterm = sum( fliplr(d) .* exp(- i * x * (k.+1)), 2)

他们总共给出:

f = sum(d .* exp(i * x * k) + fliplr(d) .* exp(- i * x * (k .+ 1)), 2)

你用它来绘制:

plot(x,f)