gpt4 book ai didi

matlab - 使用 MATLAB 对任意图进行傅里叶变换和 FFT

转载 作者:行者123 更新时间:2023-12-02 06:49:28 24 4
gpt4 key购买 nike

我有一个简单的问题,但由于我没有使用 MATLAB 傅里叶变换工具,我需要一些帮助。我有一个从 n 个 Excel 文件中获得的图。该图是在时域中的。绘图的时间范围是 0 到 50 ps。我每 0.5 fs 就有一次绘图 y 分量的数据。基本上该图包含每 0.5fs 打印 100000 个数据。现在我想得到这个图的傅立叶变换。我应该怎么办?以下是我的 Excel 文件的简单格式,其中包含绘制时域图所需的数据。

0       116.0080214
0.0005 116.051128
0.001 116.0939229
0.0015 116.1362197
0.002 116.1776665
0.0025 116.2178118
0.003 116.256182
.
.
.
.
50.0 123.000

第一列是以 ps 为单位的时间。预先非常感谢您的帮助。最好,HRJ

最佳答案

我已经改编了this page寻求解决方案。

    Fs = 100000/50;               % Sampling frequency (in 1/ps)
T = 1/Fs; % Sample time (in ps)
L = 100000; % Length of signal
t = (0:L-1)*T; % Time vector; your first column should replace this

% Sum of a 50 1/ps sinusoid and a 120 1/ps sinusoid
% Your second column would replace y
x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
y = x + 2*randn(size(t)); % Sinusoids plus noise

NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);

close all
subplot(2,1,1)
% Plot your original signal
plot(Fs*t(1:100),y(1:100))
title('Signal Corrupted with Noise')
xlabel('time (fs)')

% Plot single-sided amplitude spectrum.
subplot(2,1,2)
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)')
xlabel('Frequency (1/ps)')
ylabel('|Y(f)|')

Output of the FFT

关于matlab - 使用 MATLAB 对任意图进行傅里叶变换和 FFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31009956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com