9

是否有一种算法可用于确定以固定时间间隔采集的数据样本是否近似于正弦波?

4

4 回答 4

18

采用将数据转换为频率表的傅立叶变换(搜索 fft,快速傅立叶变换以获得实现。例如,FFTW)。如果是正弦或余弦,频率表将包含一个非常高的值,对应于您正在搜索的频率以及其他频率的一些噪声。

或者,在几个频率上匹配几个窦性,并尝试使用互相关来匹配它们:你的信号和你试图拟合的窦性之间差异的平方和。当然,您需要在一定频率范围内为 sinussen 执行此操作。而且您需要在沿 x 轴平移鼻窦以找到相位时执行此操作。

于 2009-06-14T09:35:56.073 回答
7

您可以计算傅立叶变换并寻找单个尖峰。这将告诉您数据集在该频率处近似为正弦曲线。

于 2009-06-14T09:36:31.517 回答
0

检查最小二乘法

@CookieOfFortune:我同意,但傅立叶级数拟合在最小二乘意义上是最佳的(正如维基百科文章中所说)。

如果您想首先使用自己的输入数据,请检查 Wolfram Alpha 上的离散傅里叶变换 (DFT)。如前所述,如果您想要快速实现,您应该查看几个FFT 库之一。

于 2009-06-14T09:31:14.573 回答
0

突如其来:您可以利用积分a*sin(t)是的事实a*cos(t)。跟踪数据的最小值/最大值应该让您知道a

于 2009-06-14T09:32:38.297 回答