【问题标题】:How to fit data with square wave in Python?如何在 Python 中用方波拟合数据?
【发布时间】:2020-12-04 18:06:05
【问题描述】:

我有以下数据:

Experimental data and ideal fitting function

我一直在尝试用一系列方脉冲来拟合它,我将其定义为:

def f(x, x0, a, b, c):
    sq = a * np.ones_like(x)
    sq[(x>x0) * (x<x0+b)] = c
    sq[(x>x0+2*b) * (x<x0+3*b)] = c
    sq[(x>x0+4*b) * (x<x0+5*b)] = c
    return sq

问题是用curve_fit拟合我得到一条直线或方形脉冲,其最大值和最小值位于数据的最大值之上。这怎么可能?如何正确实施?

【问题讨论】:

标签: python data-science physics data-science-experience


【解决方案1】:

您的最终目标是什么,您的方法是最好的方法吗?我认为您可以对数据进行傅立叶变换以找到方波傅立叶系数。取前 n 个分量并绘制结果将为您提供一条方形的周期性曲线,并且“适合”数据。

【讨论】:

  • 我的目标是估计顶部区域和底部区域的平均值。显然这可以手动完成,但我有几个这样的图,这些图具有不同参数的方波。
猜你喜欢
  • 2016-11-07
  • 2015-02-09
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多