What's_the_best_way_to_add_some_noise_to_my_simulated_visibilities?
Gijs Molenaar edited this page Feb 13, 2014
·
2 revisions
# create definition for a noise term -- this is reused repeatedly below to# define a separate noise node in each instance noise = Meq.GaussNoise(stddev=0.1);# create a 2x2 complex noise matrix ns.noise(source.name) << Meq.Matrix22( Meq.ToComplex(noise,noise),Meq.ToComplex(noise,noise), Meq.ToComplex(noise,noise),Meq.ToComplex(noise,noise) );# (... some lines skipped... ) ns.clean_coh(source.name) << Meq.Matrix22(ns.xx(source.name), ns.xy(source.name), ns.yx(source.name), ns.yy(source.name)); ns.lmn_minus1(source.name) << Meq.Paster(lmn, n-1, index=2) ns.coherency(source.name) << (ns.clean_coh(source.name) + ns.noise(source.name))/ns.n(source.name)```
To get 8 separate noise sources, I create 8 separate noise nodes. The code fragment I pasted actually does just that, even if it's not immediately obvious. Note that the 'noise' variable (line 3 above) is assigned a "node definition" thingy (because of operator = as opposed to <<); whenever this variable is used in the context where a node is expected, it uses the definition to create a separate node each time. The seeding is separate for each node I believe.