我有大约100个数字的列表。我知道数据符合某种正弦函数。我想画一些曲线。理想情况下,我想提取振幅、相位和频率。有什么建议或想法吗?在
例如: 输入列表=[x1,…,x100]
我在试着找出一些函数
def fitCurve(inputList):
A = amplitude(inputList)
#calculate frequency
#calculate phase
def amplitude(data):
return (max(data) - min(data))/2
def frequency(data):
#my first intuition is to find the first peak, but I'm not sure how to find the second one
def phase(data):
#not sure what to do here at all...
我不会给你代码,但这可能是我会尝试的。成功在很大程度上取决于你的数据有多好。 最后一步,要获得振幅、频率和相位的最终值,可以使用一些优化框架。只是这通常需要一个很好的初始解。 但是,如果我们假设数据是以
x(t) = A*sin(2*pi*f*t + phi) + w(t)
的形式生成的,其中w(t)
是加性的、零均值的噪声,则可以使用以下方法:相关问题 更多 >
编程相关推荐