我正在使用Matlab函数Y = WGN(M,N,P)生成具有高斯分布的白噪声。此功能使用功率值(dB瓦)来计算输出信号的幅度。由于我想获得-1 V至1 V的输出幅度范围,因此有一个功能模式“线性”。

我正在尝试使用“线性”模式来产生输出,但结果是输出幅度范围为[-4 4]

RandomSignal = wgn(10000,1,1,1,'linear');
Time = linspace(0,10,10000);
figure()
plot(Time,RandomSignal)

figure()
hist(RandomSignal,100)


是否有另一个函数可以产生此结果,或者我只是做错了什么?

最佳答案

正如其他人所说,您不能限制高斯分布。
您可以做的是将范围定义为6个标准偏差,然后使用randn(m,sigma)生成信号。

例如,如果您想要[-1 1]的范围,则将选择sigma = 2/6 = 0.333和Mu = 0。这将有99.7%的机会在该范围内。然后,您可以向上和向下舍入超出范围的数字。

这将不是纯粹的高斯分布,但这是您可以获得的最接近的分布。

关于matlab - 用Matlab产生幅度在[-1 1]之间的白噪声,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14527915/

10-10 22:47