语境
我有一个由一系列列向量组成的矩阵。每个列向量包含一系列以度数定义的角度,范围在 -180 到 180 之间。我希望将高斯白噪声添加到序列中的每个角度,以测试系统对噪声的鲁棒性。
鉴于某些角度变化不大,而其他角度在序列中变化很大,我希望添加与活动/变化量成正比的噪声。因此,我选择从均值为零的高斯采样,其幅度相对于各个角度的标准偏差(作为比率)定义。
我的 Matlab 代码如下:
function Y2 = addnoise2angles(Y1, ratio)
%# Random numbers sampled from Gaussian
N = randn(size(Y1));
%# Noise level is defined per angle as a ratio of their respective standard deviations
sigma = std(Y1, 0, 2);
N = N.*repmat(sigma, 1, size(N, 2));
N = N*ratio;
%# Apply noise to angles
Y2 = Y1+N;
Y2 = wrapTo180(Y2);
end
问题
这是测试噪声鲁棒性的正确方法吗?
如果是这样,什么范围的比率对测试是明智的?
如果不是,那么它有什么问题,正确的方法是什么?