长风破浪会有时,直挂云帆济沧海

完美一切 一切完美 止于至善

Matlab - 产生高斯噪声

%正态分布(normal distribution)又名高斯分布(Gaussian distribution),

% MATLAB 命令是normrnd。

%1)R=normrnd(MU,SIGMA):生成服从正态分布(MU参数代表均值,DELTA参数代表标准差)的随机数。

%                        输入的向量或矩阵MU和SIGMA必须形式相同,输出R也和它们形式相同。

 

%2)R=normrnd(MU,SIGMA,m):生成服从正态分布(MU参数代表均值,DELTA参数代表标准差)的 随机数矩阵,

%                      矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。

 

%3) R=normrnd(MU,SIGMA,m,n):生成m*n形式的正态分布的随机数矩阵。

 

%4)randn()是标准正态分布; MATLAB命令是normrnd 功能:生成服从指定均数和标准差的正态分布的随机数列,

                        %即高斯随机序列。

 

例如:

    %高斯噪声为n(m)=nmr+jnmi,其中实虚部均为独立同分布N(0, a)的高斯随机数,信号x(m)=s(m) + n(m)

    % SNR = 10 lg[1/(2a)] = – 3 – 10 lg(a)  (dB)  [之所以是2a不是a是因为实虚部]

    %若有用信号s(n)的最大幅度am,要求得到的信噪比为p,则p=10log10[(am^2)/b^2],用这个公式反推出高斯

    %噪声的方差b^2

snr=10;

sqrt(a)=10^(-(snr+3)/10);

noise=normrnd(0,sqrt(a),1,1000)+1*i*normrnd(0,sqrt(a),1,1000);

%或者

noise=sqrt(a)*randn(1,1000)+1*i*sqrt(a)*randn(1,1000);

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oJiMoDeYe12345/article/details/48913857
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭