在0 Hz处产生峰值的非稳态温度数据的FFT

9个观点(过去30天)
你好,
我有一个以50赫兹采样120秒的数据。当我应用fft时,主导频率似乎是0赫兹,我最初认为它实际上可以很好。然而,当我对从实验中获得的不同组数据应用相同的fft时,我在0 Hz处得到了相同的峰值,这似乎不正确,因为我希望它显示相对较高的频率(ies)(这是由于实验的性质,在该实验中获取的是不稳定的温度数据,而第二组数据预计显示某种形式的周期性)。
正如你可以在下面的代码中看到的,DC偏移被“趋势”删除,并应用了低通滤波器(即使在低通滤波器之前,结果也是一样的)。
请您看一下代码(数据也附在附件中),有任何可能的更正或建议吗?如果代码一切正常,我将欣赏一些关于频率分析结果在这个特定情况下的物理意义的注释。
最好的
Fs = 100;采样频率
T = 1/Fs;采样周期
dt = 0:T:120-T;%时间矢量
nfft =长度(S2TR3_0);FFT的长度
^nextpow2(nfft);
S2TR3_0 =趋势(S2TR3_0);
数字
情节(S2TR3_0)
fy = fft(S2TR3_0,nfft2);
Fy = Fy (1:nfft2/2);
xfft = Fs.*(0:nfft2/2-1)/nfft2;
情节(xfft、abs(年度/ max(年度)));
%低通滤波器
cut_off = 2/Fs/2;
订单= 256;
H = fir1(order,cut_off);
con = conv(S2TR3_0,h);
数字
情节(con);
Fh = fft(h,nfft2);
Fh = Fh (1:nfft2/2);
Fh = Fh ';
Mul = fh.*fy;
数字
情节(abs (mul));
3评论
丹尼尔米
丹尼尔米 2020年4月25日
不,采样率和Fs是一样的。您考虑的是奈奎斯特速率,它是Fs的一半,通常用于过滤(如使用cut_off = 2 / (Fs/2))。
对于第二个评论,他说他可以在时域数据中直观地识别出一个潜在的0.1 Hz振荡。0.1 Hz表示每10秒振荡一次。

登录发表评论。

接受的答案

丹尼尔米
丹尼尔米 2020年4月25日
编辑:丹尼尔米 2020年4月25日
数据看起来没问题。你应该使用 semilogy 为了更好地可视化更高的频率。你的数据显示典型的1/f噪声模式,可见白色和粉色噪声占主导的数据。(图1)。
你也可以试着去掉1/f曲线 梯度 对于这些数据,这是一个粗略的方法。(图2)
比较这些 semilogy 用周期数据绘制图表,看看现在是否能发现差异。
3评论
Oguzhan米
Oguzhan米 2020年4月28日
编辑:Oguzhan米 2020年4月28日
丹尼尔,你好,
我已经研究了您在这里分享的代码的细节一段时间了,我对符号学和梯度图生成的结果有一些疑问。首先,请查看所附的图表(如果您愿意,还可以查看数据)。此外,请容忍我,因为我试图从所有这些意义。
1-看两个梯度图,250rpm的主要频率是0.75,600rpm的主要频率是0.36。考虑到这里的物理性质,这些结果非常合理。(在两个测量的特定测量点,250转/分预计会比600转/分显示更多的振荡,所以这里都很好。)
我想知道如何解释显性频率内容的数量。如你所见,在每分钟250转的时候很少有峰值,而在每分钟600转的时候有2-3个明显的峰值。
2-为什么说梯度法比较难?
3-看两个符号学图,频域图的解释是什么?我看不出250和600 RPM之间有什么区别,因为两个频率峰值都是0hz。
4-在使用渐变代码时,有什么需要注意的吗?
多谢。

登录发表评论。

更多答案(0)

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!