尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

小波阈值去噪实战:局部放电信号处理与参数选择指南

发布时间:2026/9/26 16:53:49

资讯中心
01
ARTICLE

小波阈值去噪实战:局部放电信号处理与参数选择指南

小波阈值去噪实战:局部放电信号处理与参数选择指南
前段时间我啃了一篇关于局部放电信号去噪的论文顺着作者的思路把里面的方法完整复现了一遍。做高压设备绝缘检测的朋友应该都有同感局部放电信号本身极微弱幅值常常只有毫伏甚至微伏级别而现场检测环境里到处都是电磁干扰稍微处理不好有用的脉冲就被噪声埋掉了后面的统计分析和绝缘诊断根本没法做。这篇笔记不是简单翻译论文而是我把论文里的核心方法拆开揉碎之后结合自己跑数据时的实际经验整理的“去噪实操指南”。不管你是刚接触局部放电的研究生还是已经在现场跑过检测的工程师想搞懂信号去噪里那些参数到底怎么选、为什么这么选这篇内容应该都能给你一个比较完整的答案。1. 项目概述与核心需求拆解1.1 局部放电检测里的“信号”和“噪声”局部放电本质上是高压电气设备内部绝缘薄弱处在电场作用下发生的局部击穿现象。这类击穿不会立刻让设备完全失效但会持续侵蚀绝缘材料慢慢积累成大的故障。所以电力行业一直把局部放电检测当作设备状态评价的重要手段变压器、开关柜、电缆接头、GIS这些设备都在用。真正的局部放电信号有几个非常鲜明的特点持续时间极短通常只有纳秒到微秒量级波形是一个快速上升、然后按指数规律衰减的高频振荡频谱能量主要集中在几百千赫到几十兆赫之间具体要看传感器类型和放电类型。因为这些特点局部放电信号在时域里看起来就是一根根“针”在频域里则是一片较宽的高频成分。麻烦的地方在于现场实测信号从来不是干净的。变压器旁边有载波通信、周围有无线电广播、电缆接头处可能有接触不良产生的火花还有各种电力电子设备带来的谐波干扰。这些干扰叠加到微弱的放电脉冲上信噪比经常低到连脉冲存在与否都分不清。我见过不少现场数据光看原始波形就是一片“毛刺”压根看不出哪里有局部放电。所以局部放电信号去噪的核心任务不是把波形变“平滑”而是在尽量保留真实脉冲幅值、波形形状和时间位置的前提下把噪声干掉。说得再直白一点去噪做得好不好直接决定了后续的放电幅值分布、放电相位分布PRPD谱图、放电次数统计这些特征靠不靠谱。如果去噪时把真实的小幅值脉冲误删了那统计结果就会漏报如果噪声没去干净又会产生大量虚假放电事件整个诊断结论就废了。1.2 三类噪声源与去噪目标想要对症下药先得知道噪声到底从哪里来。论文里通常把局部放电检测中的干扰分为三类我在实际数据处理中也是按这个框架分类的。第一类是白噪声也是最常见的背景噪声。它来自传感器热噪声、电路本身的电子噪声、数据采集卡的量化噪声等。白噪声在时域里没有固定形状在频域里能量分布相对平坦几乎覆盖整个频带。因为它的频率范围跟局部放电高频分量重叠传统的低通滤波没法用一滤就容易把真实的脉冲高频成分一起削掉。第二类是窄带干扰。这类干扰来自空间中的无线电广播、载波通信、附近的高频保护信号等。它们在频域里表现为一个或几个固定频率上的尖峰频谱能量高度集中在时域则呈现为持续的正弦振荡看起来像一条“波浪线”盖在了放电脉冲上。这类干扰周期性很稳定频率固定去噪时思路跟白噪声完全不同更适合用频域陷波或者谱线剔除的方式处理。第三类是周期性脉冲干扰。这类干扰往往来自可控硅换流、电机电刷火花、晶闸管开断等时域上呈现周期性出现的脉冲群。它们跟局部放电脉冲在形状上很像单纯靠频域滤波根本区分不开得结合相位特征、脉冲重复率和波形特征进一步判别。很多论文把这一类归到“干扰”而不叫“噪声”因为处理逻辑已经完全上升到模式识别层面了。1.3 论文笔记的切入点这篇论文给我的最大启发是它没有一上来就堆算法而是先把局部放电信号的特点和噪声的类型理清楚再针对性地选择数学工具。作者的主线很清晰构造仿真的局部放电信号叠加不同类型的噪声用评价指标定量比较去噪效果最后用现场数据验证方法可行性。我复现时也沿用了这条主线。先把理想放电脉冲模拟出来分别加入白噪声和窄带干扰再对小波阈值去噪的每个环节做参数扫描最后在实际采集的含噪信号上验证。这样做的好处是每一步都有对照组参数选得好不好、算法改没改进用数字说话而不是靠肉眼看波形“感觉效果好多了”。如果你之前没接触过信号去噪顺着这篇笔记的顺序走一遍就能建立起一套完整的处理思路先认识数据再选工具再定参数最后评估效果。这也是我做任何信号处理任务时都会用的套路先搞清楚信号长什么样再谈怎么处理。2. 去噪技术选型为什么小波变换是主力2.1 常用去噪方法横向对比局部放电信号去噪的方法非常多论文里列了一长串但真正常用的其实就那么几类传统的频域滤波、自适应滤波、小波变换、经验模态分解EMD以及奇异值分解SVD。我做对比实验时把这几类方法放在同一批仿真数据上跑了一轮感触很深没有哪种方法是绝对最优的关键看匹配不匹配信号特点。传统频域滤波的好处是计算快、原理简单。但局部放电脉冲的频谱和白噪声高度重叠滤波器窗口一旦设置不好轻则脉冲幅值被压低重则直接把上升沿滤成“钝角”波形特征全变了。FIR带通滤波更适合做传感器带宽限制这类前期处理不适合做精细去噪。自适应滤波理论上能根据噪声特性动态调整系数比如最小均方算法LMS但局部放电脉冲是瞬态信号加上现场噪声非平稳收敛速度和稳态误差很难兼顾实际用起来参数不好调。我在仿真数据上试过LMS收敛步长取大了脉冲被拉平取小了白噪声又滤不掉很尴尬。SVD方法通过矩阵分解把信号分成主成分空间和噪声空间对周期性干扰有不错的效果。但局部放电脉冲太稀疏构造的Hankel矩阵维度很高分解耗时比较长而且脉冲幅值在重构时容易被压缩尤其是小幅值脉冲稍微处理不当就丢了。小波变换能成为主力是因为它天然适合处理瞬态信号。局部放电脉冲在时域是短促的突变在频域是宽带高频成分正好匹配小波变换的多分辨率分析特性。它既能定位脉冲在时间轴上的位置又能在不同尺度下区分信号和噪声这是傅里叶变换做不到的。所以论文的主算法选小波阈值去噪是从信号本质出发的选择。2.2 小波阈值去噪的核心原理小波阈值去噪的基本逻辑可以这么理解把小波变换想象成一台“分拣机”信号进入之后被分解成不同尺度频率段的分量每一层尺度对应一个时间分辨率。真实局部放电脉冲能量集中、幅值大在对应尺度上会形成明显的大系数而白噪声能量分散在每个尺度上都产生大量小幅值系数。于是去噪过程就变成了在小波域里设置一个阈值系数大于阈值的认为大概率是真实信号保留下来系数小于阈值的认为大概率是噪声置零或者收缩。处理完之后再做逆小波变换把信号从“小波域”还原回“时域”就得到了去噪后的波形。这里面有两个关键操作分解和重构。分解时用一组小波基函数把信号在不同尺度上展开得到一个低频近似系数和多个高频细节系数。重构是分解的逆过程把所有尺度的小波系数叠加回时域信号。阈值处理发生在分解和重构之间只对细节系数做近似系数基本不动因为局部放电白噪声主要影响高频细节部分。阈值函数常见有两种硬阈值和软阈值。硬阈值就是超过阈值的系数原样保留低于阈值的归零。优点是能保留脉冲的真实幅值缺点是在阈值附近会产生不连续点重构出来波形可能有些抖动。软阈值是把超过阈值的系数朝零点收缩信号会变得更平滑但所有保留系数都被削减了局部放电脉冲幅值会系统性偏低。实际用的时候我倾向于先试硬阈值因为局部放电诊断需要尽量保真脉冲幅值如果噪声太重导致重构波形毛刺太多再换软阈值。论文里的对比实验也显示在中等信噪比下硬阈值的脉冲幅值误差更小软阈值在信噪比极低时更能稳定波形。两者没有绝对好坏只有场景适配。2.3 关键参数选择的逻辑用小波去噪参数就三个小波基函数、分解层数、阈值规则。这三个参数直接决定了去噪效果也是论文里花大量篇幅讨论的部分。小波基函数最常用的是Daubechies系列db4、db8和Symlets系列sym8。这些小波有一定的不对称性和正则性跟局部放电脉冲单边快速衰减的形状比较像。我对比过db2、db4、db8、sym8和haar在仿真脉冲上去噪后的相关系数差异挺明显。haar小波过于简单重构波形阶梯感严重db2虽然也能用但对短脉冲形状的还原能力不如db4db8和sym8略好一点但计算量也大一些。论文给的经验值是db4做默认选择我在现场数据上复测之后觉得这个选择很稳。分解层数也很好理解层数越多频率分辨率越细噪声能被更精细地分层去除但层数太多会出现一个问题局部放电脉冲的高频细节会被拆到很深层的系数里阈值处理时容易把这些真实信号细节一起当噪声滤掉。我自己的经验是50MHz采样率下5层分解是比较合适的起点如果传感器采样率更高可以适当增加到6到7层。判断层数是否合适的办法很粗暴观察每一层细节系数的能量分布噪声层的小系数均匀信号层的系数会集中在脉冲对应的位置上。阈值规则的取舍更是整个流程的核心。固定阈值公式通常取sigma乘以sqrt(2*log(N))sigma由最细尺度小波系数的中位绝对偏差估计得到。这是理论上的最优阈值适用于白噪声实际效果也不错但在局部放电信号这种稀疏信号上阈值往往偏大容易误删小幅值脉冲。所以我更推荐用无偏风险估计rigrsure或者启发式阈值heursure它们在低信噪比下更保守一些能多保住一点真实脉冲。论文里也是用不同信噪比下的仿真数据对比了四种规则固定阈值在信噪比好时指标最高但信噪比低于某个值后rigrsure反而更稳定。参数选择没有一劳永逸的答案最靠谱的方法是做一次参数扫描。我在复现时就把小波基、层数、阈值规则三者组合起来在仿真数据上算出一张对比表然后选综合指标最优的一组参数再拿到现场数据上验证。这个方法虽然笨一点但绝对不会错尤其是在论文复现阶段能帮你快速定位这套算法到底“强在哪”。3. 实操复现从仿真信号到真实数据3.1 构造标准局部放电仿真信号复现的第一步是把论文里的仿真信号搭出来。没有仿真数据你根本没法定量评价去噪效果因为你不知道干净的“真值”长什么样。只有先在仿真数据上确认算法没跑偏才有底气去处理现场数据。局部放电脉冲的仿真模型论文里最常用的是一种双指数衰减振荡函数。它的物理含义是一个脉冲快速上升、按指数规律衰减叠加一个高频振荡。数学表达式大致如下import numpy as np def pd_pulse(t, t0, fc5e6, tau1e-6, A1.0, phase0.0): x np.zeros_like(t) mask t t0 dt t[mask] - t0 x[mask] A * (np.exp(-1.3 * dt / tau) - np.exp(-2.2 * dt / tau)) x[mask] * np.sin(2 * np.pi * fc * dt phase) return x参数里的fc是振荡中心频率tau是衰减时间常数A是脉冲幅值t0是脉冲起始时刻。这个模型生成出来的波形形状上很接近真实传感器采集到的局部放电脉冲先是一个陡峭的上升沿然后以高频振荡的形式慢慢衰减到零。实际操作中我会在一个工频周期20ms里放几个不同幅值、不同相位的脉冲用来模拟不同放电点的情况。生成干净脉冲之后再叠加噪声。白噪声直接用np.random.normal生成乘一个系数控制噪声强度。窄带干扰用固定频率的正弦波来模拟例如加一个1MHz的持续振荡。这样得到的数据就是典型的“含噪局部放电信号”。我常用的采样率是50MHz一个工频周期就是100万个采样点数据量刚好适中跑小波变换不会太慢又足够表现脉冲细节。3.2 评价指标怎么算去噪效果好不好不能光靠眼睛看。论文里评价去噪效果一般用四个指标信噪比SNR、均方根误差RMSE、相关系数CC和百分比均方偏差PRD。这些指标在仿真数据上可以直接算因为你有干净信号作为参照。信噪比的定义是信号能量与噪声能量的比值用分贝表示。在仿真数据里以干净信号为参考去噪后的信噪比提升越大说明去噪越有效。均方根误差衡量去噪后波形跟干净信号之间的平均偏差越小越好。相关系数则表示两个波形的形状相似度越接近1越好。百分比均方偏差跟均方根误差类似但会除以干净信号的能量更容易看出相对误差水平。计算代码很简单def calc_snr(clean, denoised): noise clean - denoised return 10 * np.log10(np.sum(clean**2) / np.sum(noise**2)) def calc_rmse(clean, denoised): return np.sqrt(np.mean((clean - denoised)**2)) def calc_cc(clean, denoised): return np.corrcoef(clean, denoised)[0, 1] def calc_prd(clean, denoised): return np.sqrt(np.sum((clean - denoised)**2) / np.sum(clean**2)) * 100这里有一个容易踩坑的细节直接用全局数据计算SNR会因为局部放电信号本身非常稀疏而出现“虚高”或“虚低”的情况。比如一个20ms的工频周期里只有几个几微秒的脉冲其余时间都是零全局信噪比会被拉得很低。论文里有时会在脉冲附近开一个时间窗只在这个窗口内计算SNR这样更贴近工程实际。我建议两种都算全局指标用来横向对比算法窗口内指标用来评估脉冲保真度。除了波形层面的指标还要关注脉冲检测层面的指标。局部放电诊断更要的是“有没有漏报、有没有误报”。所以我会额外统计去噪前后的脉冲幅值误差、脉冲位置偏差和脉冲数量看小幅值脉冲被保留的比率是多少。这个指标往往比全局SNR更能反映算法在实际诊断中的可用性。3.3 完整的去噪处理流程拿到含噪信号之后我的处理流程是这样的先做预处理再去窄带干扰最后做小波阈值去噪。每一步都有明确的针对性不能跳过。预处理主要做两件事去均值和去趋势。数据采集中难免会有直流偏置和低频漂移这会干扰后续的阈值估计。直接把信号的均值减掉再用高通滤波器滤掉很低频的漂移成分通常就够用了。窄带干扰不能用小波阈值去噪硬扛因为固定频率的正弦成分在小波域里会集中在特定尺度上阈值处理不容易把它完全剔除。一个简单有效的办法是FFT谱线剔除对信号做傅里叶变换找出频域里异常突出的尖峰把对应的频点置零再反变换回时域。def remove_narrowband(x, fs, factor5.0): X np.fft.rfft(x) freqs np.fft.rfftfreq(len(x), 1 / fs) amp np.abs(X) local_avg np.convolve(amp, np.ones(100) / 100, modesame) mask amp factor * local_avg X[mask] 0 return np.fft.irfft(X, nlen(x))这里的factor控制判定强度取5倍于局部平均幅值的频点视为窄带干扰。频率分辨率越高这个操作越精确。处理完之后窄带干扰基本消失剩下的就是白噪声为主交给小波去噪处理。小波去噪主体代码用PyWavelets库实现几步就走完import pywt def wavelet_denoise(x, waveletdb4, level5, modesoft): coeffs pywt.wavedec(x, wavelet, levellevel, modeperiodization) sigma np.median(np.abs(coeffs[-1])) / 0.6745 threshold sigma * np.sqrt(2 * np.log(len(x))) coeffs_thr [coeffs[0]] for i in range(1, len(coeffs)): coeffs_thr.append(pywt.threshold(coeffs[i], threshold, modemode)) return pywt.waverec(coeffs_thr, wavelet, modeperiodization)需要提醒一下modeperiodization是做周期延拓这样能减少边界效应重构后的长度也能严格和原始信号保持一致。如果你用的是默认的对称延拓模式某些情况下重构结果会在两端出现畸变尤其是信号边界上刚好有脉冲的时候非常明显。论文里没细讲这个选择但我在复现时对比过periodization模式要稳得多。去噪完成后我习惯再做一次脉冲筛选对去噪信号做阈值检测找到所有超过某个噪声底限的脉冲记录它们的峰值、上升沿和发生时刻。这个步骤不改变波形但从工程角度看它是把去噪结果转化成诊断特征的最后一步相当于告诉后面的分析程序哪些位置有放电事件。4. 常见问题与排坑实录4.1 小波基和分解层数选错了会怎样这一节全部是实际操作中踩过的坑论文里写得比较理想化但真跑起来会发现一堆边界情况。先说小波基。我一开始图省事直接用默认的db1就是haar小波跑了一组数据结果重构出来的脉冲形状变成了一串阶梯上升沿完全失真。后来换成db4波形就正常多了。原因是haar小波只有一阶消失矩对平滑振荡信号的表达能力不足。局部放电脉冲虽然有突变但突变之后是一段高频衰减振荡需要有一定正则性的小波基才能准确刻画。再说分解层数。层数设少了比如只分解3层白噪声在高频细节里残留很多波形看起来还是“毛茸茸”的脉冲淹没在噪声里。层数设多了比如到8层信号被拆得太细重构出来的脉冲幅值明显变小有时甚至把一个小幅值脉冲完全滤掉了。这背后的原因是分解层数越多高频细节系数被分到多个尺度上每个尺度上的系数幅值都被“摊薄”阈值处理时很容易把这些摊薄后的真实信号误判为噪声。怎么判断层数合不合适我自己的经验是对不同层数跑同一个仿真数据集观察“脉冲窗口内SNR”和“脉冲幅值误差”。曲线上升后下降的转折点就是你这个采样率下的最优层数。不要每换一批数据都重新调但至少要针对自己的采样率和脉冲中心频率标定一次。4.2 阈值过杀的三个典型场景阈值过杀是局部放电去噪里最隐蔽的问题。它会让你得到一个“看起来很干净”的波形但代价是真实的小幅值放电脉冲也被删掉了。这种情况在PRPD谱图上表现尤其明显原本应该存在的一些小放电点去噪后全不见了诊断结果从“有缺陷”变成“正常”非常危险。第一个典型场景是小幅值脉冲本身跟噪声幅值接近。小波阈值去噪的数学原理决定了低于阈值的系数都会被抑制。如果一个小幅值放电脉冲的能量经过小波分解后落到阈值以下它就会被当成噪声处理。这种情况靠调阈值规则很难完全避免只能靠窗口自适应阈值来缓解在一个时间窗内重新估计局部噪声底限降低对小幅值脉冲的误杀概率。第二个场景是多源局部放电叠加。现场设备里可能存在多个放电点幅值差异很大。固定全局阈值会偏向保护大幅值脉冲小幅值脉冲很容易被牺牲。我在一组模拟双放电点的数据上测试过固定阈值去噪后小放电点对应的脉冲数量减少了将近四成这个比例相当吓人。第三个场景是阈值规则选择不当。固定阈值规则sqtwolog在信噪比高的时候问题不大但信噪比低时阈值偏大会把很多真实脉冲削掉。如果你发现去噪后的波形很干净但脉冲数量比原始信号里肉眼可见的还少就要怀疑是不是阈值设大了。我建议用小波系数分布的“尖峰程度”来辅助判断真实脉冲对应的大系数只占总系数的一小部分如果去噪后大系数基本都被保留但重构脉冲数却减少了说明阈值有偏向性。4.3 端点和计算效率问题小波变换的边界效应是我复现时遇到最多的问题之一。原因是小波分解本质上是对有限长度信号做卷积边界处的数据不足需要靠延拓来补。不同延拓方式会产生不同的边界结果。periodization模式把信号首尾相接成周期信号边界效应最小反射延拓在大多数情况下也还行但遇到边界处有脉冲时重构波形会在端点出现明显的“折痕”。如果数据处理只截取中间一段边界问题可以忽略如果需要处理完整工频周期还是优先用周期延拓。计算效率是另一个容易被忽略的点。一个50MHz采样率、20ms长度的工频周期信号有100万个采样点单次小波去噪大概要零点几秒。但现场检测往往要连续处理几十上百个工频周期累积起来就很慢了。论文里的算法验证是在离线数据上做的但工程落地必须考虑实时性问题。我在批量处理时用了两个办法。第一个是分块处理把每个工频周期切成几个有重叠的窗口分别去噪后再拼接这样可以利用并行计算提高速度。第二个是选择合适的延拓模式后把所有周期拼接成一个大数组一次性处理减少多次调用小波变换的开销。另外PyWavelets底层已经用了C语言实现比纯Python循环快很多只要不频繁切换小波基效率还是能接受的。最后还有一个实际工程里很关键的细节去噪参数要固化。论文里可以反复对比不同参数的效果但现场检测系统一旦部署参数就必须固定下来否则今天用db4、明天用sym8去噪结果没有可比性长期监测的趋势分析也就失去了意义。我通常会根据现场传感器的带宽和噪声水平一次性标定好小波基、分解层数和阈值规则然后写成配置文件后续所有数据都走同一套参数只在定期巡检时重新评估一次。我个人在实际操作中的体会是局部放电信号去噪远不只是“跑一个算法”那么简单。它更像是给信号做一次外科手术既要切掉肿瘤又不能伤到正常组织。小波阈值去噪给了我们一把好用的手术刀但刀怎么握、切多深还是要靠对信号本身的深刻理解。仿真数据帮你把算法的底摸清楚现场数据验证算法的鲁棒性两者缺一不可。如果你打算在自己的项目里复现这套流程我的建议很直接先把仿真信号跑通把四个评价指标全部算出来不要跳过任何一步然后找一段真实含噪数据用同样的流程处理对比一下指标和肉眼观察是否一致。等这一步通过了再考虑参数优化和算法改进你会发现自己对局部放电信号的理解会完全不同。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。