电能质量扰动信号信号通过hilbert变换得到瞬时频率

news2025/5/14 18:22:16

利用Hilbert变换从电能质量扰动信号中提取瞬时频率、瞬时幅值、Hilbert谱和边际谱的详细步骤及MATLAB代码实现。该流程适用于电压暂降、暂升、谐波、闪变等扰动分析。

1. Hilbert变换与特征提取流程

1.1 基本步骤
  1. 信号预处理:滤波去噪(如小波去噪)或经验模态分解(EMD)提取主成分。
  2. Hilbert变换:计算解析信号,得到瞬时幅值和相位。
  3. 瞬时频率计算:对相位求导得到瞬时频率。
  4. Hilbert谱与边际谱:时频能量分布及频率能量累积。
1.2 数学公式
  • 解析信号
    [
    z(t) = x(t) + j \mathcal{H}[x(t)]
    ]
    其中 (\mathcal{H}) 为Hilbert变换。
  • 瞬时幅值
    [
    A(t) = |z(t)|
    ]
  • 瞬时相位
    [
    \phi(t) = \arctan\left(\frac{\mathcal{H}[x(t)]}{x(t)}\right)
    ]
  • 瞬时频率
    [
    f(t) = \frac{1}{2\pi} \frac{d\phi(t)}{dt}
    ]
  • Hilbert谱:时频平面上的幅值分布 (H(f, t))。
  • 边际谱
    [
    h(f) = \int_{0}^{T} H(f, t) dt
    ]

2. MATLAB代码实现

2.1 信号生成(示例为含暂降的电压信号)
fs = 10e3;                  % 采样率10 kHz
t = 0:1/fs:0.1;             % 时间序列(0.1秒)
f0 = 50;                    % 基频50 Hz
A_normal = 1;               % 正常幅值
A_sag = 0.5;                % 暂降幅值

% 生成含暂降的电压信号(暂降发生在0.03s-0.07s)
x = A_normal * sin(2*pi*f0*t);
x(t >= 0.03 & t <= 0.07) = A_sag * sin(2*pi*f0*t(t >= 0.03 & t <= 0.07));

% 添加噪声(SNR=30dB)
x = awgn(x, 30, 'measured');

% 绘制原始信号
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Voltage (pu)');
title('含暂降的电压信号(加噪)');
2.2 预处理(EMD分解去噪)
% 经验模态分解(需安装Signal Processing Toolbox)
imf = emd(x, 'Interpolation', 'pchip');

% 选择前2个IMF作为主成分(假设噪声主要在高频IMF)
x_denoised = sum(imf(:,1:2), 2);

% 绘制去噪后信号
figure;
plot(t, x_denoised);
title('去噪后的电压信号(EMD)');
2.3 Hilbert变换与瞬时特征提取
% 计算解析信号
z = hilbert(x_denoised);

% 提取瞬时幅值和相位
A = abs(z);                 % 瞬时幅值
phi = unwrap(angle(z));     % 瞬时相位(解卷绕)

% 计算瞬时频率
f_inst = diff(phi) / (2*pi) * fs;
f_inst = [f_inst(1), f_inst]; % 保持长度一致

% 绘制瞬时特征
figure;
subplot(3,1,1);
plot(t, A);
title('瞬时幅值');
subplot(3,1,2);
plot(t, phi);
title('瞬时相位');
subplot(3,1,3);
plot(t, f_inst);
ylabel('Frequency (Hz)');
title('瞬时频率');
2.4 Hilbert谱与边际谱计算
% 时频分析参数
nfft = 1024;                % FFT点数
window = hann(256);         % 窗函数
noverlap = 128;             % 重叠点数

% 计算Hilbert谱(基于短时傅里叶变换STFT)
[S, f, t_spec] = spectrogram(A, window, noverlap, nfft, fs);

% 绘制Hilbert谱
figure;
imagesc(t_spec, f, 20*log10(abs(S)));
axis xy;
colorbar;
xlabel('Time (s)');
ylabel('Frequency (Hz)');
title('Hilbert能量谱');

% 计算边际谱(频率能量累积)
h = sum(abs(S), 2);

% 绘制边际谱
figure;
plot(f, h);
xlabel('Frequency (Hz)');
ylabel('Energy');
title('边际谱');

3. 关键特征解释

3.1 瞬时幅值
  • 正常状态:幅值稳定在标称值(如1 pu)。
  • 暂降期间:幅值显著降低(如0.5 pu),直接反映扰动强度。
3.2 瞬时频率
  • 正常状态:频率围绕基频(50/60 Hz)小幅波动。
  • 扰动期间:频率可能出现突变(如电压暂降伴随频率偏移)。
3.3 Hilbert谱
  • 时频分布:显示不同时间点各频率成分的能量强度。
  • 暂降特征:在扰动时段(0.03s-0.07s),基频能量降低,可能伴随高频噪声。
3.4 边际谱
  • 能量累积:反映信号在整个时间段内的频率能量分布。
  • 暂降分析:基频能量减少,高频成分可能增加(噪声或谐波)。

4. 改进与扩展

4.1 多扰动类型特征提取

针对不同扰动类型(如谐波、闪变),可设计专用特征:

  • 谐波畸变:边际谱中基频倍频处出现峰值。
  • 电压闪变:瞬时幅值呈现周期性波动。
% 谐波检测示例:检查边际谱中2f0、3f0处能量
harmonics = [2*f0, 3*f0];
[~, idx] = min(abs(f - harmonics), [], 2);
harmonic_energy = h(idx);
4.2 结合机器学习分类

将Hilbert特征输入分类模型(如SVM、LSTM):

% 构造特征向量(示例)
features = [max(A), min(A), mean(f_inst), std(f_inst), max(h)];

% 使用SVM分类(需Statistics and Machine Learning Toolbox)
load('fault_data.mat'); % 假设已标记数据集
model = fitcsvm(X_train, y_train);
y_pred = predict(model, X_test);
4.3 实时监测实现

使用滑动窗口处理实时数据流:

window_length = 0.02 * fs; % 20ms窗口
for i = 1:length(x)-window_length
    x_window = x(i:i+window_length-1);
    % 执行Hilbert变换和特征提取...
end

5. 注意事项

  1. 端点效应:Hilbert变换在信号两端易产生畸变,可通过镜像延拓缓解。
  2. 模态混叠:EMD分解时若出现模态混叠,可改用EEMD或CEEMDAN。
  3. 噪声敏感:强噪声环境下需结合小波阈值去噪或变分模态分解(VMD)。
  4. 计算效率:实时应用时需优化STFT窗口长度和重叠率。

matlab实现代码

通过上述代码和分析,可有效提取电能质量扰动信号的Hilbert时频特征,为故障诊断、分类和定位提供关键信息。实际应用中需根据具体扰动类型调整参数并验证特征有效性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2375569.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣119题:杨辉三角II(滚动数组)

小学生一枚&#xff0c;自学信奥中&#xff0c;没参加培训机构&#xff0c;所以命名不规范、代码不优美是在所难免的&#xff0c;欢迎指正。 标签&#xff1a; 杨辉三角、滚动数组 语言&#xff1a; C 题目&#xff1a; 给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角…

大疆无人机(全系列,包括mini)拉流至电脑,实现直播

参考视频 【保姆级教程】大疆无人机rtmp推流直播教程_哔哩哔哩_bilibili VLC使用教程&#xff1a; VLC工具使用指南-CSDN博客 目录 实现效果&#xff1a; 电脑端 ​编辑 ​编辑 无人机端 VLC拉流 分析 实现效果&#xff1a; (实验机型&#xff1a;大疆mini4kRC-N2遥控器、大…

uniapp-商城-54-后台 新增商品(页面布局)

后台页面中还存在商品信息的添加和修改等。接下来我们逐步进行分析和展开。包含页面布局和数据库逻辑等等。 1、整体效果 样式效果如下&#xff0c;依然采用了表单形式来完成和商家信息差不多&#xff0c;但在商品属性上多做了一些弹窗等界面&#xff0c;样式和功能点表多。 …

WebpackVite总结篇与进阶

模块化 Webpack Webpack 入口entry 分离app和第三方库入口 这是什么&#xff1f; 这是告诉 webpack 我们想要配置 2 个单独的入口点&#xff08;例如上面的示例&#xff09;。 为什么&#xff1f; 这样你就可以在 vendor.js 中存入未做修改的必要 library 或文件&#xff0…

【python】基础知识点100问

以下是Python基础语法知识的30条要点整理,涵盖数据类型、函数、控制结构等核心内容,结合最新资料归纳总结: 基础30问 一、函数特性 函数多返回值 支持用逗号分隔返回多个值,自动打包为元组,接收时可解包到多个变量 def func(): return 1, "a" x, y = func()匿…

SpringBoot--springboot简述及快速入门

spring Boot是spring提供的一个子项目&#xff0c;用于快速构建spring应用程序 传统方式&#xff1a; 在众多子项目中&#xff0c;spring framework项目为核心子项目&#xff0c;提供了核心的功能&#xff0c;其他的子项目都需要依赖于spring framework&#xff0c;在我们实际…

vscode_python远程调试_pathMappings配置说明

1.使用说明 vscode python 远程调试pathMappings 配置 launch.json "pathMappings": [{"localRoot": "本地代码目录","remoteRoot": "远程代码目录" # 注意不是运行目录, 是远程代码的目录}],2.测试验证 测试目的: 远程代…

遨游5G-A防爆手机:赋能工业通信更快、更安全

在工业数字化转型与5G-A商用进程加速的双重驱动下&#xff0c;中国防爆手机市场正迎来历史性发展机遇。作为“危、急、特”场景通信解决方案服务商&#xff0c;遨游通讯深刻洞察到&#xff1a;当5G-A网络以超高速率、海量连接和毫秒级时延重塑行业生态时&#xff0c;防爆手机这…

Profibus DP主站与Modbus RTU/TCP网关与海仕达变频器轻松实现数据交互

Profibus DP主站与Modbus RTU/TCP网关与海仕达变频器轻松实现数据交互 Profibus DP主站转Modbus RTU/TCP&#xff08;XD-MDPBm20&#xff09;网关在Profibus总线侧实现主站功能&#xff0c;在Modbus串口侧实现从站功能。可将ProfibusDP协议的设备&#xff08;如&#xff1a;海…

「华为」人形机器人赛道投资首秀!

温馨提示&#xff1a;运营团队2025年最新原创报告&#xff08;共210页&#xff09; —— 正文&#xff1a; 近日&#xff0c;【华为】完成具身智能赛道投资首秀&#xff0c;继续加码人形机器人赛道布局。 2025年3月31日&#xff0c;具身智能机器人头部创企【千寻智能&#x…

格雷希尔G10和G15系列自动化快速密封连接器,适用于哪些管件的密封,以及它们相关的特性有哪些?

格雷希尔G10和G15系列快速密封连接器&#xff0c;用于自动化和半自动化过程中的外部或内部密封&#xff0c;通过使用气压驱动来挤压内部的密封圈&#xff0c;创造一个适用于各种管件的无泄漏密封连接&#xff0c;连接器内部的弹性密封圈可以提供其他产品不能提供的卓越密封性能…

专栏特辑丨悬镜浅谈开源风险治理之SBOM与SCA

随着容器、微服务等新技术日新月异&#xff0c;开源软件成为业界主流形态&#xff0c;软件行业快速发展。但同时&#xff0c;软件供应链也越来越趋于复杂化和多样化&#xff0c;软件供应链安全风险不断加剧。 软件供应链安全主要包括软件开发生命周期和软件生存运营周期&#x…

vue3项目创建-配置-elementPlus导入-路由自动导入

目录 方法一&#xff1a;create-vue 方法二 &#xff1a;Vite Vue Vite.config.ts配置 引入element-plus 安装 如何在项目中使用 Element Plus 完整引入 按需导入 vue3vite中自动配置路由的神器&#xff1a;vite-plugin-pages 1. 安装 2、修改vite.config.js中配置…

MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置

视频讲解&#xff1a; MUSE Pi Pro 编译kernel内核及创建自动化脚本进行环境配置 今天分享的主题为创建自动化脚本编译MUSE Pi Pro的kernel内核&#xff0c;脚本已经上传到中 GitHub - LitchiCheng/MUSE-Pi-Pro-Learning: MUSE-Pi-Pro-Learning &#xff0c;有需要可以自行clon…

Innovus 25.1 版本更新:助力数字后端物理设计新飞跃

在数字后端物理设计领域&#xff0c;每一次工具的更新迭代都可能为项目带来巨大的效率提升与品质优化。今天&#xff0c;就让我们一同聚焦 Innovus 25.1 版本&#xff08;即 25.10 版本&#xff09;的更新要点&#xff0c;探寻其中蕴藏的创新能量。 一、核心功能的强势进 AI…

CodeBuddy 中国版 Cursor 实战:Redis+MySQL双引擎驱动〈王者荣耀〉战区排行榜

文章目录 一、引言二、系统架构设计2.1、整体架构概览2.2、数据库设计2.3、后端服务设计 三、实战&#xff1a;从零构建排行榜3.1、开发环境准备3.2、用户与战区 数据管理3.2.1、MySQL 数据库表创建3.2.2、实现用户和战区数据的 CURD 操作 3.3、实时分数更新3.4、排行榜查询3.5…

在线SQL转ER图工具

在线SQL转ER图网站 在数据库设计、软件开发或学术研究中&#xff0c;ER图&#xff08;实体-关系图&#xff09; 是展示数据库结构的重要工具。然而&#xff0c;手动绘制ER图不仅耗时费力&#xff0c;还容易出错。今天&#xff0c;我将为大家推荐一款非常实用的在线工具——SQL…

python高级特性

json.dumps({a:1,n:2}) #Python 字典类型转换为 JSON 对象。相当于jsonify data2 json.loads(json_str)#将 JSON 对象转换为 Python 字典 异步编程&#xff1a;在异步编程中&#xff0c;程序可以启动一个长时间运行的任务&#xff0c;然后继续执行其他任务&#xff0c;而无需等…

汇编:子程序设计

一、 实验要求 实验目的&#xff1a; 熟练掌握算术运算汇编指令的使用熟练掌握子程序设计的基本方法熟练掌握程序的调试方法 实验内容&#xff1a; 编程实现两个数&#xff1a;#8888H和#79H的乘除运算结合实验1的代码&#xff0c;将加减乘除四则运算写成四个子程序&#xff…

从概念表达到安全验证:智能驾驶功能迎来系统性规范

随着辅助驾驶事故频发&#xff0c;监管机制正在迅速补位。面对能力表达、使用责任、功能部署等方面的新要求&#xff0c;行业开始重估技术边界与验证能力&#xff0c;数字样机正成为企业合规落地的重要抓手。 2025年以来&#xff0c;围绕智能驾驶功能的争议不断升级。多起因辅…