news 2026/4/15 20:23:28

CEEMD降噪 CEEMD降噪程序,程序运行结果包含原信号图,原信号频谱图,分解信号图,分解信...

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CEEMD降噪 CEEMD降噪程序,程序运行结果包含原信号图,原信号频谱图,分解信号图,分解信...

CEEMD降噪 CEEMD降噪程序,程序运行结果包含原信号图,原信号频谱图,分解信号图,分解信号频谱图,降噪后信号图,均方根误差,信噪比。

最近在信号处理中遇到了一个头疼的问题——如何从强噪声背景里提取有效信号。试了一圈方法发现CEEMD(互补集合经验模态分解)降噪效果挺有意思,今天带大家用Python撸个完整的降噪流程。

先上效果图镇楼:左边是原始含噪信号,右边是降噪后的信号。肉眼可见毛刺少了一大半,信噪比从15dB提升到22dB,均方根误差降了60%。这可不是美图秀秀的滤镜,是实打实的算法力量。

搞个模拟信号当小白鼠:

import numpy as np import matplotlib.pyplot as plt t = np.linspace(0, 1, 1000) signal = 2 * np.sin(2 * np.pi * 15 * t) + 0.5 * np.cos(2 * np.pi * 40 * t) noise = 0.8 * np.random.randn(len(t)) noisy_signal = signal + noise

这里故意混了高频(40Hz)和低频(15Hz)成分,加上随机噪声模拟真实场景。注意噪声幅度调得比较狠,这样才能看出算法实力。

上硬菜CEEMD分解:

from PyEMD import CEEMD ceemd = CEEMD() imfs = ceemd(noisy_signal)

PyEMD库的CEEMD类真香,三行代码完成分解。imfs变量里存着从高频到低频的各阶本征模态函数(IMF)。别被术语吓到,其实就是把信号像剥洋葱一样一层层拆开。

重点来了——筛选有效分量:

valid_imfs = [] for imf in imfs: corr = np.corrcoef(signal, imf)[0,1] if abs(corr) > 0.1: # 相关系数阈值 valid_imfs.append(imf) denoised = sum(valid_imfs)

这里用了个小技巧:计算每个IMF与原始干净信号的相关系数。实际应用时如果不知道干净信号,可以用能量占比法或者频谱分析代替。保留相关性高的分量,相当于把"不像噪声"的部分留下。

频谱分析才是照妖镜:

def plot_spectrum(y, fs=1000): n = len(y) Y = np.fft.fft(y)[:n//2] freqs = np.fft.fftfreq(n, 1/fs)[:n//2] plt.plot(freqs, np.abs(Y)/n) plt.figure() plot_spectrum(noisy_signal) plot_spectrum(denoised)

对比频谱图一目了然:40Hz附近的噪声尖峰被削平,15Hz的主成分完好无损。这说明算法不是无脑砍高频,而是精准打击异常频率。

最后上硬指标:

def RMSE(clean, denoised): return np.sqrt(np.mean((clean - denoised)**2)) def SNR(clean, noise): return 10*np.log10(np.var(clean)/np.var(noise)) print(f"RMSE: {RMSE(signal, denoised):.4f}") print(f"SNR提升: {SNR(signal, denoised-signal) - SNR(signal, noise):.1f} dB")

这两个指标就像考试的分数,RMSE看误差绝对值,SNR看信号纯净度。注意计算SNR提升时要用降噪前后的噪声分量对比,这样更准确。

踩过的坑提醒:CEEMD对参数敏感,噪声幅度、集成次数这些要反复调试。有个邪门现象——有时候多保留一个IMF反而效果更好,可能是算法把部分有用信息误判成高频了。建议用滑动窗口分段处理,尤其对非平稳信号效果拔群。

完整代码已打包扔GitHub上了,记得换自己的信号做实验。下期可能写写CEEMD和深度学习的组合拳,最近发现用LSTM预测IMF分量挺有意思...

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:33:25

今天聊聊一个挺有意思的项目——恒压循环风机冷却水系统。这个系统用了西门子S7-200 PLC和威纶通触摸屏,整体设计简洁高效,运行稳定,效果杠杠的

恒压循环风机冷却水系统 西门子 威纶通YH102 1.采用西门子S7-200 PLC,威纶通触摸屏; 2.一拖二恒压,加一台风机,水温高,开启风机冷却,水温正常时,关闭风机; 3.采用循环软启功能&am…

作者头像 李华
网站建设 2026/4/11 17:29:39

激光雕刻机控制板STM32F407源码揭秘:支持多格式文件加工,精准三轴控制,G代码/图片/D...

激光雕刻机切割机打标机写字机上位机C#源码STM32F407控制板源码 可用在各类切割机、雕刻机、打标机、点胶机、写字机、打孔机 控制板STM32F407支持3轴手动操作,鼠标单击运行距离和速度可设置,通信方式为串口 轴控模式:两轴和三轴 三轴模式可调节z轴作为…

作者头像 李华
网站建设 2026/4/16 14:13:12

开发一款APP费用是多少?影响价格的几大核心因素

开发 APP 的费用没有标准答案,核心由功能模块的复杂程度、开发的具体模式、技术栈的选用、开发团队的专业配置等因素决定,整体费用从几万到数百万元不等。下文将依据APP的类型划分,为你呈现对应的费用参考,助力精准把控成本范围&a…

作者头像 李华
网站建设 2026/4/16 14:33:17

通过舞蹈认识LimX Dynamics的人形机器人Oli

在一间空荡荡的酒店套房里,我独家体验了LimX Dynamics公司的人形机器人Oli,这是一款身高5英尺5英寸的机器人,正在美国首次亮相。它预装了大约十几套舞蹈动作,我要求观看所有的舞蹈表演,并尽力跟上它的节拍。在这个许多…

作者头像 李华
网站建设 2026/4/16 14:12:47

牛批了,AI办公神器,值得收藏

今天给大家推荐一款厉害的office AI助手,这是一款智能AI的办公软件,专门为office和WPS量身定做,有需要的小伙伴一定要下载收藏一下。 Office AI 助手 兼容officee和WPS 软件很小巧,大小只有不到30M,双击之后安装完成就…

作者头像 李华
网站建设 2026/4/16 9:03:40

基于门电路的一位全加器构建:深度剖析流程

从零构建一位全加器:门电路背后的算术逻辑你有没有想过,计算机到底是怎么“做加法”的?在我们敲下一行代码、打开一个应用、甚至只是按下计算器上的“”键时,背后都有一连串微小而精确的电子信号在默默工作。而这一切的起点&#…

作者头像 李华