使用python生成幅值不断变化的正弦信号并添加标准白噪声
时间: 2024-02-15 10:04:14 浏览: 109
python 波形生成是什么,具体代码和流程.txt
生成幅值不断变化的正弦信号可以使用Python中的NumPy库中的sin函数,而幅值不断变化可以通过一个函数来实现。添加标准白噪声可以使用NumPy库中的random.normal函数。以下是代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 设置参数
fs = 1000 # 采样频率
f = 50 # 正弦信号频率
duration = 1 # 信号持续时间
# 定义幅值变化函数
def envelope(t):
return 1 + 0.5*np.sin(2*np.pi*2*t)
# 生成时间序列
t = np.arange(0, duration, 1/fs)
# 生成正弦信号
x = envelope(t) * np.sin(2*np.pi*f*t)
# 生成标准白噪声
noise = np.random.normal(0, 1, len(x))
# 添加噪声
x_noise = x + noise
# 绘制图像
plt.plot(t, x_noise)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.show()
```
在上述代码中,我们首先设置了采样频率、信号频率和信号持续时间等参数。然后,定义了一个幅值变化函数envelope(t),该函数在时间t上的幅值为1加上0.5乘以一个频率为2的正弦信号。接着,生成时间序列,再使用envelope(t)函数生成幅值不断变化的正弦信号。接下来,使用np.random.normal函数生成标准白噪声,最后将噪声添加到幅值不断变化的正弦信号上。最终,使用matplotlib库中的plot函数绘制出信号的波形图。
阅读全文