基于一维卷积与对抗神经网络的轴承故障信号生成(TensorFlow2)
1. 数据集生成
这个参考的浦项大学一位老师的开源代码,生成信号
1.1 单一信号
def data_gen(f1, f2, A1, A2):
Fs = 100
T = 1 / Fs
N = 1024 # 信号长度
t = np.arange(0, N) * T # [0. 0.01 0.02 0.03 0.04 0.05 0.06 ... ]
k = np.arange(0, N)
f = (Fs / N) * k
# 通过系数式的信号叠加
x1 = A1 * np.sin(2 * np.pi * f1 * t)
x2 = A2 * np.sin(2 * np.pi * f2 * t)
x = x1 + x2
return x
1.2 批量信号(batch)
# 按照batch大小生成信号batch包
def batch_maker(n_batch):
signals = []
for _ in range(n_batch):
A1 = 0.4 + 0.1 * np.random.random() # uniform [0.4,0.5]
A2 = 0.1 + 0.2 * np.random.random() # uniform [0.1,0.3]
x = data_gen(2, 5, A1, A2)
signals.append(x)
return np.array(signals)
添加高斯噪声
# 添加噪声
def make_nois