| ||
# 设置参数
fs = 5000 # 采样频率
f = 500 # 正弦信号频率
amp = 10000 # 正弦信号幅度
duration = 0.07 # 信号持续时间
# 生成时间序列
t = np.arange(0, duration, 0.01 / fs)
# 生成正弦信号
x = amp * np.sin(2 * np.pi * f * t)
#生成第二个幅度较高的正弦波,然后截取该正弦波的部分,与第一个正弦波叠加
# 设置参数
fs2 = 5000 # 采样频率
f2 = 1000 # 正弦信号频率
amp2 = 60000 # 正弦信号幅度
duration2 = 0.07 # 信号持续时间
# 生成时间序列
t2 = np.arange(0, duration2, 0.01 / fs2)
# 生成正弦信号
x2 = amp2 * np.sin(2 * np.pi * f2 * t2)
start_index2 = np.random.randint(0,len(x2)-13000)
result = x2[start_index2: start_index2 + 100]
result2 = np.random.normal(0,0,start_index2)
result3 = np.random.normal(0,0,len(x2)-start_index2-100)
result4 = np.append(result2,result)
result5 = np.append(result4,result3)
# 生成第三个幅度较高的正弦波,然后截取该正弦波的部分,与第一个正弦波叠加
# 设置参数
fs3 = 5000 # 采样频率
f3 = 1000 # 正弦信号频率
amp3 = 40000 # 正弦信号幅度
duration3 = 0.07 # 信号持续时间
# 生成时间序列
t3 = np.arange(0, duration3, 0.01 / fs3)
# 生成正弦信号
x3 = amp3 * np.sin(2 * np.pi * f3 * t3)
start_index3 = np.random.randint(0, len(x3) - 13000)
result6 = x3[start_index3: start_index3 + 100]
result7 = np.random.normal(0, 0, start_index3)
result8 = np.random.normal(0, 0, len(x3) - start_index3 - 100)
result9 = np.append(result7, result6)
result10 = np.append(result9, result8)
# 生成第四个幅度较高的正弦波,然后截取该正弦波的部分,与第一个正弦波叠加
# 设置参数
fs4 = 5000 # 采样频率
f4 = 1000 # 正弦信号频率
amp4 = 20000 # 正弦信号幅度
duration4 = 0.07 # 信号持续时间
# 生成时间序列
t4 = np.arange(0, duration4, 0.01 / fs4)
# 生成正弦信号
x4 = amp4 * np.sin(2 * np.pi * f4 * t4)
start_index4 = np.random.randint(0, len(x4) - 13000)
result11 = x4[start_index4: start_index4 + 100]
result12 = np.random.normal(0, 0, start_index4)
result13 = np.random.normal(0, 0, len(x4) - start_index4 - 100)
result14 = np.append(result12, result11)
result15 = np.append(result14, result13)
noise = np.random.normal(0, 500, len(x))
# 添加噪声
x_noise = 1000000 + x + noise + result5 + result10 + result15
y = np.around(x_noise,0)
np.set_printoptions(threshold=np.inf)
with open('/Users/huqixing914/Desktop/project/emi_det.txt', 'w') as f:
print(y,end='\n', file=f)
# 绘制图像
plt.plot(t, x_noise)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.show()