如何在 MATLAB 中的信号中添加 x% 噪声?
How to add x % noise in a signal in MATLAB?
我正在尝试按如下方式(在 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;
randn 取自正态分布,因此它可以大于 1。
如果您想将噪音限制在 5%,您可以尝试以下方法:
noise_limit = 0.05 * signal;
addative_noise = noise_limit .* (2*rand(1, length(signal))-1);
result = signal+addative_noise;
之所以可行,是因为 rand 选择了 0 和 1 之间的值。乘以二减一,它会选择 -1 和 1 之间的值。
我正在尝试按如下方式(在 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;
randn 取自正态分布,因此它可以大于 1。
如果您想将噪音限制在 5%,您可以尝试以下方法:
noise_limit = 0.05 * signal;
addative_noise = noise_limit .* (2*rand(1, length(signal))-1);
result = signal+addative_noise;
之所以可行,是因为 rand 选择了 0 和 1 之间的值。乘以二减一,它会选择 -1 和 1 之间的值。