1. 高斯白噪声-white noise
模拟高斯噪声,也称为正态噪声,是有一系列不相关的随机变量组成的理想化随机过程,是有一系列不相关的随机变量组成的理想化随机过程,其统计特性服从正态分布。一种较为泛用的噪声模型。
Matlab已经有一个randn(M,N)的函数,用其可以产生出均值为0、方差为1、尺寸为M X N像素的高斯噪声图像。
mean = 0;
var=0.08;
n_gaussian = mean+var*randn(M,N);
1_gaussian=mean+var*randn(M,1); % 一维高斯噪声
2,有色噪声-colored noise
有色噪声(或相关噪声)是指序列中没一时刻的噪声相关。有色噪声可以看成是由白噪声序列驱动的线性环节的输出
示例:产生一个有色噪声 e(k) = x(k)+0.5*x(k-1), 其中x(k)是 mean =0, var = 1, 的白噪声
clear all; close all;
clc
L=500; %仿真长度
c = [1 -0.5];
nc = length(c) - 1;
xik=zeros(nc,1); %白噪声初值
xi=randn(L,1); %产生均值为0,方差为1的高斯白噪声序列
for k=1:L
e(k)=c*[xi(k);xik]; %产生有色噪声
%数据更新
for i=nc:-1:2
xik(i)=xik(i-1);
end
xik(1)=xi(k);
end
subplot(2,1,1);
plot(xi);
xlabel('k');ylabel('噪声幅值');title('白噪声序列');
subplot(2,1,2);
plot(e);
xlabel('k');ylabel('噪声幅值');title('有色噪声序列');
%测试功率谱
[y1,f1] = Spectrum_Calc(xi',512);
p1 = 1/L * y1.*conj(y1);
figure(2)
subplot(211)
plot(f1,p1)
[y2,f2] = Spectrum_Calc(e,512);
p2 = 1/L * y2.*conj(y2);
subplot(212)
plot(f2,p2)
代码地址
3. 白噪声和有色噪声区别
(1)其实由定义可以看出,白噪声不同时刻是不相关的,自相关函数为脉冲函数;有色噪声则是相关的。
(2)实际测试可以通过测试功率谱来区别,白噪声的功率谱在各频率的值都比较平均,有色噪声则会有较为明显的峰值
原文参考地址