难以根据给定数据绘制正确的 2D 函数 IFFT

Difficulty plotting correct IFFT of 2D function from given data

我正在尝试将二维数据集读入矩阵、绘制矩阵以及绘制矩阵的 IFFT。数据为128x2数据集,第一列(A)为频率 vs 第二列(B)为振幅

不幸的是,绘制数据矩阵并没有绘制出正确的波形。此外,IFFT 似乎也不正确。

waves = csvread('10cm.txt');

A = waves(:,1);
B = abs(waves(:,2));

Matrix = [A B];

waves_transform = abs(ifft2(waves));

figure, plot(waves);
figure, plot(waves_transform)

当我读取每一列数据并绘制 A vs B 时,数据的波形是正确的,但数据的 ifft2 是不正确的。我需要对读入的二维数据进行适当的傅里叶逆变换。

waves = csvread('10cm.txt');

A = waves(:,1);
B = abs(waves(:,2));

Matrix = [A B];

waves_transform = abs(ifft2(Matrix));

figure, plot(A,B);
figure, plot(waves_transform)

waves & waves_transform

有谁知道为什么读取数据并绘制它与读取每一列并绘制它会产生不同的图表?另外,谁能帮我正确地对二维数据进行IFFT?

10cm.txt 此处的数据文件:http://pastebin.com/0t0TwVvC

根据 MA​​TLAB 文档,如果您执行 plot(Y) 并且 Y 是矩阵,则 plot 函数会绘制 Y 的列与其行号的关系图。 x 轴刻度范围从 1 到 Y 中的行数。

所以,在你的情况下你必须这样做:

plot(waves(:,1), waves(:,2))

我还可以为 python

建议一个免费且 IMO 更好的 numpy