Skip to content

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. 
Clone this wiki locally