信号处理-消除趋势项

matlab 版本

python 版本

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams

# 设置中文字体
rcParams['font.sans-serif'] = ['SimHei']  # 设置默认字体为黑体
rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

def compute_time(n, fs):
    """生成时间序列"""
    return np.arange(n) / fs

def trend_remove(s, fs, m=2):
    """去除信号中的趋势项"""
    x = compute_time(len(s), fs)
    param = np.polyfit(x, s, m)  # 用m次多项式拟合
    s_poly_func = np.poly1d(param)  # 生成多项式函数
    s_poly = s_poly_func(x)  # 计算多项式值
    return s - s_poly  # 去除趋势项

# 创建一个带二次趋势的信号
fs = 100  # 采样频率
t = compute_time(1000, fs)  # 时间序列
quadratic_trend = 0.01 * t**2 + 0.5 * t  # 二次趋势
signal = np.sin(2 * np.pi * 5 * t) + quadratic_trend  # 信号 = 正弦波 + 二次趋势

# 去除趋势项
signal_detrended = trend_remove(signal, fs, m=2)  # 使用二次多项式去除趋势

# 可视化结果
plt.figure(figsize=(10, 6))
plt.plot(t, signal, label="原始信号 (带趋势)")
plt.plot(t, signal_detrended, label="去除趋势后的信号", linestyle="--")
plt.legend()
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.title("信号去趋势验证 (m=2)")
plt.grid()
plt.show()
相关推荐
烟锁池塘柳01 天前
Camera ISP Pipeline(相机图像信号处理管线)
图像处理·数码相机·信号处理
ww180002 天前
多目标粒子群优化算法-MOPSO-(机器人路径规划/多目标信号处理(图像/音频))
人工智能·算法·分类·信号处理
禁小默3 天前
第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)
信号处理
多喝烧碱5 天前
第四届图像、信号处理与模式识别国际学术会议(ISPP 2025)
信号处理
hope_wisdom8 天前
Linux系统编程之基本信号处理
linux·信号处理·系统编程·信号·signal·sigaction
射频微波精密9 天前
盛铂科技 SMF106 低相位噪声贴片式频率综合器模块
人工智能·科技·测试工具·信息与通信·信号处理·量子计算
射频微波精密9 天前
盛铂科技SWFA200捷变频频率综合器:高速跳频与卓越性能的完美结合
科技·测试工具·信息与通信·信号处理·量子计算
射频微波精密10 天前
盛铂科技SLMF215低相位噪声频率综合器:高精度、便携性与国产化的完美结合
科技·测试工具·信息与通信·信号处理·量子计算
迎风打盹儿10 天前
MATLAB 生成脉冲序列 pulstran函数使用详解
matlab·信号处理·pulstran·脉冲序列
m0_7421554313 天前
linux进程通讯-信号处理介绍
linux·运维·信号处理