编写代码实现三点平均器,输入一个受均值为0、方差为1的高斯随机噪声干扰的正弦序列,,在同一幅图上绘制三点平均前后的序列图形,分析滑动平均器的作用。
时间: 2024-10-14 11:10:08 浏览: 22
在Python中,我们可以使用NumPy库来生成高斯随机噪声并处理数据。首先,我们需要导入必要的库,然后编写函数实现三点平均器(也称为简单移动平均)。下面是一个简单的示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义三点平均函数
def three_point_average(x):
return (x[2] + x[1] + x[0]) / 3.0
# 生成正弦序列和高斯随机噪声
t = np.linspace(0, 2 * np.pi, 1000)
noisy_signal = np.sin(t) + np.random.normal(0, 1, t.shape)
# 对原始信号应用三点平均
smoothed_signal = np.convolve(noisy_signal, [1/3, 1/3, 1/3], mode='same')
# 创建新图,同时绘制原序列和平滑后的序列
plt.figure()
plt.plot(t, noisy_signal, label="Noisy Signal")
plt.plot(t, smoothed_signal, label="Three-point Averaged Signal")
plt.title("Effect of Three-point Moving Average on Noisy Sine Wave")
plt.xlabel("Time")
plt.ylabel("Amplitude")
plt.legend()
# 分析滑动平均器的作用
print("
阅读全文