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

如何对随深度变化的信号进行水平拉伸?

实现信号的水平拉伸(高低值差异化放大)

要实现高值更高、低值更低的波形舒展效果,核心是围绕信号均值做偏移放大——这和直接整体乘系数的区别是:不会让所有值同步升高,只会放大偏离均值的部分,让高的更高、低的更低,均值本身保持不变。

核心方法

用这个公式计算拉伸后的值:

拉伸后值 = 均值 + (原始值 - 均值) * 拉伸系数
  • 均值:取PROPERTY列的平均值,作为基准点不发生变化
  • 拉伸系数:设置大于1的数值(比如2、3),系数越大,拉伸效果越明显

结合你的代码实现

下面是包含原始信号和拉伸后信号对比的完整代码:

import matplotlib.pyplot as plt 
import pandas as pd

# 原始数据
df = pd.DataFrame({"DEPTH":[5, 10, 15, 20, 25, 30, 35, 40, 45, 50],
                   "PROPERTY":[23, 29, 26, 17, 15, 20, 28, 25, 20, 17]})

# 计算均值和拉伸系数
prop_mean = df["PROPERTY"].mean()
stretch_factor = 2  # 可根据需求调整,数值越大拉伸效果越强

# 生成拉伸后的信号列
df["PROPERTY_STRETCHED"] = prop_mean + (df["PROPERTY"] - prop_mean) * stretch_factor

# 绘图对比
plt.figure(figsize=(8,6))
plt.plot(df["PROPERTY"], df["DEPTH"], label="原始信号", color="blue")
plt.plot(df["PROPERTY_STRETCHED"], df["DEPTH"], label="拉伸后信号", color="orange")
plt.xlabel("PROPERTY")
plt.ylabel("DEPTH")
plt.gca().invert_yaxis()
plt.grid()
plt.legend()
plt.show()

效果说明

  • 原始信号中高于均值的数值(比如29、28)会被进一步放大,低于均值的数值(比如17、15)会被进一步压低
  • 完全适配你提到的“平滑近乎平坦”的实际数据,能把细微的波动放大,让波形更清晰舒展

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 19:05:16