首页 > 编程知识 正文

python生成噪声,Python像降噪代码

时间:2023-05-05 10:27:16 阅读:249245 作者:2064

导言

假设我们想用Python程序模拟并绘制白噪声过程 ε 0 , ε 1 , . . . , ε T varepsilon_0,varepsilon_1,...,varepsilon_T ε0​,ε1​,...,εT​,其中每一个 ε t varepsilon_t εt​ 均服从独立正态分布,在绘制的图像中,横轴为 t t t,纵轴为 ε t varepsilon _t εt​。我们将通过Python用不同的方式实现。

在运行Python程序之前,我们需要导入需要用到的包

import numpy as npimport matplotlib.pyplot as plt# 导入分析所需要的包 方式一

代码如下:

plt.rcParams['figure.figsize'] = (10,6)# 设置绘制图像显示比例varepsilon_values_1 = np.random.randn(100)# 随机生成100个服从标准正太分布的点plt.plot(varepsilon_values_1)plt.show()# 绘制图像

输出结果如下:

方式二

方式二采用for循环构造白噪声序列,代码如下:

t = 100varepsilon_values_2 = []# 创建一个空列表for i in range(t): e = np.random.randn() varepsilon_values_2.append(e)# 循环获得随机数,并合并入列表plt.plot(varepsilon_values_2)plt.show()# 绘制图像

输出结果如下:

利用白噪声序列模拟线性模型

掌握了绘制白噪声序列的方法后,我们尝试将其运用于线性模型的模拟。假设我们需要模拟以下自相关时间序列模型:

x t + 1 = α x t + ε t + 1 x_{t+1} = alpha x_t + varepsilon_{t+1} xt+1​=αxt​+εt+1​

其中, x 0 = 0 x_0=0 x0​=0, t = 0 , . . . , T t =0,...,T t=0,...,T,{ ε t varepsilon_t εt​} 满足独立同分布(IID) 且服从正态分布。设定 T = 200 T=200 T=200, α = 0.9 alpha=0.9 α=0.9。

代码如下:

alpha = 0.9T = 200# 设定参数x = np.empty(T+1)# 生成长度为T+1的空序列,用来储存xx[0] = 0for t in range(T): x[t+1] = alpha * x[t] + np.random.randn()# 用生成的随机数模拟模型plt.plot(x)plt.show()# 绘制图像

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。