声明:以下的程序函数都是来自matlab
1. 首先各个通道的协方差矩阵(covmat)已知,肯定也是根据之前的数据求得,利用cov函数;
2. 根据协方差矩阵求得相关滤波器(correlating filter),两种方法:
i). Eigenvector decomposition: [V,D] = eig(covmat); W = V*sqrt(D);
ii). Cholesky Decomposition:W = chol(covmat)‘;
3. 生成各个通道的白噪声:n = randn(size(covmat,1), N); 通道总数为:size(covmat,1),每个通道的噪声个数为N个;
4. 求得所有通道的模拟噪声:result = W * n; 可以用cov函数验证一下模拟的噪声的协方差矩阵跟给定的是否接近,当然N越大,越接近;
5. 可以比较一下两个相关滤波器的结果,都是比较靠谱的。
参考链接:
1. http://www.mathworks.com/matlabcentral/fileexchange/21156-correlated-gaussian-noise
2. http://www.sitmo.com/article/generating-correlated-random-numbers/