diff --git a/src/addNoise.m b/src/addNoise.m index de14825635e21d8a09597602a543bfc07fdd0df6..4439290a3f691de8dafaf5ebbc2afc665bbf04bd 100644 --- a/src/addNoise.m +++ b/src/addNoise.m @@ -1,15 +1,15 @@ -function F = addnoise(F, noiselevel) -%% ADDNOISE: Adds uniformly distributed complex pseudorandom numbers to the -% farfield operator such that the relative Frobernius error of the perturbed data -% is given by noiselevel -% INPUT: F - far field operator (ntheta x nd matrix) -% noiselevel - relative noise level (between 0 and 1) -% OUTPUT: F - perturbed far field operator - - -if noiselevel > 0 - errMat = rand(size(F))-.5+1i*(rand(size(F))-.5); % matrix of u.i.d. numbers between 0 and 1 - errMat = errMat ./ norm(errMat); - F = F + errMat * noiselevel * norm(F); - clear errMat -end \ No newline at end of file +function Fn = addnoise(F, noiselevel) + +% Adds p%=noiselevel complex valued uniformly distributed additive error to a matrix. +% +% INPUT: F Unperturbed far field matrix, nxhat*nd-array. +% noiselevel Relative noise level, between 0 and 1. +% OUTPUT: Fn Perturbed far field matrix, nxhat*nd-array. +% +% ************************************************************************************* + +if noiselevel > 0 + errMat = rand(size(F))-.5+1i*(rand(size(F))-.5); + errMat = errMat ./ norm(errMat); + Fn = F + errMat * noiselevel * norm(F); +end