以旋轉機械振動信號為例,由于旋轉機械運行中背景噪聲較強,振動信號需要進行降噪處理。常用的小波閾值降噪會在信號的不連續處產生虛假的波峰和偽吉布森震蕩,而奇異值分解SVD去噪容易產生虛假分量,全變差去噪則不會出現這樣的情況,因此采用全變差降噪以達到更好的效果。全變差降噪的問題作為一個L1正則化問題,可以通過優化極小化方法進行求解,可以有效地去除振動信號中的強背景噪聲,較好地體現出沖擊的故障特征。
鑒于此,采用一種非凸全變差正則化的信號降噪方法對模擬信號和軸承振動信號進行驗證,運行環境為MATLAB 2018A。
cleary = load('blocks_noisy.txt'); % load data
sigma = 0.5;x_clean = load('blocks.txt'); % load dataN = 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等。