140 likes | 283 Views
A synthetic noise generator . M. Hueller LTPDA meeting, AEI Hannover 27/04/2007. Purpose. Simulate noise data with given continuous spectrum Choose between input the model parameters (developing and modeling) fit experimental data Use as a tool for system identification: data simulation.
E N D
A synthetic noise generator M. Hueller LTPDA meeting, AEI Hannover 27/04/2007
Purpose • Simulate noise data with given continuous spectrum • Choose between • input the model parameters (developing and modeling) • fit experimental data • Use as a tool for system identification: data simulation
Input parameters: available features • LP filters • HP filters • f -2 noise, by a LP filter with roll-off at very low frequency • f -1 noise, by a cascade of LP filters with very low roll-off frequencies (not yet implemented) • Mechanical resonances • Mechanical forcing lines (not yet implemented)
The approach (1) • x(t) is the output of a filter, with transfer function H(w), with a white noise e(t) at input, with PSD=S0 • Assuming that the transfer function H(w) has the form • then the process x(t) can be seen as • the process x(t) is equivalent to Np correlated processes
The approach (2) • A powerful recursive formula • Once defined • One can calculate cross correlation of the innovation processes • And for the starting values
Matlab implementation (1) • Vector of starting values, with the given statistics • Propagate through time evolution, adding contributions from innovation processes • Innovations are evaluated starting from Np uncorrelated random variables, transformed according to: • Eventually, add up the contribution from all correlated processes:
Matlab implementation (2) • The base changing matrix Akj contains the eigenvectors of the cross-correlation matrix (diagonalization) • Additionally, a phase factor must be applied to each eigenvector, to allow the sum of all the Np contribution to be real ↓ Force the first element of each eigenvector to be real Call from the command line (or other routines): [t_res2,x_res2] = syntetic_noise(1e6,10,'lp',1,'res',[1e-2 0.5],[1000 10000],'notalk',‘nopl');
Numeric approach: some (precision?) problem associated with the calculation of the eigenvalues, impacting on the eigenvectors, being investigated • Imaginary part of the output process x(t) is not zero • This disagreement is associated with resonances (complex values in the cross correlation matrix) • Disagreement increases with the number of resonances • Compared with Mathematica evaluation, “zero” is bigger by a factor ~106 • Workaround using Symbolic Math Toolbox? Coding not finished yet • High-precision calculation in Mathematica passing the eigenvectors matrix to Matlab routine? This is also being considered
Some results • LP, roll-off @ 1 Hz
Some results • Resonance @10 mHz, Q= 103 • 106 points, evaluated in 60s
Some results Normalization problem, under investigation! • Resonance @10 mHz, Q= 103 • 106 points, evaluated in 60s
Some results • Resonance @10 mHz, Q= 103 • 106 points, evaluated in 60s
Some results Normalization problem, under investigation! • Resonances @10 mHz and 0.5 Hz, Q= 103 and 104 • 106 points, evaluated in 63s
What comes next: • Get the fitting features to work • Pick the best solution for numerical precision • Include into the AO architecture • Use it as the tools for system identification • …