首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将傅立叶分析应用于736个温度读数的向量(3个月内每3小时一个)

如何将傅立叶分析应用于736个温度读数的向量(3个月内每3小时一个)
EN

Stack Overflow用户
提问于 2013-11-03 07:13:37
回答 1查看 227关注 0票数 0

我有一个736个温度读数的向量,6-8月之间每3个小时一个,因此6-8月每天8个。

我需要对这个向量进行傅立叶分析。我已经将它正常化了。我到处搜索(因为我真的不懂matlab),我看到的所有这些分析都有迹象表明,你已经有了一个采样来比较它(比如1000 up不断出现)。采样间隔为3小时,采样时间为90天。我不知道该怎么做。任何帮助都会很有帮助。

谢谢你,我已经绝望了。

EN

回答 1

Stack Overflow用户

发布于 2013-11-03 09:50:14

FFT运算实际上与输入采样率无关。只有在执行FFT以解释输出频率之后,才使用采样率。

所以,基本上你可以对你的向量进行FFT,它会将离散时刻的736个样本转换成离散频率下的736个样本。这些频率由下式给出

代码语言:javascript
运行
复制
F(k) = Fs * k / Nfft

其中Fs是采样率,Nfft是FFT点数。FFT的输出向量将是复杂的。在大多数情况下,您需要采用输出的大小来产生与每个频率上的能量量成比例的值。

MATLAB代码可能如下所示:

代码语言:javascript
运行
复制
x = %your input vector
Nfft = length(x);
Fs = 1 / (60 * 60 * 3);  %1 / 3hrs
Xk = fft(x);
k = 0 : Nfft-1;
Fk = Fs * k / Nfft;  %frequency vector

%plot frequency versus magnitude in dB scale
Plot(Fk, 20 * log10(abs(Xk)));

您还需要注意其他几个问题:

假设你的输入是实数的,

  • 输出向量的后半部分将是前半部分的镜像。在这种情况下,只需要输出的前半部分,提供0到Fs/2
  • Fs /2的频率,奈奎斯特速率是以Fs采样的信号可以表示的最大频率。因此,例如,如果在两个样本之间的3小时内存在温度波动,则3小时的采样周期无法准确捕获此信息。

我遗漏了很多细节,但我只是试图给你足够的信息来获得频率-震级图,而不会让事情变得不必要地复杂。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19747977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档