matlab中随机噪声的产生

matlab中随机噪声的产生,matlab,histogram,gaussian,noise,Matlab,Histogram,Gaussian,Noise,当我向数组添加高斯噪声时,直方图不应该是高斯的吗?虽然噪声是随机的,但分布应该是高斯分布,对吗?这不是我得到的 A=zeros(10); A=imnoise(A,'gaussian'); imhist(A) imnoise()是一个可以应用于图像而不是普通数组的函数。 也许您可以查看randn()函数。您可能看不到采样帧仅为10的钟形曲线 参见中心极限定理 我会尝试将采样帧增加到更大的范围 参考: 大数定律 可能会发生两件事: 你没有足够的样本量,或者 高斯分布的imnoise的默认平均值

当我向数组添加高斯噪声时,直方图不应该是高斯的吗?虽然噪声是随机的,但分布应该是高斯分布,对吗?这不是我得到的

A=zeros(10);
A=imnoise(A,'gaussian');
imhist(A)
imnoise()是一个可以应用于图像而不是普通数组的函数。

也许您可以查看randn()函数。

您可能看不到采样帧仅为10的钟形曲线

参见中心极限定理

我会尝试将采样帧增加到更大的范围


参考

大数定律


可能会发生两件事:

  • 你没有足够的样本量,或者

  • 高斯分布的imnoise的默认平均值为0,这意味着您只能看到钟形曲线的右半部分

  • 试一试


    这就是您的代码所做的:

    A = zeros(10);
    
    mu = 0; sd = 0.1;                 %# mean, std dev
    B = A + randn(size(A))*sd + mu;   %# add gaussian noise
    
    B = max(0,min(B,1));              %# make sure that 0 <= B <= 1
    
    imhist(B)                         %# intensities histogram
    

    A = zeros(10);
    
    mu = 0; sd = 0.1;                 %# mean, std dev
    B = A + randn(size(A))*sd + mu;   %# add gaussian noise
    
    B = max(0,min(B,1));              %# make sure that 0 <= B <= 1
    
    imhist(B)                         %# intensities histogram
    
    hist( randn(1000,1) )