是否有一种算法可用于确定以固定时间间隔采集的数据样本是否接近正弦波?
答案 0 :(得分:16)
采用傅里叶变换将数据转换为频率表(搜索fft,快速傅立叶变换,用于实现。例如,FFTW)。如果它是正弦或余弦,频率表将包含一个非常高的值,对应于您正在搜索的频率和其他频率的噪声。
或者,在几个频率上匹配几个正弦,并尝试使用互相关匹配它们:信号与您试图拟合的窦之间的差异的平方和。当然,你需要在一系列频率上为正弦波做这个。你需要在沿着x轴平移窦以找到相位时这样做。
答案 1 :(得分:7)
您可以计算傅立叶变换并查找单个尖峰。这会告诉您数据集近似于该频率的正弦曲线。
答案 2 :(得分:0)
@CookieOfFortune:我同意,但傅立叶系列拟合在最小二乘意义上是最佳的(如维基百科文章所述)。
如果您想首先使用自己的输入数据,请检查Wolfram Alpha上的Discrete Fourier Transformation (DFT)。如前所述,如果您想要快速实施,您应该查看几个FFT-libraries中的一个。
答案 3 :(得分:0)
射入蓝色:您可以利用a*sin(t)
的积分为a*cos(t)
这一事实。通过跟踪数据的最小值/最大值,您可以了解a
。