均匀分布白噪声和高斯白噪声及其matlab产生方式 |
您所在的位置:网站首页 › 噪声各类标准是什么 › 均匀分布白噪声和高斯白噪声及其matlab产生方式 |
白噪声(white noise)是指功率谱密度在整个频域内均匀分布的噪声。 所有频率具有相同功率密度的随机噪声称为白噪声。 按幅度分布方式又可以分为均匀分布和高斯分布。 1.均匀分布的白噪声 1.1均匀分布均匀分布百度百科 在概率论和统计学中,均匀分布也叫矩形分布,它是对称概率分布,在相同长度间隔的分布概率是等可能的。 均匀分布由两个参数a和b定义,它们是数轴上的最小值和最大值,通常缩写为U(a,b); 属性: 1.2 rand函数及单位均匀分布rand函数用来产生(0, 1)之间均匀分布的随机数组成的数组,即单位均匀分布。 Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。 Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵。 Y = rand(m,n,p,…) 或 Y = rand([m n p…]) 产生随机数组。 Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。 根据1.1章节可知,rand函数生成的数据均值为(0+1)/2=0.5;方差(功率)为1/12。 n=10000; x=rand(1,n); %产生(0-1)单位均匀信号,1行,n列 subplot(211) plot(x); %输出信号图 set(gca,'FontSize',20); title('0-1服从均匀分布的随机序列信号'); subplot(212) hist(x,50) set(gca,'FontSize',20); title('0-1服从均匀分布的随机序列直方图');验证其均值为0.5,方差(功率)为1/12,即0.08333。 mean_x = mean(x) %验证均值为0.5 power_x = var(x) %验证功率为1/12运行结果: mean_x = 0.4987power_x = 0.0831符合要求。 1.3 rand函数生成广义均匀分布信号实现均值为1,功率为8.3333的均匀分布噪声 方法1: p = 8.3333; N = 10000; average = 1; temp1 = rand(1, N); %产生(0-1)单位均匀信号,1行,n列 temp2 = temp1 - mean(temp1);%减去均值,得到均值为0 temp3 = temp2 * sqrt(p*12);%调整幅度,改变功率,默认功率为1/12 x = temp3 + average; %调整均值 figure plot(x); set(gca,'FontSize',20); title('服从均匀分布的随机序列信号');验证其均值为1,方差(功率)为8.3333。 power_x = var(x) mean_x = mean(x)运行结果: power_x = 8.4519mean_x = 1.0000符合要求。 方法2: rand函数默认均值为0.5,功率为0.083333,分析目标信号,获取上下限a、b即可:目标信号均值为1,即(a+b)/2=1;功率为8.3333,相比于单位均匀分布的功率增大100倍,即对应幅度增大10倍,因此b-a=10*(1-0),计算得b=6,a=-4 a=-4; %(a-b)均匀分布下限 b=6; %(a-b)均匀分布上限 fs=1e6; %采样率,单位:Hz t=1e-2; %随机序列长度,单位:s n=t*fs; rand('state',0); %把均匀分布伪随机发生器置为0状态 u=rand(1,n); %产生(0-1)单位均匀信号,1行,n列 x=(b-a)*u+a; %广义均匀分布与单位均匀分布之间的关系 subplot(211); plot(x); %输出信号图 set(gca,'FontSize',20); title('服从均匀分布的随机序列信号'); subplot(212) hist(x,50) set(gca,'FontSize',20); title('服从均匀分布的随机序列直方图');验证其均值为1,方差(功率)为8.3333。 power_x = var(x) %验证功率 mean_x = mean(x) %验证均值运行结果: mean_x = 1.0515power_x = 8.4122符合要求。 2.高斯分布的白噪声 2.1均匀分布高斯分布百度百科 正态分布(Normal distribution),也称“常态分布”,又名高斯分布(Gaussian distribution),正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。 若随机变量X服从一个数学期望为μ、方差为σ2的正态分布,记为N(μ,σ2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。 2.2 randn生成标准正态分布伪随机数matlab语法与rand函数基本一致,所不同的是,randn产生的数值服从正态分布,即均值为0,方差为1。 y=randn(1,10000); subplot(2,1,1);plot(y); set(gca,'FontSize',20); title('服从高斯分布的随机序列信号'); subplot (2,1,2);hist(y,50); set(gca,'FontSize',20); title('服从高斯分布的随机序列直方图');验证其均值为0,方差为1。 power_y = var(y) %验证功率 mean_y = mean(y) %验证均值运行结果: power_y = 0.9823mean_y = 0.0088符合要求。 2.3 randn生成正态分布伪随机数产生一个随机分布的指定均值和方差的伪随机数:将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为2,方差为0.01的一个1×10000随机数,方式如下: temp = randn(1,10000); var_value= 0.01; average = 2; y=temp*sqrt(var_value) + average; subplot(2,1,1);plot(y); set(gca,'FontSize',20); title('服从高斯分布的随机序列信号'); subplot (2,1,2);hist(y,50); set(gca,'FontSize',20); title('服从高斯分布的随机序列直方图');验证其均值为2,方差为0.01。 power_y = var(y) %验证功率 mean_y = mean(y) %验证均值运行结果: power_y = 0.0099mean_y = 2.0004符合要求。 2.4 normrnd生成正态分布伪随机数语法: R=normrnd(MU,SIGMA) R=normrnd(MU,SIGMA,m) R=normrnd(MU,SIGMA,m,n) 说 明: R=normrnd(MU,SIGMA):生成服从正态分布(MU参数代表均值,SIGMA参数代表标准差)的随机数。输入的向量或矩阵MU和SIGMA必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有 相同维数的矩阵。 R=norrmrnd(MU,SIGMA,m):生成服从正态分布(MU参数代表均值,SIGMA参数代表标准差)的 随机数矩阵,矩阵的形式由m定义。m是一个1×2向量,其中的两个元素分别代表返回值R中行与列的维数。 R=normrnd(MU,SIGMA,m,n): 生成m×n形式的正态分布的随机数矩阵。 clear clc close all y=normrnd(2,0.1,1,10000); %第一个参数均值,第二个参数标准差,第三、四参数行数和列数 %目标信号方差为0.01,即标准差0.1 subplot(2,1,1);plot(y) set(gca,'FontSize',20); title('均值为2,方差为0.01服从高斯分布的随机序列信号'); subplot (2,1,2);hist(y,50); set(gca,'FontSize',20); title('均值为2,方差为0.01服从高斯分布的随机序列直方图'); power_y = var(y) %验证功率 mean_y = mean(y) %验证均值power_y = 0.0100mean_y = 2.0019符合要求。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |