FFT 未在 MATLAB 中给出预期结果

问题描述 投票:0回答:1

我正在尝试将 FID(自由感应衰减)信号从时域转换为频域,以可视化 NMR 谱。我能够使用 MESTRENOVA 等专用软件打开该文件。所得光谱应如下所示:

NMR预期结果 NMR expected result

但是,当我尝试在 MATLAB 中应用 FFT 时,生成的频谱看起来不同,有点一分为二。我对此缺乏经验,所以也许我在应用傅里叶变换时遗漏了一些理论知识。为此,我按如下方式应用它:

figure(1)
plot(fid_signal)

FID spectra in MATLAB

signal = flipud(fid_signal); %I flip it because it is how it looks in MESTRENOVA
spectrum = fft(signal);

figure(2)
plot(abs(spectrum))

Resulting spectra from the fft

也许有人可以帮助我如何在 MATLAB 上正确应用傅立叶变换?或者也许需要一些我缺少的进一步处理?

matlab fft spectra
1个回答
0
投票
signal = fliplr(fid_signal); %flipud doesn't really matter. but fliplr gets time in the correct direction
spectrum = fftshift(fft(signal));
figure(2);
plot(abs(spectrum));
© www.soinside.com 2019 - 2024. All rights reserved.