You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解离散信号数据的加权中心(杠杆平衡点)及扭矩计算方法

离散信号加权中心(杠杆平衡点)计算方案

一、直接计算平衡点(最高效解法)

杠杆平衡的核心是总力矩为0,推导后可直接得到平衡点的解析公式,无需遍历计算扭矩:

Σ(信号强度wᵢ × (Hertz值xᵢ - 平衡点x₀)) = 0

变形后得到:
x₀ = (Σ(wᵢ × xᵢ)) / Σ(wᵢ)

针对180行数据,不同工具的实现方式:

  • Excel:直接用函数组合计算

    =SUMPRODUCT(A2:A181, B2:B181)/SUM(B2:B181)
    

    (A列为Hertz数据,B列为信号强度)

  • Python(矩阵乘法实现):
    将Hertz和信号强度转为列向量,用矩阵转置点乘完成批量计算:

    import numpy as np
    
    # 替换为你的真实数据
    X = np.array(your_hertz_data).reshape(-1, 1)  # 180×1列向量
    W = np.array(your_signal_strength).reshape(-1, 1)  # 180×1列向量
    
    numerator = W.T @ X  # 矩阵转置后点乘,计算Σ(wᵢ×xᵢ)
    denominator = W.T @ np.ones_like(X)  # 计算Σ(wᵢ)
    balance_point = numerator / denominator
    
    print("平衡点Hertz值:", balance_point[0][0])
    

二、通过扭矩最小值定位平衡点

如果需要通过计算各Hertz点的总扭矩来验证结果,可按以下方式批量实现:

核心逻辑

对每个Hertz点xₖ,总扭矩为所有数据点的信号强度wᵢ × (xᵢ - xₖ)之和,平衡时该总和的绝对值最接近0。

工具实现

  • Excel:在第三列(如C2单元格)输入公式后下拉填充:

    =SUMPRODUCT($B$2:$B$181, $A$2:$A$181 - A2)
    

    之后筛选C列中绝对值最小的行,对应的A列值即为离散数据中最接近真实平衡点的Hertz值。

  • Python(矩阵乘法批量计算):
    构造差值矩阵,通过矩阵乘法一次性计算所有点的扭矩:

    # 基于上文的X和W向量
    # 构造180×180的差值矩阵,第i行第k列对应xᵢ - xₖ
    diff_matrix = np.tile(X, (1, 180)) - np.tile(X.T, (180, 1))
    
    # 计算每个xₖ对应的总扭矩
    torque_values = diff_matrix.T @ W
    
    # 找到扭矩绝对值最小的点
    closest_idx = np.argmin(np.abs(torque_values))
    balance_point_discrete = X[closest_idx][0]
    

三、方法对比

  • 直接计算加权平均:一步得到精确解析解,计算量极小,适合大规模数据
  • 扭矩找最小值:适合验证结果,得到的是离散数据中最接近真实平衡点的近似值,计算量略大但180行数据完全无压力

内容的提问来源于stack exchange,提问作者Mike Christie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:52:36