【发布时间】:2020-04-12 08:43:51
【问题描述】:
我必须评估汽车的振动。在这次试验中,我使用了加速度计。收集的数据取决于时间。
我需要通过 FFT 将数据从时域转换到频域。不幸的是,我对编码和 FTT 不太熟悉,但是我找到并使用了下面的代码。
对我来说奇怪的是,最大高点为 0Hz。请看附图。 无论如何,有没有办法让图表更明显?例如,在 x 轴上截取一个系列,只显示 200Hz 以下的数据。
clc
A=xlsread('50_dirt_road.xlsx');
t=A(:,9);
s=A(:,8);
Ts = mean(diff(t)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyquist Frequency
L = numel(t); % Signal Length
sm = s - mean(s); % Mean-Corrected Signal (Eliminates 0 Hz Offset)
FTs = fft(sm)/L; % Fourier Transform
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:numel(Fv); % Index Vector
[MaxV,idx] = max(abs(FTs(Iv))*2); % Maximum V & Index
Freq = Fv(idx); % Frequency Of Maximum V
figure
plot(Fv, abs(FTs(Iv))*2)
grid
text(Freq, MaxV, sprintf('\\leftarrow %.4f G, %.0f Hz', MaxV, Freq), 'HorizontalAlignment','left')
xlabel('Frequency (Hz)')
ylabel('Amplitude')
请你再检查一遍好吗?我的变量定义如下:
s:测量的“G”值。共 3395 个测量值。t:时间。每个值在0.001s后记录,共3.395s。
【问题讨论】:
-
我看到你之前放了一个链接,但我太忙了,没时间查看。如果你把它放上来,我可以把数据拉下来,看看我能不能让它工作,然后我会分享脚本
标签: signal-processing fft octave vibration