Background
- 高斯噪声,顾名思义是指服从高斯分布(正态分布)的一类噪声。有的时候我们需要向标准数据中加入合适的高斯噪声让数据更加符合实际。
- python中的random库中集成了高斯正态分布,可以直接使用。
- 我们可以通过调整高斯噪声均值和方差,获取不同效果的处理数据。
原始数据
![在这里插入图片描述](https://img-blog.csdnimg.cn/df4cc10913a84354b22386ff6c145d1e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2FpU2Fh,size_20,color_FFFFFF,t_70,g_se,x_16)
高斯噪声sigma = 0.05
![在这里插入图片描述](https://img-blog.csdnimg.cn/374046041bfa4899bdad85728148d001.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2FpU2Fh,size_20,color_FFFFFF,t_70,g_se,x_16)
高斯噪声sigma = 0.1
![在这里插入图片描述](https://img-blog.csdnimg.cn/e183f569dbf04575a7b2966a6a90cbcd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2FpU2Fh,size_20,color_FFFFFF,t_70,g_se,x_16)
高斯噪声sigma = 0.15
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e3699dc08fe4a45a2ac9d4516013e50.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAV2FpU2Fh,size_20,color_FFFFFF,t_70,g_se,x_16)
源码
import random
import numpy as np
from matplotlib import pyplot as plt
def gauss_noisy(x, y):
"""
对输入数据加入高斯噪声
:param x: x轴数据
:param y: y轴数据
:return:
"""
mu = 0
sigma = 0.05
for i in range(len(x)):
x[i] += random.gauss(mu, sigma)
y[i] += random.gauss(mu, sigma)
if __name__ == '__main__':
xl = np.linspace(0, 5, 50, endpoint=True)
yl = np.sin(xl)
gauss_noisy(xl, yl)
plt.plot(xl, yl, linestyle='', marker='.')
plt.show()