一种非凸全变差正则化的信号降噪方法(以模拟信号和轴承振动信号为例,MATLAB)

以旋转机械振动信号为例,由于旋转机械运行中背景噪声较强,振动信号需要进行降噪处理。常用的小波阈值降噪会在信号的不连续处产生虚假的波峰和伪吉布森震荡,而奇异值分解SVD去噪容易产生虚假分量,全变差去噪则不会出现这样的情况,因此采用全变差降噪以达到更好的效果。全变差降噪的问题作为一个L1正则化问题,可以通过优化极小化方法进行求解,可以有效地去除振动信号中的强背景噪声,较好地体现出冲击的故障特征。

鉴于此,采用一种非凸全变差正则化的信号降噪方法对模拟信号和轴承振动信号进行验证,运行环境为MATLAB 2018A。

复制代码
clear


y = load('blocks_noisy.txt');   % load data
sigma = 0.5;


x_clean = load('blocks.txt');   % load data


N = length(y);
n = 1:N;


figure(1)
clf
plot(n, y, 'color', 'black', 'linewidth', 1)
title('Noisy signal');
ax = [0 length(y) -3 6];
axis(ax)
复制代码
clc;clear all
%轴承2_2,采样频率25600Hz,外圈故障特征频率因子3.083,转速2250/60Hz,外圈故障特征频率115.6125
%x1 = xlsread('Bearing2_2/161.xlsx');%重度故障
x1 = xlsread('Bearing2_2/60.xlsx');%早期故障
x1 =x1(:,1);x1=x1(1:10240*2)
x1 = x1-mean(x1);
fs = 25600;
N = length(x1);
t = 0:1/fs:(N-1)/fs;
figure
[pEnvInner, fEnvInner, xEnvInner, tEnvInner] = envspectrum(x1, fs);plot(fEnvInner, pEnvInner)
xlim([0 500]);ncomb = 20;helperPlotCombs(ncomb,115.6125);xlabel('Frequency(Hz)');ylabel('Ampitude')


y = x1;   %data
sigma = 0.5;
% x_clean = load('blocks.txt');   % load data
N = length(y);
n = 1:N;

完整代码可通过知乎学术咨询获得:
https://www.zhihu.com/consult/people/792359672131756032?isMe=1

擅长领域:现代信号处理,机器学习,深度学习,数字孪生,时间序列分析,设备缺陷检测、设备异常检测、设备智能故障诊断与健康管理PHM等。

相关推荐
zhangfeng11333 分钟前
昇腾 950PR/950DT 新增regbase 编程方式和MemBase SIMD/SIMT 混合编程模型
人工智能·华为·ai编程·npu·cann
JoyCong19985 分钟前
鸿蒙用户等来的是ToDesk:折叠屏适配、星闪笔、互动Tab一次补齐
人工智能·智能手机·电脑·鸿蒙·鸿蒙系统·远程工作·ipad
飞猫的边缘AI6 分钟前
边缘AI时事:从豆包手机二代和Rokid×WorkBuddy联名AI眼镜看AI智能体进终端的必然与边界
人工智能·ai智能体·rokid眼镜·workbuddy·豆包手机二代
艾醒(AiXing-w)7 分钟前
LangChain 1.0 智能体开发(三):Agent 记忆管理——从短期对话到跨会话长期记忆
数据库·人工智能·langchain
知几蜗牛8 分钟前
部署大模型别先选GPU,先回答你愿意承担多少运维
人工智能
知几蜗牛9 分钟前
AI写了80万行Rust,最值得学的却是它花十倍精力读代码
人工智能
天云数据10 分钟前
OPC保姆级指南:被优化的第四个月,我在图书馆里想好了开家公司
人工智能
知几蜗牛10 分钟前
语音AI为什么总抢话?用VAD和打断机制做对实时对话
人工智能
fellow9911 分钟前
V100 的上下文极限:vLLM 卡 131K,llama.cpp 冲 230K
人工智能·自然语言处理
AgentMaster12 分钟前
数据资产化落地难题:5款数据中台系统架构对比与实施记录
大数据·人工智能·算法