Python如何实现信号包络,Python包络提取怎么做?

Python 信号包络提取指南

在信号处理领域,包络(Envelope)是指信号振幅随时间变化的轮廓线,提取信号包络对于分析调制信号、振动分析、音频处理以及检测信号特征至关重要,在 Python 中,最常用且最标准的方法是使用 希尔伯特变换(Hilbert Transform)。

核心原理

提取包络的标准数学方法是构造信号的解析信号(Analytic Signal)。

python实战之pywifi
加载中
python实战之pywifi
  • 给定一个实数信号 $x(t)$,通过希尔伯特变换得到其虚部 $y(t)$。
  • 构造解析信号 $z(t) = x(t) + i \cdot y(t)$。
  • 信号的瞬时振幅(即包络)等于解析信号的模:$A(t) = |z(t)| = \sqrt{x(t)^2 + y(t)^2}$。

实现工具

在 Python 生态中,实现包络提取的核心库包括:

  • NumPy:用于高效的数值计算和数组操作。
  • SciPy:其中的 scipy.signal.hilbert 函数是实现希尔伯特变换的标准工具。
  • Matplotlib:用于将原始信号与提取出的包络进行可视化对比。

代码实现示例

以下是一个完整的代码示例,展示了如何生成一个振幅调制的信号并提取其包络。

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import hilbert
# 1. 生成模拟信号
fs = 1000  # 采样频率
t = np.linspace(0, 1, fs, endpoint=False)
# 载波频率 (50Hz)
carrier_freq = 50
# 调制信号 (5Hz,控制振幅)
modulating_freq = 5
modulating_signal = 0.5  (1 + np.sin(2  np.pi  modulating_freq  t))
# 生成被调制的信号
signal = modulating_signal  np.sin(2  np.pi  carrier_freq  t)
# 2. 使用希尔伯特变换提取包络
# hilbert 函数返回的是解析信号
analytic_signal = hilbert(signal)
# 包络即为解析信号的模
amplitude_envelope = np.abs(analytic_signal)
# 3. 绘图可视化
plt.figure(figsize=(12, 6))
# 绘制原始信号
plt.subplot(2, 1, 1)
plt.plot(t, signal, label='Original Signal', color='blue', alpha=0.7)'Original Modulated Signal')
plt.grid(True)
plt.legend()
# 绘制包络线
plt.subplot(2, 1, 2)
plt.plot(t, amplitude_envelope, label='Extracted Envelope', color='red', linewidth=2)
plt.plot(t, modulating_signal, '--', label='True Envelope', color='green', alpha=0.6)'Extracted Envelope vs True Envelope')
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.show()

关键步骤解析

  • scipy.signal.hilbert(signal):
    注意这个函数返回的不是变换后的虚部,而是解析信号(复数形式),这是初学者最容易出错的地方。
  • np.abs(analytic_signal):
    通过计算复数的模,直接获得信号的瞬时振幅,这便是我们需要的包络线。
  • 性能优化:
    对于极大规模的数据,scipy.signal.hilbert 基于 FFT(快速傅里叶变换)实现,计算复杂度为 $O(N \log N)$,能够高效处理大规模采样数据。

应用场景

  • 通信工程:解调 AM(幅度调制)信号。
  • 机械故障诊断:通过提取轴承振动信号的包络,识别冲击特征(包络谱分析)。
  • 音频处理:分析音频信号的动态范围和能量随时间的变化。
  • 生物医学信号:处理 ECG(心电图)或 EEG(脑电图)信号中的特征提取。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/python%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e4%bf%a1%e5%8f%b7%e5%8c%85%e7%bb%9c%ef%bc%8cpython%e5%8c%85%e7%bb%9c%e6%8f%90%e5%8f%96%e6%80%8e%e4%b9%88%e5%81%9a%ef%bc%9f/

赞 (0)
CDN参数如何配置?CDN加速参数设置与优化方法有哪些?
上一篇 2026年7月14日 10:37
哪家CDN厂商好?国内CDN厂商哪个好用?CDN服务商推荐
下一篇 2026年7月14日 10:42

相关推荐

  • 哪些服务器拥有还魂能力,服务器数据恢复方法有哪些

    能还魂的服务器不是指靠玄学复活的机器,而是靠快照回滚、镜像还原、带外管理和容灾切换这四类能力,在系统崩溃、数据误删、配置出错后快速恢复到可用状态,具备这些能力的服务器形态包括云服务器、裸金属服务器、备份一体机和双机热备集群,能还魂的服务器:先把“魂”定义清楚服务器还魂,指在以下场景中恢复业务:- 内核 pani……

    2026年9月15日
    000
  • 个人电脑能搭建对象存储吗?家庭NAS私有云搭建教程

    个人电脑完全可以搭建对象存储,通过安装MinIO或Ceph等开源软件,能将闲置PC转化为具备高并发读写能力、支持S3协议的专业级存储节点,实现低成本的数据私有化管理,很多人对“对象存储”的印象还停留在阿里云OSS或AWS S3这些云端服务上,觉得那是大企业才玩得起的高大上技术,对象存储的核心逻辑并不复杂,它就是……

    2026年5月26日
    7300
  • Python怎么学最快,Python零基础怎么入门?

    Python凭借其极高的开发效率、极其丰富的第三方库生态以及在人工智能领域的统治地位,已成为当前数字化转型背景下程序员、数据科学家及自动化工程师的首选编程语言,Python学习路径怎么规划才能高效进阶对于初学者而言,面对浩如烟海的技术文档,盲目开始往往会导致半途而废,业内专家指出,学习编程不应是单纯的语法记忆……

    2026年7月13日
    17900
  • 哪些服务器有加油站的,怎么找到加油站位置?

    带加油站的服务器,主要存在于我的世界(Minecraft)、Rust、DayZ等联机游戏中;想玩这类玩法,你需要先搞清楚哪些服务器能提供加油站场景,再懂点选服和开服的门道,服务器里的“加油站”到底是什么很多玩家第一次听到“加油站服务器”会以为是个专门加油的游戏,其实它指的是玩家可以在游戏世界里找到加油站建筑,并……

    2026年8月22日
    400
  • 个人好用国外云主机哪家强?国外云服务器推荐

    个人用户选择国外云主机,核心在于平衡性能、合规性与成本,推荐基于轻量级VPS(如Vultr、DigitalOcean)或高性价比共享主机(如Hostinger),具体取决于你的业务是侧重技术折腾还是快速建站,在2026年的数字生态中,个人开发者、独立博客作者以及小型跨境业务从业者,对海外服务器的需求早已超越了单……

    2026年6月2日
    4500
  • 高级工程师证书怎么考,高级工程师职称申报条件有哪些

    考取高级工程师证书需满足学历与资历硬性门槛,通过省级人社部门评审或“以考代评”获取,核心在于业绩成果与论文质量的深度打磨,2026年高级工程师考评路径全景解析评审制:主流获取通道绝大多数省份及工科专业(如建筑、机械)采用“考评结合”或“单纯评审”,流程分为:个人申报→单位推荐→主管部门审核→评委会评审→答辩→公……

    服务器运维 2026年4月27日
    55700
  • 绍兴大带宽服务器多少钱月租

    绍兴大带宽服务器的月租价格没有固定值,它由带宽大小、独享或共享、机房等级和硬件配置共同决定,100M独享带宽的服务器月租在800元至1500元之间,而1G独享带宽则需2000元至5000元甚至更高,绍兴大带宽服务器月租价格受哪些因素影响带宽大小:独享与共享的差异带宽是决定价格的核心,独享带宽保证你独立使用特定带……

    2026年8月12日
    1400
  • 服务器异常怎么解决,服务器异常的原因及解决方法

    服务器异常的解决核心在于快速定位故障点,通常遵循“网络排查-服务状态检查-资源监控-日志分析-硬件检测”的标准流程,绝大多数软件层面的异常可通过重启服务、清理资源或修复配置文件解决,硬件故障则需及时隔离更换,面对服务器异常,运维人员需保持冷静,依据系统化的排查路径,由软到硬、由外到内进行诊断,避免盲目操作导致数……

    2026年3月24日
    11100
  • 如何精准查询域名所有别名记录,域名DNS查询工具有哪些?

    同时使用DNS解析查询工具(如dig、nslookup)和在线DNS检测平台,分别从权威服务器和递归服务器两个层面交叉验证,才能避免遗漏CNAME、ALIAS、ANAME等不同类型的别名记录,域名别名记录到底包含哪些类型很多人以为别名记录就是CNAME,实际上在主流DNS服务商的实际配置中,别名记录至少包含三类……

    2026年9月3日
    700
  • 服务器很慢怎么办?导致服务器卡顿的常见原因有哪些?

    服务器运行缓慢通常由资源瓶颈、配置不当或代码低效引起,解决的核心逻辑在于“监控定位—资源优化—架构升级”三步走,而非盲目扩容硬件,面对服务器性能问题,最有效的路径是先通过专业工具精准定位瓶颈,随后针对性释放资源压力,最后通过架构层面的调整实现根本性的性能飞跃,切勿在未查明病因的情况下随意重启服务或升级配置,这往……

    2026年3月24日
    10700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注