0

我正在尝试按如下方式(在 MATLAB 中)向测量信号添加 5 % 噪声,但是当我计算添加后的噪声百分比时,它超出了 +/- 5 % 。你能告诉我为什么会这样吗?它不应该在 +/- 5% 的范围内吗?

 noiseSigma = 0.05 * signal;                % signal is my original signal

信号

noise = noiseSigma .* randn(1, length(signal));

noisySignal = signal + noise;

信号中的噪声

percent_noise = 100*(noisySignal-signal)./signal;

信号中的噪声百分比

4

1 回答 1

2

randn 取自正态分布,因此它可以大于 1。

如果您想将噪音限制在 5%,您可以尝试以下方法:

noise_limit = 0.05 * signal;
addative_noise = noise_limit .* (2*rand(1, length(signal))-1);
result = signal+addative_noise;

这是有效的,因为 rand 选择零和一之间的值。将它乘以 2 并减去 1,它会选择 -1 和 1 之间的值。

于 2021-01-07T06:56:46.160 回答