Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用主成分分析去相关噪声_Python_Signal Processing_Pca - Fatal编程技术网

Python 用主成分分析去相关噪声

Python 用主成分分析去相关噪声,python,signal-processing,pca,Python,Signal Processing,Pca,我必须创建13个相互完全不相关的高斯白噪声。 我被告知PCA可以实现它,所以我搜索了一些可以在python中使用的信息和工具。 我使用sklearn的PCA模块来执行PCA import numpy as np from sklearn.decomposition import PCA n = 13 # number of completely decorrelated noises ms = 10000 #duration of noise in milli-seconds fs = 441

我必须创建13个相互完全不相关的高斯白噪声。 我被告知PCA可以实现它,所以我搜索了一些可以在python中使用的信息和工具。 我使用sklearn的PCA模块来执行PCA

import numpy as np
from sklearn.decomposition import PCA

n = 13 # number of completely decorrelated noises
ms = 10000 #duration of noise in milli-seconds
fs = 44100 # sampling rate

x = np.random.randn(int(np.ceil(fs*ms/1000)),n)

# calculate the correlation between any two noise
for i in range(n):
    for j in range(n):
        omega = np.corrcoef(x[:,i],x[:,j])[0,1]
        print omega

# perform PCA
pca = PCA(n_components=n)
pca.fit(x)
y = pca.transform(x)

for i in range(n):
    for j in range(n):
        omega_new = np.corrcoef(y[:,i],y[:,j])[0,1]
        print omega_new
PCA前的相关系数约为0.0005~0.0014,PCA后的相关系数约为1e-16。 我对PCA不太了解,所以我不确定我是否做对了。
此外,在执行PCA变换后,这些新数据集是否仍然是高斯白噪声?我将规范化每个噪声,使其最大振幅为0.999,然后再将其写入波形文件。我还能得到13个平均功率相近的高斯白噪声吗?

我可能在做一个吸管,但这里有一个大大简化的问题:如果我平均两个高斯噪声,我会得到高斯噪声吗

如果我们分离出新的噪声,它无疑是高斯噪声。如果我们假设精确的计算(没有浮点错误),我相信新的噪声无法与新产生的噪声区分开来

然而,如果我们把它和我们平均的一个或两个噪声联系起来看,很明显这是它们的平均值

我不确定PCA到底是如何工作的,但这种转换在本质上似乎也是线性的

TBH,我对PCA了解不够,无法对您的情况发表评论,但我希望进一步的编辑将有助于扩展此答案,以适合您的问题