40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 28 of 344  Not logged in ELOG logo
ID Date Authorup Type Category Subject
  5935   Thu Nov 17 23:47:43 2011 DenUpdateIOOMC1_SENSOR

The most interesting plot did not uploaded in the previous elog.

Upload now local MC1_SENSOR signals.

Attachment 1: MC1SENSOR-crop.pdf
MC1SENSOR-crop.pdf
  5939   Fri Nov 18 01:27:04 2011 DenUpdateIOOMC locked

[Mirko, Den]

While the MC was unlocked (and the local damping off) we've measured the coherence between GUR1_X and OSEM sensors. It was rather high, close to 1 at frequencies 0.1 - 1 Hz. That means that stack does not kill all coherence between seismic noise and mirror motion.

Then we've turned on the local damping and measured the coherence again between GUR1_X and OSEM sensors. It decreased due to some noise and was on the level of ~0.5. We did reduced the motion between the mirror and the frame by local damping but it is not obvious that we lost some coherence due to this effect. Probably, actuator adds some noise.

When we locked the MC, we did not see any coherence at 0.1 - 1 Hz between GUR1_X or STS1_X and OSEM sensors of MC1 and MC3 but we did see with MC2. The MC1 sensor was fixed by Suresh.

 

Attachment 1: cohnolocalpumping-crop_4.pdf
cohnolocalpumping-crop_4.pdf
Attachment 2: cohlocalpumping4-crop.pdf
cohlocalpumping4-crop.pdf
Attachment 3: cohlock4-crop.pdf
cohlock4-crop.pdf
  5957   Sat Nov 19 01:26:16 2011 DenUpdateIOOMode cleaner noise projection

Quote:

Instead, what we want is to project how the actual OSEM noise in the presence of no signal shows up as MC length. For that we should use the old traces of the OSEM noise with no magnets and then inject that spectrum of noise into the SUSPOS filter bank with all the loops running. We can then use this TF to estimate the projection of OSEM noise into the MC length.

That's right. The easier problem arises if we consider one of  MC mirrors. The coherence between OSEM sensors and GUR1_X in free moving regime is equal to 0.9 at frequencies 0.1 - 1 Hz. But with local dumping coherence is 0.6. We have

Mirror -> Sensor -> Satellite Module -> Whitening -> ADC -> Computer -> DAC -> Dewhitening -> Satellite Module -> Actuator -> Mirror

Somewhere we produce noise that kills part of coherence. We can use this method with the injection of spectrum of noise into the SUSPOS filter bank only for one mirror and see how the coherence between OSEM sensor and GUR1_X will change. If the change is small, we deal with something else. It the coherence will change from 0.6 to ~0.4, than we have big OSEM noise.

It might be also the problem that the amplitude of COIL_OUT signal is ~25. If it is in counts we may have noise from DAC. 

  6019   Sat Nov 26 19:37:12 2011 DenUpdateGeneralfoton files

 I've checked foton files for small numbers. There are several other filters besides "Cheby" that are presented with small numbers. For example, "BTW0.01" in the LOCKING_Q, LOCKING_I modules,  "SeisDaytime"  in the SUP_MC3_SP_NOISE and others. The output of the commands is presented below.

>chans

>cat C1???.txt | grep e-23

 

SUP_MC3_SP_Y_NOISE 2 12 4  16384      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC3_SP_YAW_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC3_SP_ROLL_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC3_SP_PIT_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC2_SP_Y_NOISE 2 12 4  16384      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC2_SP_YAW_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC2_SP_ROLL_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC2_SP_PIT_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC1_SP_Y_NOISE 2 12 4  16384      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC1_SP_YAW_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC1_SP_ROLL_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUP_MC1_SP_PIT_NOISE 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_MC3_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC3_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC3_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC3_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC3_LSC 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC2_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC2_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC2_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9978637592754149   0.9978663974923444   2.0000000000000000   1.0000000000000000

SUS_MC2_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC1_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC1_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_MC1_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_SRM_SUSYAW 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_SRM_SUSPOS 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_SRM_SUSPIT 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_PRM_SUSYAW 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_PRM_SUSPOS 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_PRM_SUSPIT 3 12 4  32768      0 Cheby         1.1175580413719e-23    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000

SUS_ETMX_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMX_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMX_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMX_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMX_LOCKIN1_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SUS_ETMX_LOCKIN1_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SUS_ETMX_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SUS_ETMX_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SUS_ETMY_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMY_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMY_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_ETMY_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SUS_PIT_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_ROLL_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_YAW_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_Y_NOISE_FILT 2 12 4  16384      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_PIT_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_ROLL_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_YAW_NOISE_FILT 2 21 4      0      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

SUS_Y_NOISE_FILT 2 12 4  16384      0 SeisDaytime    4.3736847644382e-23    -1.99994247406600     0.99994247737496    -0.00000000000000    -1.00000000000000

BS_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

BS_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

BS_LOCKIN1_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

BS_LOCKIN1_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

BS_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

BS_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

BS_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

BS_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMX_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMX_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMX_LOCKIN1_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMX_LOCKIN1_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMX_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMX_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMX_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMX_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMY_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMY_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMY_LOCKIN1_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMY_LOCKIN1_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

ITMY_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMY_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMY_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

ITMY_SUSYAW 3 21 4      0      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

PRM_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

PRM_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

PRM_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

PRM_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

PRM_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

PRM_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SRM_LOCKIN2_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SRM_LOCKIN2_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SRM_LOCKIN1_Q 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SRM_LOCKIN1_I 5 21 2      0      0 BTW0.01     1.351815922494362e-23  -1.9999929139431329   0.9999929139578397   2.0000000000000000   1.0000000000000000

SRM_SUSPIT 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SRM_SUSPOS 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

SRM_SUSSIDE 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

 

SRM_SUSYAW 3 12 4  32768      0 Cheby       1.117558041371939e-23  -1.9972699801052749   0.9972743606395355   2.0000000000000000   1.0000000000000000

 
> cat C1???.txt | grep e-21
 
ASS_LOCKIN9_Q 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN9_I 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN7_Q 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN7_I 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN29_Q 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN29_I 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN27_Q 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN27_I 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN24_Q 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN24_I 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN22_Q 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN22_I 0 21 2      0      0 LP          8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN14_Q 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN14_I 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN12_Q 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
ASS_LOCKIN12_I 1 21 2      0      0 LP50m       8.448680182849132e-21  -1.9999645699236510   0.9999645702913159   2.0000000000000000   1.0000000000000000
SUS_SRM_SUSSIDE 3 12 4  32768      0 Cheby         8.6572646852632e-21    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000
SUS_PRM_SUSSIDE 3 12 4  32768      0 Cheby         8.6572646852632e-21    -1.99726998010527     0.99727436063954     2.00000000000000     1.00000000000000
 
> cat C1???.txt | grep e-19
 
SUP_MC3_SP_Z_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUP_MC2_SP_Z_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUP_MC1_SP_Z_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUP_MC1_SP_YAW_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUP_MC1_SP_ROLL_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUP_MC1_SP_PIT_NOISE 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUS_ETMX_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
SUS_ETMX_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
SUS_Z_NOISE_FILT 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
SUS_Z_NOISE_FILT 1 21 4      0      0 StackVert     1.8769949851031e-19    -1.99887735863559     0.99888848406943     2.00000000000000     1.00000000000000
BS_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
BS_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
ITMX_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
ITMX_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
ITMY_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
ITMY_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
PRM_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
PRM_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
SRM_LOCKIN1_Q 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000
SRM_LOCKIN1_I 2 21 2      0      0 BTW0.1       1.35175496376953e-19  -1.9999291403672526   0.9999291418378861   2.0000000000000000   1.0000000000000000 
  6029   Mon Nov 28 18:53:35 2011 DenSummaryWienerFilteringseismic noise substraction

There is still a problem why GUR, STS signals are poorly coherent to MC_L.  But at least we can see coherence at 2-5 Hz. It might be useful to do something with adaptive filtering because it does not work at all for a long time. We start with Wiener filtering. I still doubt that static filtering is useful. Adaptive filter output is linear to its coefficients, so why not to provide adaptive filter with a zero approximation equal to calculated Wiener filter coefficients. Then you automatically have Wiener filter ouput + adaptively control coefficients. But if Wiener filter is already present in the model, I tried to make it work. Then we can compare performance of the OAF with static filter and without it.

I started with GUR1_X and MC_F signals recorded 1 month ago to figure out how stable TF is. Will the same coefficients work now online? In the plot below offline Wiener filtering is presented.

gur1_x.jpg

 

This offline filtering was done with 7500 coefficients. This FIR filter was converted to IIR filter with the following procedure:

1. Calculate frequency responce of the filter. It is presented below.

filter_response.jpg

2. Multiply this frequency response by a window function. This we need because we are interested in frequencies 0.1-20 Hz at this moment. We want this function to be > 1e-3 at ~0Hz, so that the DC component is filtered out from seismometer signal. From the other hand we also do not want huge signal at high frequenies. We know that this signal will be filtered with aggresive low-pass filterd before going to the actuator but still we want to make sure that this signal is not very big to be filtered out by the low-pass filter.

The window function is done in the way to be a differential function to be easier fitted by the vectfit3. Function is equal to 1 for 0.5 - 20 Hz and 1e-5 for other frequencies except neighbouring to the 0.5 and 20 where the function is cosine.

window.jpg

3. I've used vectfit3 software to approximate the product of the frequency response of the filter and window fucntion with the rational function. I've used 10 complex conjugate poles. The function was weighted in the way to make deviation as small as possible for interesting frequencies 0.5 - 10 Hz. The approximation error is big below 20 Hz where the window function is 1e-5 but at least obtained rational function does not increase as real function do at high frequencies.

filter_fitting.jpg

I tried to make a foton filter out of this approximation but it turns out that this filter is too large for it. Probably there is other problem with this approximation but once I've split the filter into 2 separate filters foton saved it. Wiener21 and Wiener22 filters are in the C1OAF.txt STATIC_STATMTX_8_8 model.

I've tested how the function was approximated. For this purpose I've downloaded GUR and MC_F signals and filtered GUR singla with rational approximation of the Wiener filter frequency response. From power spectral density and coherence plots presented below we can say that approximation is reasonable.

zpk_wiener.jpgzpk_wiener_coh.jpg

Next, I've approximated the actuator TF and inverted it. If TF measured in p. 5900 is correct then below presented its  rational approximation. We can see deviation at high frequencies - that's because I used small weights there using approximation - anyway this will not pass through 28 Hz low-pass filter before the actuator.

 actuator_fitting.jpg

I've inverted this TF p->z , z->p, k->1/k. I've also added "-" sign before 1/k because we subtract the signal, not add it. I placed this filter 0.5Actuator20 to the C1OAF.txt SUS-MC2_OUT filter bank.

The next plot compares online measured MC_L without static filtering and with it. Blue line - with online Wiener filtering, red line - without Wiener filtering.

wiener_mcl-crop.pdf

We can see some subtraction in the MC_L due to the static Wiener filtering in the 2-5 Hz where we see coherence. It is not that good as offline but the effect is still present. Probably, we should measure the actuator TF more precisely. It seems that there some phase problems during the subtraction. Or may be digital noise is corrupting the signal. 

Attachment 4: filter_fitting.jpg
filter_fitting.jpg
  6038   Tue Nov 29 15:57:43 2011 DenUpdateCDSlocation of currently used filter function

 

We are interested in the following question : Can the structures defined in fm10Gen.h (or some other *.c *.h files with defined as FLOAT variables) create single precision instead of double in the filter calculations?

 

typedef struct FM_OP_IN{
  UINT32 opSwitchE;     /* Epics Switch Control Register; 28/32 bits used*/
  UINT32 opSwitchP;     /* PIII Switch Control Register; 28/32 bits used*/
  UINT32 rset;          /* reset switches */
  float offset;         /* signal offset */
  float outgain;        /* module gain */
  float limiter;        /* used to limit the filter output to +/- limit val */
  int rmpcmp[FILTERS];  /* ramp counts: ramps on a filter for type 2 output*/
                        /* comparison limit: compare limit for type 3 output*/
                        /* not used for type 1 output filter */
  int timeout[FILTERS]; /* used to timeout wait in type 3 output filter */
  int cnt[FILTERS];     /* used to keep track of up and down cnt of rmpcmp */
                        /* should be initialized to zero */
  float gain_ramp_time; /* gain change ramping time in seconds */
} FM_OP_IN;  

 

  6039   Tue Nov 29 17:10:39 2011 DenUpdatedigital noiseSOS creation

One of the possibilities that we see a large low-frequency digital noise is due to Foton. I've checked the SOS coefficients that saves Foton with a Matlab coefficients. I used a 3 order low-pass cheby1 filter cheby1("LowPass",3,0.1,3) 

In matlab I generated SOS model using 3 approaches 


[A,B,C,D]=cheby1(3,0.1,3/1024) % create SS form

[sos,g]=ss2sos(A,B,C,D)  % convert to SOS form


[z, p, k]=cheby1(3,0.1,3/1024) % create ZPK form

[sos,g]=zp2sos(z,p,k)  % convert to SOS form


[b, a]=cheby1(3,0.1,3/1024) % create TF form

[sos,g]=tf2sos(b,a)  % convert to SOS form


As this is a 3 order filter, in the SOS representation we'll get 2 by 6 SOS - matrix. It is presented below. In each matrix place there 4 numbers - from the Foton file and obtained using these 3 methods.

GAIN

1.582261654653329e-07

1.582261654653329e-07

1.582261654653329e-07

1.582261655030947e-07

SOS-MATRIX

1              1.0000000000000000      #           0                                              #       1      #         -0.9911172660954457     #       0

1              1.0005663179617605      #           0                                              #       1      #         -0.9911172660954457     #       0

1              1.0000000000000000      #           0                                              #       1      #         -0.9911172660954457     #       0

1              0.9999894976396830      #           0                                              #       1      #         -0.9911172660997303     #       0

############################################################################################################

1              2.0000000000000000      #          1.0000000000000000         #       1      #        -1.9909750803252266      #      0.9911175825477769

1              1.9994336820732397      #          0.9994340026283055         #      1       #       -1.9909750803252262       #     0.9911175825477765

1              2.0000000000000000      #          1.0000000000000000         #      1       #       -1.9909750803252262       #     0.9911175825477765

1              2.0000105023603174      #          1.0000105024706190         #      1       #       -1.9909750803209423       #     0.9911175825434912

 

It seems that smth analog to zp2sos is used in Foton. We can see that due to representation error we have derivations in the 4 and 6 digits for SS and TF forms. This means that a pretty big mistake can run due to digital transforms even using double precision as in the Matlab test.

Alex Ivanov said that he'll fix that single precision problem and in the 2.5 release we won't have any FLOAT variables. Though we still do not understand how that variables declared as FLOAT can cause filter calculations. 

  6041   Tue Nov 29 18:31:40 2011 DenUpdatedigital noiseFoton error

 In the previous elog we've compared Matlab and Foton SOS representations using low-order filter. Now we move on to high order filters and see that Foton is pretty bad here.

We consider Chebyshev filter of the first type with cuf off frequency 12 Hz and ripple 1 dB. In the table below we summarize the GAINS obtained by Matlab and Foton for different digital filter orders.

Order Matlab Foton
2 5.1892960e-06 5.1892960e-06
4 6.8709377e-12 6.8709378e-12
6 5.4523201e-16 9.0950127e-18
8 5.3879305e-21 1.2038559e-23

 

 

 

 

 

We can see that for high orders the gains are completely different (ORDER of 2!!!). Interesting that besides of very bad GAIN, SOS-MATRIX Foton calculates pretty well. I checked up to 5 digit - full coincidence. Only GAIN is very bad.

The filter considered is cheby1("LowPass",6,1,12) and is a part of the bad Cheby filter where we loose coherence and see some other strange things.

  6045   Tue Nov 29 22:19:26 2011 DenUpdatedigital noisestraight line

 I tried to understand what part of the signal is corrupted while passing through a digital straight line without any filters. From here we can figure out what precision is used.

I analysed coherence between C1:SUS-MC3_LSC_EXCMON and C1:SUS-MC3_LSC_OUTMON without any filters between them. 

real_coherence.jpg

I did the simulation in Matlab using single and double precision. Basically, I took a random signal, made some operations with it to obtain some digital error:

signal1 = randn(1e6, 1);          signal2 = randn(1e6, 1);         signal3 = signal1+signal2;          signal4 = signal3 - signal2;

Then I plotted coherence between signal1 and signal4 that are actually the same signal but signal4 has some digital error. This was done both for single (left red plot) and double (right blue plot) precision.

float_coherence.jpg        double_coherence.jpg

From here we make a conclusion that C1:SUS-MC3_LSC_EXCMON and C1:SUS-MC3_LSC_OUTMON has single precision. The signal might be converted from double to single in the dtt tools but if dtt works with double precision then the problem is with signals.

  6046   Tue Nov 29 22:54:49 2011 DenUpdatedigital noisesingle precision

 In the previous elog we've proved that signals C1:SUS-MC3_LSC_EXCMON and  C1:SUS-MC3_LSC_OUTMON are in single precision. Now we try to understand if the precision is lost when the signals enter dtt tools or in the online code. For this measurement we just switch on one of the filters between the signals. By this we add mathematical operations inside the online code. If double precision is used there, then we'll see the same error as before, because the real error is still very small (~10-15) and dtt tools add this 10-7 error. But if the digital error will increase then no matter what kind of precision use dtt, online code uses single precision. At least at some points.

Test 1.   cheby1("LowPass",6,1,12) 

filter_coherence.jpg

 

Test 2.  cheby1("Lowpass",2,0.1,3)

chby1_coherence.jpg

 Test 3. butter("LowPass",8,10)

butter8_coherence.jpg

Test 4.  butter("LowPass",2,10)

butter2_coherence.jpg

We can see that coherence become worse. And longer filter - more digital error. This means that single precision is used in calculations.

 

  6052   Wed Nov 30 11:36:12 2011 DenUpdateCDSFiltering Noise issue tracked down ???

Quote:

 if((new_hist < 1e-20) && (new_hist > -1e-20)) new_hist = new_hist<0 ? -1e-20: 1e-20;

20 is indeed a random number. We can change it to 300. Alex said that during that iir filter calculations sometimes numbers are very small and if they are less then 1e-308 then a very slow code in the processor is executed and this will crash the online system. For single precision this number is 1e-38 and may be 10 years ago it was not decided for sure what to use - float or double. 20 will be "OK" for both but as we can see causes other problems.

Anyway, Alex removed this line from the code and added another code that sets the two proper bits in the MXCSR register and prohibits to the CPU to run the slow code. As far as I understand if the numbers are less then 1e-308 they become 0. Roughly, this is equivalent to 

 if((new_hist < 1e-308) && (new_hist > -1e-308)) new_hist = 0;

This is in 2.4 release. It is in the svn. I think we can install it and figure out if the problem is gone.

 

  6063   Fri Dec 2 20:16:41 2011 DenUpdatedigital noisefirst order transition

In order to verify our theory about coherence corruption in linear systems due to the line

if((new_hist < 1e-20) && (new_hist > -1e-20)) new_hist = new_hist<0 ? -1e-20: 1e-20;  

in the /opt/rtcds/caltech/c1/core/release/src/include/drv/fm10Gen.c in the iir_filter function I've changed -20 to other numbers and watched at the coherence input and output of the digital filter cheby1("LowPass", 3, 0.1, 0.5)cheby1("LowPass", 6, 1, 1.5). The sampling rate was 2K. The frequency responce of the filter presented in this figure.

freqz.pdf

The next plot shows psd and coherence of the signal for different numbers in the if-statement line : 1e-20 , 1e-25, 1e-100.

 trans.pdf

We can see that for present value coherence between input and output signals is small even for low frequencies. The psd of the output signal is also corrupted because at low frequencies it should have the same psd as input signal. For 1e-25 and 1e-100 we can see that coherence is close to 1 at low frequencies so if-statement does not work and we have a first order transition from bad to good filter performance with discontinious jump of coherence.

However, for 1e-25 and 1e-100 data is still corrupted by the round-off error. Lack of coherence for high frequencies can be explained by the fact that dtt tools use single precision for data analysis and output is too small to plot a right coherence. But the coherence is also not precisely 1 for low frequencies. Actually, it is 0.99 for this aggresive filter. We use double precision in the real-time code but still for such kinds of filters round-off error is present. As wrote Daniel Sigg for Cheby filter:  "You need a lot more digits than you may naively suspect. In the 8th order example, the output of each SOS is amplified by ~106. This regardless of the fact that the coefficients are all of order 1. If you require a level of 10-3 attenuation in the stop band, you would have lost 9 digits already. Then, add the fact that you have to do of order 104 subtractions to get from 16kHz to 12Hz, loosing another ~2 digits. On top, the high Q section is probably 10 worse than the others and you lost 12 digits. In a real example this may stack up even worse."

Next we need to figure out what effects does round-off error introduce in the performance of the interferometer.

  6064   Sat Dec 3 16:55:52 2011 DenUpdateIOOdigital noise in MC

I looked once again to the local OSEM sensors and MC length signals. Then I replaced 1e-20 to 1e-50 in the if-statement of the iir_filter function. Here I report about the difference of the signals in question.

First we look at the MC2 OSEM local sensor. In the figure below the psd of the signal is presented in three cases - with a free MC2 mirror without feedback, with a feedback signal and with a feedback signal with corrected if-statement. We can see that without FB the wire resonances are high and dumped when OSEMs are on. However we can see that below 1 Hz the psd of the sensor signal with 1e-20 in the if-statement is higher then psd of the sensor signal from free mirror. FB with 1-50 in the if-statement fixes this problem. 

psd_sensors.jpg

If we take a look on the plot of the coherence between GUR1_X and SENSOR signals we can see that coherence is corrupted when 1e-20 is used in the is-statement and is good when 1e-50 is used.

coh_sensors.jpg

 Next we look at the psd of the MC length. We can see how strongly these curves diverge below 1 Hz. The MC_F signal was also corrupted at higher frequencies.

psd_mcl.jpg

 The coherence between MC_F and GUR1_X is also improved.

coh_mcl.jpg

  6065   Sat Dec 3 18:29:20 2011 DenUpdateAdaptive Filteringcoherence

I've looked through the coherence between the MC length and seismometers after the if-statement problem was fixed. Coherence improved for all seismometers but is still not 1. It is possible that contribution from X, Y, Z directions split the coherence between them but at ~0.2-03 Hz we do not see much coherence for all these directions.

coh_mcl_seis.pdf

I looked at the coherence between MC2 OSEM signal and MC_F when the AUTO LOCKER is ON and OFF. I thought that we'll ses the same coherence for both regimes as laser is locker to the MC length. However, I figured out the coherence is worse when AUTO LOCKER is ON at frequencies 0.2-0.3 Hz.

sensor_locker.pdf

The first idea that comes to mind is that when feedback to the laser is provided, the pressure to the mirrors from the laser beam is changed.

  6066   Sun Dec 4 13:56:54 2011 DenUpdateIOOWFS

Yesterday I locked the MC and left at 8 pm. Analyzing the data I saw that MC was locked all time from 8 pm to 12.30 am when it lost lock. Moreover there was no light on transmition and reflected screens at all. I went to the PSL and saw that no red light comes to the MC from PSL, only green. I took infrared sensos to track the laser light. Then I came back to control room to study the medm diagram of the PSL. Then I came back and saw that the laser beam goes to the MC! I returned to control room and saw light on the MC screens. Does someone do something parallel with me through ssh?

I enabled the auto locker and saw the MC locked for a couple of seconds. After that the WFS were turned on automatically and I saw that the signal of the OSEM local sensors of the MC mirrors began to increase. So the WFS master provides not good feedback signal. I thought that it is due to my recompilation of c1mcs with a fixed if-statement line. And may be if c1mcs workes without digital noise and c1ioo with it then there might occur some mismatches and the signal is corrupted. For this assumption I've recompiled c1mcs back to 1e-20 in the if-statement and so added the digital noise back that I saw in the dtt tools.

However, the problem was still present - WFS feedback signal crashed the MC lock. I open the WFS master window and disabled the output to MC. I can see that the C1:IOO-WFS1_PIT_INMON and other input channels have reasonable values 8 - 20 but the output continues to increase up to 1000000. The output was off so the MC stayed at lock. As for now I turned off WFS so no feedback is applied to MC mirros.

  6067   Sun Dec 4 23:49:38 2011 DenUpdateIOOWFS

Quote:

Yesterday I locked the MC and left at 8 pm. Analyzing the data I saw that MC was locked all time from 8 pm to 12.30 am when it lost lock. Moreover there was no light on transmition and reflected screens at all. I went to the PSL and saw that no red light comes to the MC from PSL, only green. I took infrared sensos to track the laser light. Then I came back to control room to study the medm diagram of the PSL. Then I came back and saw that the laser beam goes to the MC! I returned to control room and saw light on the MC screens. Does someone do something parallel with me through ssh?

I enabled the auto locker and saw the MC locked for a couple of seconds. After that the WFS were turned on automatically and I saw that the signal of the OSEM local sensors of the MC mirrors began to increase. So the WFS master provides not good feedback signal. I thought that it is due to my recompilation of c1mcs with a fixed if-statement line. And may be if c1mcs workes without digital noise and c1ioo with it then there might occur some mismatches and the signal is corrupted. For this assumption I've recompiled c1mcs back to 1e-20 in the if-statement and so added the digital noise back that I saw in the dtt tools.

However, the problem was still present - WFS feedback signal crashed the MC lock. I open the WFS master window and disabled the output to MC. I can see that the C1:IOO-WFS1_PIT_INMON and other input channels have reasonable values 8 - 20 but the output continues to increase up to 1000000. The output was off so the MC stayed at lock. As for now I turned off WFS so no feedback is applied to MC mirros.

With the help of Suresh we have adjusted optics near PMC and input to the MC on the PSL and in the black box where WFS are. Surprisingly, some optics near WFS was not attached to the table. But these mirrors are not used. One screw was near the hole but not screwed in. This mirror is used. Suresh could also rotate other screws. I thought that they must be attached to the table more rigidly.

Then we found that WFS output matrix is wrong and Suresh recalculated it. After that we've locked the MC using WFS. C1:IOO-MC_RFPD_DCMON is 0.7-0.8. 

We also recompiled and reinstalled C1MCS and C1IOO with fixed if-statement and again saw how MC_F curve moves down. WFS error signals are also improved. But still some more work on output matrix is needed.

  6068   Mon Dec 5 02:55:30 2011 DenUpdateAdaptive FilteringC1OAF

I've added filter banks for correction path in the C1OAF model to use AA filters.  I compiled and installed the new version. I runs but does not sync. Probably, I've made a mistake in the some names of epics channels. Leave it for now, figure out tomorrow. If someone needs an old version, it is in the /opt/rtcds/caltech/c1/userapps/trunk/isc/c1/models/c1oaf_BACKUP20111204.mdl file. Corresponding medm screen is in the /opt/rtcds/caltech/c1/userapps/trunk/isc/common/medm/OAF_OVERVIEW.adl file.

  6075   Tue Dec 6 00:58:34 2011 DenUpdateWienerFilteringOAF current goal

After reducing the digital noise I did offline Wiener filtering to see how good should be online filter. I looked at the MC_F and GUR1_X and GUR1_Y signals. Here are the results of the filtering. The coherence is plotted for MC_F and GUR1_X signals.

oaf_goal_psd.png     oaf_goal_coh.png

We can see the psd reduction of the MC_F below 1 Hz and at resonances. Below 0.3 Hz some other noises are present in the MC_F. Probably tilt becomes important here.

OAF is ready to be tested. I added AA and AI filters and also a highpass filter at 0.1 Hz. OAF workes, MC stays at lock. I looked at the psd of MC_F and filter output. They are comparable, filter output adapts for MC_F in ~10 minutes but MC_F does not go down too much. Determing the right gain I unlocked the MC, while Kiwamu was measuring something. Sorry about that. I'll continue tomorrow during the daytime.

  6078   Wed Dec 7 00:11:58 2011 DenUpdateAdaptive FilteringOfflineAF

 I did offline adaptive filtering with yesterday's 3 hours of MC-F and GUR1X data. It turns out that normalized-lms can strongly outperform static Wiener filtering!

offlineaf_psd.png 

This is interesting. It might be something inside MC_F that Wiener static does not see. I think the problem is either with seismometer noise or tilt.

Attachment 2: offlineaf_coh.png
offlineaf_coh.png
  6093   Fri Dec 9 13:28:09 2011 DenUpdateAdaptive FilteringC1OAF

I tried to figure out why red NO SYNC label became present in the C1OAF_GDS_TP screen after I added AA filters to the C1OAF model.

C1OAF model contains 8 libraries C1OAF_ADAPT for 8 DOF. I changed C1OAF_ADAPT library to C1OAF_ADAPT_AA library where I added 28 AA filters for 28 witness channels. It turns out that if I use this library for all 8 DOF then I see NO SYNC label, if only for one DOF (MCL) then I see green IOP label. This means that using AA filters for each DOF too much channels of filters are created for online system to operate. I think there is some number inside the code that one can not exceed. Analyzing compilation output after "make c1oaf" I figured out that without using AA filters we have 632 filters and using AA we have 856 filters.

For now I'll use AA filters for MCL only.

  6095   Fri Dec 9 15:14:41 2011 DenUpdateCDSrelease 2.4

Alex has created a 2.4 branch of the RCD. Jamie, we can try to compile and install it. As a test a did it for c1oaf, it compiles, installs and runs once variables SITE, IFO, RCD_LIBRARY_PATH are properly defined. As we do not want to run one model at 2.4 code and others at 2.1, I recompiled c1oaf back to 2.1. Jamie, please, let me know when you are ready to upgrade to 2.4 release.

  6100   Fri Dec 9 17:53:31 2011 DenUpdateAdaptive FilteringC1OAF

[Jenne, Den]

AA filters for witness channels are added to the oaf model. It is working now and the number of memory used is not critical.  NO SYNC is not present any more.

  6110   Tue Dec 13 01:20:38 2011 DenUpdateAdaptive FilteringModifications to LSC, RFM models, added OAF model

Quote:

[Jenne, Mirko, with supervision from Jamie]

We are starting to create the new OAF model, so that it works with the new CDS system. 

 Why did you place Matt's code inside the simulink library and use the same library for all DOFs? I think this won't work out. Inside the .c code there are static variables. If all DOF use the same ADAPT_XFCODE() function, it means that they all mess there signals and coefficients with each other! Or the RCD during the compilation creates a copy of the function with the name of a library name in front? For example, ADAPT_MCL_ADAPT_XFCODE(). But then in the RCG manual it is claimed to name the .c file the same.

This problem can be fixed by creating .c files with proper names for each DOF. But here a memory question may arise. For 1 DOF we now have 28 witness channel. If we have a several minute filter, we use 28 * 104(filter length) * 3 (FIR coefficients, adapt input, corr input) * 8 (number of bytes in 1 double)  = 6.7 Mb / DoF. For 8 DOF we'll allocate ~55 Mb of memory in the kernel. The c1lsc cache size is 6 Mb per cpu. So we are definitely out of cache and it will take some time for a processor to communicate with ram. I wonder if it is OKEY for us to allocate this amount of memory as static arrays inside the kernel.

Now we use 6.7 Mb of memory because it seems to be a mistake with placing the same function for all DOF and we actually allocate for 1.

 

  6137   Mon Dec 19 17:17:02 2011 DenUpdateAdaptive Filteringfilter tap dependence

Online filter diverges. I did offline simulations with current c-code. Offline filter also diverges, even in the simplest case 

witness = randn(1e6, 1); target = witness + 0.01*randn(1e6, 1);

I tried to create a new implementation of FXLMS algorithm as a c code. Then with this c code I did offline filtering with MCL and GUR signals and compared the error signals depending on the length of the filter.

OfflineAF.png

One can see the code at the svn

adaptOnline - start here and choose algorithm

adaptive_filtering - Matlab implementation of AF

current_version.c - current version of the Filter (Matt's)

fxlms_filter.c - new version of the FXLMS filter

oaf.c - agent between Matlab and C (edited Matt's file)

Data samples can be found at nodus /users/den/wiener_filtering/data

  6199   Sun Jan 15 10:28:02 2012 DenUpdateAdaptive Filteringdelays

We can account for delays in the oaf system by compensating it in the adaptive path of the filter. But using only this procedure is not enough. Parameters mu and tau should be chosen accurately:

w = (1 - tau) * w;

w += mu * dw / norm;

NLMS algorithm without considering delays works well for mode cleaner length and gur1 seismometer signals, significantly reducing MC_F  with parameters mu=1, tau=0. These parameters are considered because nlms algorithm should converge with the highest speed when mu=1. However, if the system has a delay so at time moment n:

error_signal [n] = desired_signal [n] - filter_output [n-delay];

then the adaptive filter diverges for the same parameters mu=1 and tau=0 even for delay=1. For that reason we make the same calculations with tau = 1e-4 and tau = 1e-2 without reducing mu conserving the adaptation rate and get the same result as nlms algorithm without delays. Next figure shows MC_F signal, error after applying e-nlms filter with tau=1e-4 and tau=1e-2. "e-" is added to show that  a small number (epsilon) is added to the norm of the signal in order to prevent the filter from diverging in the beginning of the process when the norm is not well-determined yet.

2048_tau.png

The test was done offline with the sampling frequency 2048 Hz, without downsampling and any filters. We can see that tau=1e-4 is still not enough, tau=1e-3 or tau=1e-2 is as good as nlms without delays, tau=1e-1 and high are also bad.

Correctly choosing tau we have some freedom for delay compensation in the adaptation path. This is important as we do not know exactly what is the delay in the real system. We can measure it approximately. In order to figure out the range of reasonable delay errors we make a test with delay = 1, but to the adaptation path we give delays from 0 to 10. It turns out that adaptation path delays greater then 5 make the filter diverge, delays in the range 0-3 produce a reasonable error. In the figure below errors with adaptation path delays = 1 (correct) and 3 are presented.

2048_delays.png

  6200   Sun Jan 15 11:40:30 2012 DenUpdateAdaptive Filteringdownsampling

Here for the downsampling process we use a low-pass Bessel digital filter of order 6, normalized cut-off frequency = 0.1. In the plot presented below we compare the results with downsampling ratio = 1, 2, 4.

2048_downsampling.png

We can see that increasing the downsampling ratio, we increase the error of the filter. Moreover, the error at some particular frequency f seems to depend on the ratio f/Fs, where Fs - sampling frequency (2048 Hz) devided by downsampling ratio. Error is the same for all curves below 1 Hz but then begins to increase as we increase the sownsampling ratio. In order to figure out what the problem is - mistake in the filter code, inaccurate upsample algorithm or this is NLMS particularity, I've changed sampling frequency in the chans/daq/C1PEM.ini and C1IOO.ini files from 2048 Hz to 512 Hz for corresponding channels. Now, we compare the error from the filter working with 2048 Hz frequency, downsampling ratio = 4, low-pass filter = Bessel of order 6, normalized cut-off = 0.1 and filter working with 512 Hz sampling frequency, without downsampling and with corresponding Bessel low-pass filter with normalized frequency 0.4.

2048_512.png

MC_F measurement at 2048 Hz was done during the day, for that reason red curved is slightly higher then green in the resonance frequencies. But still we can see that these two cases are very much alike. For this reason, it seems that NLMS filter works better with higher sampling frequencies.

  6201   Sun Jan 15 12:18:00 2012 DenUpdateAdaptive Filteringrunning time

 In order to figure out what downsampling ratio we can take, we need to determine the running time of the fxlms_filter() function. If the filter length is equal to 5000, downsampling ratio is equal to 1, number of witness channels is 1 then with ordinary compilation without speed optimization one call runs for 0.054 ms (milli seconds). The test was done on the 3 GHz Intel processor. With speed optimization flags the situation is better

-O1 0.014 ms, -O3 0.012 ms

However, Alex said that speed optimization is not supported at RCG because it produce unstable execution time for some reason. However, by default the kernel should optimize for size -Os. With this flag the running time is also 0.012 ms. We should check if the front-end machine compilers indeed use -Os flag during the compilation and also play with speed optimization flags. Flags -O3 and -Os together might also give some speed improvement.

But for now we have time value = 0.012 ms as running time for 5000 coefficient filter, 1 witness channel and downsample ratio = 1. Now, we need to check how this time is scaled if we change the parameters.

5000 cofficients - 0.012 ms

10000 coefficients - 0.024 ms

15000 coefficients - 0.036 ms

20000 coefficients - 0.048 ms

We can see that filter length scaling is linear. Now we check downsampling ratio

ratio=1 - 0.048 ms

ratio=2 - 0.024 ms

ratio=4 - 0.012 ms

Running time on the dependance of downsample ratio is also linear as well as on the dependence of the number of witness channels and degrees of freedom. 

If we want to filter 8 DOF with approximately 10 witness channels for each DOF, then 5000 length filter will make 1 cycle for ~1 ms, that is good enough to make the downsample ratio equal to 4.

Things get a little bit complicated when the code is called for the first time. Some time is taken to initialize variables and check input data. As a result the running time of the first cycle is ~0.1 ms for 1 DOF that is ~10 times more then running time of an ordinary cycle. This effect takes place at this moment when one presses reset button in the c1oaf model - the filter becomes suspended for a while. To solve this problem the initialization should be divided by several (~10) parts.

  6243   Fri Feb 3 10:48:24 2012 DenUpdateComputersc1lsc kernel

This morning I killed again c1lsc kernel with the new realization of fxlms algorithm. It works fine with gcc compiler during the tests. However, smth forbidden for the kernel is going on. I'll spend some more time on investigatin it. Interesting thing is that I did not even pressed "On" at the OAF MEDM screen to make the code running. c1lsc suspended even before. May be there is some function-name mismatch.

After c1lsc suspention I recomiled back non-working code and rebooted c1lsc. c1sus is also bad after c1lsc reboot as they communicate. I killed x04, lsc, ass, oaf models on the c1lsc computer and sus, mcs, rfm, pem on the c1sus computer. Then I restarted x02 model and restored its burt snapshot from 08:07. After I started all models back and restored their burt snapshots from 08:07. Then I diag reset all started models.

Before starting new fxlms code I've shutted down all the optics so that possible c1lsc suspention would not make them crazy. After reboot I turned the coils back. Everything seems to work fine.

  6248   Fri Feb 3 17:17:47 2012 DenUpdateIOOMC SUS misalignment

Quote:

Reminder / Moral:  Everything cannot be considered to be "working fine" if the MC isn't locking.  See if you can figure out why, and especially if it's something that you screwed up, either fix it, or better yet, ask for help and learn how to fix what you broke.

When I left this morning, Steve was still working with the MC and it was unlocked anyway, I could not check it. By "fine" I meant only watchdogs. The thing is that before starting to work with c1lsc I turned off all the coils. Crazyness that Steve saw was after I turned them on back after reboot. This is a confusing thing - restarting models on c1lsc and burt restoring them is not enough. After I did it, everything at the STATUS MEDM screen was green, but the C1:SUS-???_??PD_VAR values went up after turning on coils. So sus and lsc communicated in a bad manner after the reboot. After restarting x02 model, the watchdogs were fine again.

  6249   Fri Feb 3 17:29:28 2012 DenUpdateComputersc1lsc kernel

The reason I've killed the c1lsc kernel was the following - when the code starts to run, it initializes some parameters and this takes ~0.2 msec per dof. Now, the old code did nothing with a DOF if C1:OAF-ADAPT_???_ONOFF == OFF. My code still initialized the parameters but then does nothing because no witness channels are given. But it spends 8*0.2 = 1.6 msec for initializing all 8 dof. As the code is called with frequency 2k, this was the reason for crashing. Now I've corrected my code, it compiles, runs and does not kill c1lsc. However, the old code would also kill the kernel if all DOF are filtered. So, when we'll use all 8 DOF, we'll have to split variable initialization.

But this is not the biggest problem. C1OAF model must be corrected, because, as for now, all 8 DOF call the same ADAPT_XFCODE function. As this function uses static variables, they will be all messed up by different DOF signals.

  6294   Sat Feb 18 12:23:09 2012 DenUpdateIOOMC

When I came to the 40m this afternoon, the MC was unlocked. Here is the trend of MC_F for last 2 hours

mc_trend.png

C1:PSL-PMC_PMCTRANSPD = 0.800

Should I just disable the auto locker or try to realign it?

  6296   Sat Feb 18 17:01:26 2012 DenUpdateAdaptive Filteringstatic variables

In order to prevent different DOF from redetermining static variables in the adaptive code, I've created a separate code for each DOF with the name ADAPT_XFCODE_{$DOF}.c

I've provided the links for these files in the c1oaf.mdl, compiled and run it. Now there are no conflicts between DOFs.

  6297   Sat Feb 18 18:29:38 2012 DenUpdateAdaptive Filteringonline filtering

I tried to filter MC_F from seismic noise measured by GUR1 seismometer. I've used 8000 tap filter, downsample ratio=8, delay=1. In the Figure the output of the filter is presented with MC_F signal.

output.pdf

We can see that output is close to the MC_F, but the phase for some reason is not zero. It should not be at 1 Hz - 10 Hz due to the actuator. But below these frequencies I do not see any reasons for the output phase to differ from MC_F phase. But it is possible, the phase of the actuator is evaluated very rough and the adaptive filter can't match it.

  6328   Mon Feb 27 21:26:22 2012 DenUpdatePEMseis box

I did liso simulation of the circuit in the seis box. I think that AD620 (first amplifier in the circuit) noise might be much less with the signal from guralps from 0.01 Hz. Here is the TF of AD620 output / circuit input.

ad620.pdf

The noise spectrum is at this node is

noise.pdf

The psd of the seismic noise below 1 Hz ~ 1u m/s => circuit input signal is ~1mv.

The TF of the whole circuit is

whole.pdf

This result differs from the graph on the circuit sheet, but may be it was done before the resistor parameteres changed. Back of the envelop calculations also show that it is not possible to acheive DC gain 200 while 50-800 Hz gain = 5000. I'll check with the spectrum analyzer.

AD620 might be a weak point in the simulation since this is not a "classical" operational amplifier, it contains a resistor that adjusts the gain. During the liso simulation I assumed that we have an ordinary opamp (with noise, gain and gbw parameters taken from the real ad620 datasheet) with a resistor parallel to the opamp = 50k and a resistor before the inverted input that corrsponds to R2. In this case the gain of the simulated opamp is the same as of the real one given by the formula 1 + 49.9k / R2, though noise parameters may change. This should be also checked with the spectrum analyzer.

  6332   Tue Feb 28 16:12:59 2012 DenUpdateAdaptive Filteringlunch talk

 Just to be clear what I said at the meeting, I write all this down here. Adaptive filtering of real signals (MC_F and GUR1_X) with all noises inside is 

gains.png

This is offline filtering but with real signals and with the C-code that is compiled at the 40m now. We can reduce the MC_F signal by ~100 below 10 Hz, but  the problem is that reducing the adaptation gain, the error increases. As a result when we move towards FxLMS algorithm with AA, AI and downsampling, we have to take the gain equal to ~1e-2 and we do not reduce any noise. 

The second demonstration of this problem is static Wiener filtering. This is the result

wiener.png

We can see that adaptive filtering outperforms the "optimal" filtering. This is because an adaptive filter can follow the changes of coefficients immediately while the Wiener filter averages them. This is the mathematical formulation:

mcl_real = coeff _real* seismic_noise_real + other_noise

mcl_real - the real length of the MC,

coeff_real - real coefficients, that represent the transfer function between seismic noise and MC length,

other_noise - noise uncorrelated to the seismic noise seismic_noise_real

But in the world of our measured signals we have the equation

mcl_measured = coeff * seismic_noise_measured + other_noise

mcl_measured = TF_mcl * mcl_real

seismic_noise_measured = TF_seis * seismic_noise_real

where TF_mcl and TF_seis - transfer functions from the real world to measurements.

It seems to me that TF_mcl or TF_seis are not constants and for that reason the TF between measured seismic noise and mcl is not constant. But it is exactly what an adaptive or Wiener filter tries to define:

coeff(time) = average(coeff(time)) + delta(coeff(time))

The result of applying average(coeff) is the green line in the Figure 2 - error after applying the Wiener filtering.

delta(coeff) - the changing part of the transfer function is caught by the adaptive filtering. The lower the gain, the lower is the capability of adaptive filter to catch these changes. Theoretically. the error after applying adaptive filter can be presented like this:

E(error*error) = E(other_noises*other_noises) + 1/(2-mu)*mu*E(other_noises*other_noises)  + 1/ {mu*(2-mu)} * Tr(Q) * A

where mu = adaptation gain

Q - covariance matrix of delta(coeff)

A - norm of the seismic signal

The first term in this equation is the dispersion of other noises, the second term is the error of the adaptive filter due to non-zero gain, the third term is due to the changes in the transfer function - we can see that it is proportional to 1/mu. This term explains why the error increases while mu decreases.

Now I'm looking for the part in the path of the signals where the transfer function can change. As I mentioned above, this is not a change in the real world, it is the change in the measured signlals. My first guess is the quantization error - we do not have not enough counts. If this is not the case, I'll move to other things of the signal path.

  6338   Wed Feb 29 01:02:06 2012 DenUpdatePEMseis box measured

I've measured the input signal to the seismic box from seismometer Guralp 1. The spectrum of the signal in the "input +" (TP 1) is

input.png

 

The spectrum below 1 Hz is ~250 uV/sqrt(Hz). As the input is differential, then the input voltage is 0.5 mV/sqrt(Hz). The spectrum of the "output +" signal (TP 2) is

output.png

 

So the gain at ~ 1Hz is ~20. I've measured the transfer function between the "input +" and "output +" (TP1 and TP2) for all 9 circuits

tf.png

The channels 1-6 are of new modification and have gain ~20 at the frequencies 0.2 - 100 Hz. Below 0.2 Hz the gain is reduced. 100 Hz - cut off frequency of the low-pass filters. Meanwhile channels 7-9 (old configuration) have much more gain and 10_50 Hz filters work here.

The coherence between  "input +" and "output +" (TP1 and TP2) for 9 circuits is

 

coherence.png

We can see that channel VERT 3 is very bad. For others coherence is lost below 0.2 Hz. The spectrum analyzer noise measured is ~1000 times less then the signal at these frequencies. I'll pay more attention to this loss of coherence at low frequencies. Something is noisy.

  6343   Thu Mar 1 00:05:23 2012 DenUpdatePEMseis box noise

I've moved GUR1 seismometer from MC2 to the working tables in order not to disturb the MC while working with the seismometer box. The new place for the GUR1 for a few days is near the printer, cables and blue boxes. I've cleaned all mess and wires from the floor, so that seismometer now looks like that

DSC_3959.JPG

I've connected 2 inputs of the N/S 1 circuit of the seismometer box with a 50 Ohm resistor and measured the noise at the output. The comparison with the seismic signal is

noise.png

The noise increased at 0.5 Hz and is pretty big. This might explain the loose of coherence at low frequencies.

  6345   Thu Mar 1 21:48:34 2012 DenUpdatePEMseis box noise

Quote:

The noise increased at 0.5 Hz and is pretty big. This might explain the loose of coherence at low frequencies.

 This is because spectrum analyzer did not plot the real noise spectrum at the first few points at low frequencies. I've remeasured the noise at 1mHz - 3Hz at "output -" (TP9) and compared it to the seismometer signal

noise2.png

The noise seems to be much less then the signal. I've measured the noise several times and once I got a huge amount of noise

noise.png

 

I made another measurement in some time and got the low noise again. A circuit might have a bad contact somewhere.

The plan is to change AD620 adjustable resistor (R2) from 5.49kOhm to 500Ohm to increase the gain from 20 up to 200.

  6346   Fri Mar 2 11:05:28 2012 DenUpdatePEMseis box gain

I've replaced R2 resistor that adjusts the gain of the AD620 amplifier. Previous value 5491Ohm, new value 464Ohm, so the gain should increase up to ~200-250. Only at the N/S 1 circuit!

LISO simulation of the circuit transfer function and noise are

tf_new.pdf

noise_new.pdf

LISO predicts gain ~45-46 dB = 200 and noise at the level of 10uV at 1Hz. The transfer function and noise measured are

tf_analyzer.png

 noise_analyzer.png

The noise measured is 5 times higher then predicted by LISO. Though I described AD620 as an ordinary amplifier with 49.9kOhm resistor connecting output and inverted input. I specified the noise spectrum 10 nV and 1/f corner frequency 30 Hz. In the AD620 datasheet noise spectrum is 10 - 100 nV depending on the gain. However, the gain is 200 and noise spectrum should be 10 nV. May be in reality it is not the case. It also possible that the noise model used by LISO is not valid for AD620 as it is not an ordinary operational amplifier.

  6347   Fri Mar 2 16:05:52 2012 DenUpdateSAFETYlaser safety

Today I've attended the laser safety seminar.

  6349   Fri Mar 2 18:55:06 2012 DenUpdatePEMseis box

I've put the seismometer box back to the 1x1, Guralp is back under MC2. When the seismometer is not plugged in, the noise is

dv_noise.png

Now, I'm going to collect some data from GUR 1 and MC_F and see if the problem with adaptive filter (increasing errror while decreasing mu) will be gone.

 

  6356   Mon Mar 5 15:15:15 2012 DenUpdatePEMRCG

[Alex / Den]

I've encountered a problem that C1:PEM-SEIS_GUR1_X_IN1 is saved in the int format. It turned out that inside the code the signal is also in the int format.  It is not just a saving error. It should not be so as ADC works at 64k and the model runs at 2k.

Why? There is a bug somewhere in the generation of the code. c1pem.c looks suspicious to Alex because there is a mismatch in the ADC numbers with the simulink model.

Solution: upgrade to 2.4 version - most probably it was fixed there. If not, Alex will handle this problem.

  6427   Sun Mar 18 00:29:24 2012 DenUpdatePEMsts-2

I've turned off the power of the STS-2 readout box as it provides outputs with ~10 Volts DC offset! AA filter box works in the range -2 +2 Volts, so we do not have any useful information anyway. I'll adjust the mass positions in the seismometer.

  6490   Thu Apr 5 18:24:55 2012 DenConfigurationAdaptive Filteringoaf starts to work

Today I tried to make the lms filter to work online. I played around with the signals (GUR1_X and MC_F) to pre-whiten them and in the end the following configuration worked out:

1. mu = 0.03, tau = 1e-5, downsample=8, nCoeff = 4000, delay = 5 (sample-and-hold delay is not included in the new code, it should be added here!)

2. witness pass: AA32 = cheby1("LowPass", 4, 1, 32) AND 0.1:0

3. witness adaptation path: AA32 AND AI32 = cheby1("LowPass", 4, 1, 32) AND 0.1:0

4. error path: AA32 AND 0.1:0 AND anti_1Hz. Before I added anti_1Hz filter oaf did nothing. This filter tries to approximate the actuator transfer function. Note, it is not in the witness adaptation path. This is some sort of whitening.

5. correction path: AI32, gain = -1

Convergence time ~ 5 mins. The performance of the filter is far not perfect compared to the offline implementation. But it deals with a stack though.

oaf2.pdf

  6491   Fri Apr 6 09:57:24 2012 DenUpdateAdaptive Filteringstatic starts to work

I made static filter to work to evaluate the actuator TF.. Here is the result of static filtering:

static1-crop.pdf

 What I did:

 I did offline simulation of the MC_F Wiener filtering using 2 witness signals - GUR1X and GUR1Y. I've downsampled the data from 2048 to 128 Hz and applied the Wiener filter with 10000 for each witness channel:

wiener_filtering.pngcoeffs.png

                                            Result of the filtering                                                                                     Filter coefficients for gur1x and then gur1y

xTF.pngyTF.png

                                         Gur1x -> MC_F transfer function                                                                          Gur1y -> MC_F transfer function

Then using vectfit I approximated obtained transfer functions in the region 0.5 - 20 Hz. I used a window function and then weights to get a more precise result in this range using only 8 poles and zeros.

xfitting.pngyfitting.png

I obtained the zpk-model for each witness channel and entered it into the FOTON splitting it into 2 parts before that because FOTON does not like too long filters. These zpk-models are at the C1:OAF-STATIC_STATMTX_8_8 and C1:OAF-STATIC_STATMTX_8_9 filter banks.

GUR1X:

z =

  7.527339430029315 +31.603999069997801i
  7.527339430029230 -31.603999069997823i
 27.897703898191267 + 0.000000000000071i
 -6.437806394766186 + 9.893955654289517i
 -6.437806394766159 - 9.893955654289510i
  1.114401249545640 + 5.479278396987240i
  0.176877296954015 + 0.000000000000006i
  1.114401249545616 - 5.479278396987245i


p =

 -0.407251778925379 + 6.263247012022007i
 -0.407251778925379 - 6.263247012022007i
 -0.230672968859081 + 6.846868757063707i
 -0.230672968859081 - 6.846868757063707i
 -2.871419857491615 +13.707864827517826i
 -2.871419857491615 -13.707864827517826i
 -2.134260618362721 +18.319129999777648i
 -2.134260618362721 -18.319129999777648i


k =

     4.113285626223658e-04

GUR1Y

z =

 17.961416874092624 +13.631821252434328i
 17.961416874092642 -13.631821252434353i
 -8.788634771726304 + 7.653357335975781i
 -8.788634771726285 - 7.653357335975777i
 -0.037906973323273 + 5.133348020858679i
 -0.164348392996182 + 3.588803405511463i
 -0.164348392996187 - 3.588803405511474i
 -0.037906973323277 - 5.133348020858679i


p =

 -0.027577318242359 + 5.174655410828068i
 -0.027577318242359 - 5.174655410828068i
 -0.500384298611703 + 6.310552036591990i
 -0.500384298611703 - 6.310552036591990i
 -0.237055716999485 + 6.881204941979009i
 -0.237055716999485 - 6.881204941979009i
 -1.408223271160550 +14.874570175309771i
 -1.408223271160550 -14.874570175309771i


k =

    -2.723835471763049e-04

 Then I approximated the reversed actuator TF  and placed it to the C1:OAF-SUS_MC2_OUT filter bank. The gain to the static filter output is -1.

P.S. Also the static matrix was filled with 1 for some reason. Here is the script to fix it if if will be bad again

for i in {1..8}
do
    for j in {1..28}
    do
        element="C1:OAF-STATIC_STATMTX_"$i"_"$j"_GAIN"
        ezcawrite $element 0
    done
done

 

 

  6492   Fri Apr 6 10:31:07 2012 DenUpdateAdaptive Filteringstatic and adaptive

I've run static and adaptive filters simultaneously. AA32 filters rotate the phase of the witness signals GUR1X and GUR1Y and now the performance of the static filter is worse. Next time I'll recalculate Wiener filter coefficients taking this into account. But still 2 filters together can deal with a stack better.

static_oaf.pdf

  6496   Fri Apr 6 15:06:05 2012 DenUpdateIOO1 Hz resonance

I think we can try to damp 1 Hz resonance more. In September it was not seen because of the digital noise. After we've figured it out, 1 Hz resonance began to be more clear (blue line).

psd_mcl.jpg

Now applying oaf we reduce the effect of the stack and the 1 Hz resonance is even more clear:

mcl.jpg

 

  6497   Fri Apr 6 16:22:15 2012 DenUpdateEnvironmentseism box

I've changed R2 resistor in the seism box for the VERT 1 channel from 464 Ohm to 1051 Ohm to reduce the gain of this channel by a factor of 2. This should help the GUR1Z signal not to be corrupted inside the AA box, so we can use it in the adaptive filtering.

  6498   Fri Apr 6 16:35:37 2012 DenUpdateComputersc1ioo

c1ioo computer can not connect to the framebuilder and everything is red in the status for this machine, C1:FEC-33_CPU_METER is not moving.

EDIT by KI:

 We rebooted the c1ioo machine, but none of the ftont end model came back. It looked like they failed the burt process for some reasons according to dmesg.

Then we restarted each front end model one by one, and every time after immediately we restarted it we hit the 'BURT' button in the GDS screen.

Everyone came back to the normal operation.

  6511   Mon Apr 9 17:03:38 2012 DenUpdateEnvironmentLms vs Wiener

I tried to figure out why offline LMS filter subtract seismic noise much better from MC_F then the Wiener filter. I did the calculations twice - with my codes and with Matlab in-build functions, the results are the same. So this is not a code error.

The coherence between GUR 1, 2 and MC_F is still poor. Wiener filter is linear and its performance is confined to the frequency ranges where we see coherence. Lms filter is non-linear and it may be possible to subtract the noise even if non-linear effects are present in the system.

gur12_mcl.png

I've checked seismometer readout box again. I've soldered 50 Ohms to plus and minus inputs to VERT 1,2 N/S 1,2, E/W 1,2 - GUR 1 and 2 use these channels. Then I put the box back and connected it to the ADC.

seismboxnoise.png

The plot shows that the readout box noise is below the ADC noise. It is possible that amplifiers introduce non-linear effects. To check this I plotted the coherence between OSEM sensors and GUR1X signal:

gur1_osem.png

The coherence between OSEM sensors and GUR1X is pretty good, so may be witness path is not responsible for low coherence at 0.1 - 0.5 Hz between MC_F and GUR 1,2. IT seems that MC_F is bad at low frequencies. I terminated the input to the Channel 1 of the Pentek Generic board, where MC_F is plugged in.

mcl_noise.jpg

ADC is also good. Something else is wrong.

ELOG V3.1.3-