matlab - 使用 Matlab 生成振幅在 [-1 1] 之间的白噪声

标签 matlab random noise

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

相关文章:

opengl - GLSL 通过采样使用噪声函数在顶点着色器中计算球体网格上的法线会产生奇怪的图形错误

两个图的 Matlab 图例仅适用于第二个图

r - Octave/Matlab 中的scale() R 函数等效项

c++ - 相当于 Windows 上的 random(3)?

c - 使用 rand() 函数的程序

matlab - double 图像上的图像泊松噪声(散粒噪声)

image - 向图像添加椒盐噪声

matlab - 如何将 pcolor 图与使用不同颜色图的等高线图叠加?

matlab - 与父类(super class)和子类构造函数交互

c++ - 随机数生成器的实现