编写python代码,生成一维数据,这个数据的特征是有不规则转折的曲线,然后利用高斯滤波对这个一维的曲线进行多轮滤波,并将生成的数据和滤波结果绘制出来
时间: 2024-09-25 12:11:28 浏览: 36
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter1d
# 生成不规则转折的曲线数据
np.random.seed(0)
x = np.linspace(0, 10, 100)
y = np.sin(x) + np.random.normal(0, 0.2, 100)
# 高斯滤波
def apply_gaussian_filter(data, sigma):
return gaussian_filter1d(data, sigma)
# 多轮滤波
num_iterations = 3
sigma = 1
for i in range(num_iterations):
y = apply_gaussian_filter(y, sigma)
# 绘制原始数据和滤波结果
plt.figure(figsize=(10, 6))
plt.plot(x, y, label='原始数据')
plt.plot(x, apply_gaussian_filter(y, sigma), label='滤波后数据', linestyle='--')
plt.legend()
plt.title('一维数据高斯滤波示例')
plt.show()
```
阅读全文