如何从信号中提取精确的频率?

时间:2018-04-25 16:14:19

标签: python signal-processing fft

我有一维信号阵列。此数组包含有关我要使用public class MySketch extends PApplet{ Thing thing = new Thing(this); public void draw(){ thing.draw(); } } public class Thing{ PApplet mainSketch; public Thing(PApplet mainSketch){ this.mainSketch = mainSketch; } public void draw(){ mainSketch.ellipse(100, 100, 100, 100); } } 分析的某些功能的信息。

作为一个例子,我尝试了以下内容:

我的函数应该是简单的正弦波np.fft,理论上当我通过这个函数放入一个输入数组时,我会得到一个信号数组,当用fft转换时应该告诉我那个主要组件信号是(伪代码)lambda x : sin(x)

到目前为止,我无法从这里得到任何答案,所以我提出了这个问题。

现在我的问题:如何从信号中获得“原始”正弦分量权重?

这就是我被困住的地方:

signal = 1* sin(x)

1 个答案:

答案 0 :(得分:1)

即使此处显示了您的x变量,我认为您还没有生成定期函数。这对我来说很好:

import numpy as np
x=np.linspace(0,np.pi*2,100,endpoint=False)
y=np.sin(x)
yf=np.fft.rfft(y)

输出

 (-1.5265566588595902e-16+0.0j)
 (-1.8485213360008856e-14+-50.0j)
 (5.8988036787285649e-15+-3.4015634637549994e-16j)
 (-1.0781745022416177e-14+-3.176912458933349e-15j)
 (6.9770353907875146e-15+-3.6920723832369405e-15j)

唯一没有虚数的是模式1。