如何解决如何增加X%的噪音在MATLAB的信号?
我试图噪声添加5%到如下(在MATLAB)测得的信号,但是当我添加之后计算噪声的百分比,它是超出+/- 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之间的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。