我正在使用 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/