【问题标题】:How to add x % noise in a signal in MATLAB?如何在 MATLAB 中的信号中添加 x % 噪声?
【发布时间】:2021-01-07 06:44:34
【问题描述】:

我正在尝试如下(在 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;

【问题讨论】:

    标签: matlab measurement noise-generator


    【解决方案1】:

    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 之间的值。将其乘以 2 并减去 1,它会选择介于 -1 和 1 之间的值。

    【讨论】:

    • 谢谢。但是“rand”将在噪声限制内以均匀分布而不是随机分布绘制数字。添加均匀分布的噪声是否合适?
    • @parag 这取决于应用程序。如果您希望噪声保持在信号周围 5% 的范围内,您可以使用均匀分布。您还可以添加从正态分布中提取的噪声,但这些不限于频带。维基百科列出了所有(许多)有界区间的分布:en.wikipedia.org/wiki/List_of_probability_distributions
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2020-06-04
    • 2011-10-15
    • 2013-04-12
    • 1970-01-01
    • 2015-02-24
    相关资源
    最近更新 更多