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)
我必须在 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)