非高斯噪声模拟与分析:拉普拉斯分布和混合高斯分布
非高斯噪声模拟与分析:拉普拉斯分布和混合高斯分布
本文将介绍两种非高斯噪声的模拟方法,并分析其统计特性。
1. 反函数法生成拉普拉斯分布
拉普拉斯分布的概率密度函数为:
$$f(x) = \frac{1}{2b} e^{-\frac{|x-\mu|}{b}}$$
其中,$\mu$ 是分布的中心,$b$ 是尺度参数。
我们可以通过反函数法生成拉普拉斯分布。首先,我们求出累积分布函数:
$$F(x) = \begin{cases} \frac{1}{2} e^{\frac{x-\mu}{b}} & x \leq \mu \ 1 - \frac{1}{2} e^{-\frac{x-\mu}{b}} & x > \mu \end{cases}$$
然后,我们求出反函数:
$$F^{-1}(u) = \begin{cases} \mu - b \ln(2u) & u \leq \frac{1}{2} \ \mu + b \ln(2(1-u)) & u > \frac{1}{2} \end{cases}$$
接下来,我们可以使用该反函数生成拉普拉斯分布的样本。例如,我们生成 $n=1000$ 个样本,其中 $\mu=0$,$b=1$:
import numpy as np
def laplace(mu, b, n):
u = np.random.uniform(size=n)
x = np.where(u <= 0.5, mu - b*np.log(2*u), mu + b*np.log(2*(1-u)))
return x
x = laplace(0, 1, 1000)
接下来,我们可以用样本统计分析超过 $3\sigma$ 的概率。由于拉普拉斯分布是对称的,我们只需要考虑正半轴上的部分。根据标准正态分布的性质,超过 $3\sigma$ 的概率为:
$$P(|X-\mu| > 3b) = 2P(X-\mu > 3b) = 2(1-\Phi(3)) \approx 0.0027$$
其中,$\Phi(z)$ 是标准正态分布的累积分布函数。因此,超过 $3\sigma$ 的概率约为 $0.0027$。
2. 混合高斯分布的模拟与分析
混合高斯分布的概率密度函数为:
$$f(x) = \sum_{i=1}^k w_i \mathcal{N}(x|\mu_i, \sigma_i^2)$$
其中,$w_i$ 是混合系数,$\mu_i$ 和 $\sigma_i^2$ 分别是第 $i$ 个高斯分布的均值和方差,$\mathcal{N}(x|\mu_i, \sigma_i^2)$ 是均值为 $\mu_i$,方差为 $\sigma_i^2$ 的正态分布在 $x$ 处的取值。
我们可以通过以下方法模拟混合高斯分布的样本:
- 从混合系数 $w_i$ 的多项式分布中抽取一个分量 $i$;
- 从第 $i$ 个高斯分布 $\mathcal{N}(x|\mu_i, \sigma_i^2)$ 中抽取一个样本。
例如,我们生成 $n=1000$ 个样本,其中混合系数为 $w_1=0.7$,$w_2=0.3$,第一个高斯分布的均值和方差为 $\mu_1=0$,$\sigma_1^2=1$,第二个高斯分布的均值和方差为 $\mu_2=1$,$\sigma_2^2=2$:
def mixture_gaussian(w, mu, sigma, n):
k = len(w)
i = np.random.choice(k, size=n, p=w)
x = np.random.normal(loc=mu[i], scale=np.sqrt(sigma[i]), size=n)
return x
w = [0.7, 0.3]
mu = [0, 1]
sigma = [1, 2]
x = mixture_gaussian(w, mu, sigma, 1000)
接下来,我们可以根据不同的 $\sigma_1$ 和 $\sigma_2$ 数值下样本统计分析超过 $3\sigma$ 的概率。
例如,当 $\sigma_1=1$,$\sigma_2=2$ 时,超过 $3\sigma$ 的概率约为 $0.0024$:
x = mixture_gaussian([0.7, 0.3], [0, 1], [1, 2], 1000)
mean = np.mean(x)
std = np.std(x)
p = np.mean(np.abs(x - mean) > 3*std)
print(p) # 0.0024
当 $\sigma_1=2$,$\sigma_2=1$ 时,超过 $3\sigma$ 的概率约为 $0.0028$:
x = mixture_gaussian([0.7, 0.3], [0, 1], [2, 1], 1000)
mean = np.mean(x)
std = np.std(x)
p = np.mean(np.abs(x - mean) > 3*std)
print(p) # 0.0028
可以看到,混合高斯分布的超过 $3\sigma$ 的概率与各个高斯分布的方差有关,较大的方差会导致更小的概率。
结论
本文介绍了两种非高斯噪声的模拟方法,并分析了其统计特性。通过反函数法和混合高斯分布模拟,我们可以得到不同非高斯噪声的样本,并对其进行统计分析,了解其超过 $3\sigma$ 的概率。这对于分析和处理非高斯噪声信号具有重要意义。
原文地址: https://www.cveoy.top/t/topic/opeU 著作权归作者所有。请勿转载和采集!