ID |
Date |
Author |
Type |
Category |
Subject |
2548
|
Tue Jan 26 19:51:44 2010 |
Sanjit, rana | Update | Adaptive Filtering | OAF details |
We turned on the OAF again to make sure it works. We got it to work well with the Ranger as well as the Guralp channels. The previous problem with the ACC is that Sanjit and Matt were using the "X" channels which are aligned the "Y" arm. Another casualty of our ridiculous and nonsensical coordinate system. Long live the Right Hand Rule!!
The changes that were made are:
- use of RANGER channel (with ACC_MC1_X and/or ACC_MC2_X)
- mu = 0.01, tau = 1.0e-6, ntaps = 2000, nDown = 16
- nDelay = 5 and nDelay = 7 both work (may not be so sensitive on delay at low frequencies)
- Main changes: filter bank on the PEM channels - ASS_TOP_PEM_## filters: 0.1:0, 1:, Notch24, AA32, gain 1
- Added the AI800 filter for upsampling in MC1 (should not matter)
Other parameters which were kept at usual setting:
- CORR: AI32, gain = 1
- EMPH: 0.001:0, AA32, gain = 1
- ERR_MCL: no filters, gain = 1
- SUS_MC1: no filter, gain = 1
- PEM Matrix: All zero except: (24,1), (15,2), (18,3)
- ADAPT path filter: union of CORR and EMPH filters, gain 1
- XYCOM switches # 16-19 (last four on the right) OFF
Screenshots are attached.
Burt snapshot is kept as: /cvs/cds/caltech/scripts/OAF/snaps/ass_burt_100126_211330.snap
taken using the script: /cvs/cds/caltech/scripts/OAF/saveOAF
we should put this in ASS screen.
ERROR Detected in filter ASS_TOP_PEM_24 (RANGER): 1: was actually typed as a 1Hz high pass filter!
(Correcting this one seems to spoil the adaptation)
Possibly this makes sense, we may not want to block witness signals in the 0.1-20 Hz range.
11:40 PM: Leaving the lab with the OAF running on 5 PEM channels (Ranger + Guralp 1&2 Y & Z). There's a terminal open on op440m which will disable the OAF in ~2.8 hours. Feel free to disable sooner if you need the MC/IFO. |
Attachment 1: C1ASS_TOP.png
|
|
Attachment 2: C1SUS_SRM_XYCOM1.png
|
|
Attachment 3: Untitled.png
|
|
2555
|
Mon Feb 1 18:31:00 2010 |
Sanjit | Update | Adaptive Filtering | OAF details |
I tried downsampling value 32 (instead of 16), to see if it has any effect on OAF. Last week I encountered some stability issue - adaptation started to work, but the mode cleaner was suddenly unlocked, it could be due to some other effect too.
One point to note is that different downsampling did not have any effect on the CPU meter (I tried clicking the "RESET" button few times, but no change). |
2557
|
Mon Feb 1 21:51:12 2010 |
Sanjit | Update | Adaptive Filtering | OAF details |
I tried some combination of PEM channels and filters to improve OAF performance at other frequencies, where we do not have any improvement so far. There is progress, but still no success.
Here are the main things I tried:
For the ACC channels replaced the 0.1 Hz high pass filters by 3Hz high pass and turned off the 1: filter.
Then I tried to incorporate the Z ACC/GUR channels, with some reasonable combination of the others.
The Z axis Guralp and Accelerometers were making OAF unstable, so I put a 0.1 gain in all four of those.
Following the PEM noise curves Rana has put up, we should probably use
- two ACC_Y channels (3:0, Notch24, AA32)
- two GUR_Z channels (filters: 0.1:0, 1:, AA32, gain 0,1)
- one RANGER_Y, just because it works (0.1:0, 1:, Notch24, AA32)
In the end I tried this combination, it was stable after I reduced the GUR_Z gain, but looked very similar to what we got before, no improvement at 5Hz or 0.5Hz. But there was a stable hint of better performance at > 40Hz.
Possibly we need to increase the GUR_Z gain (but not 1) and try to use ACC_Z channels also. Since we can not handle many channels, possibly using one GUR_Z and one ACC_Z would be worth checking. |
2571
|
Fri Feb 5 00:52:55 2010 |
Sanjit | Update | Adaptive Filtering | OAF at 0.1-1.0 Hz |
At 0.1-1.0Hz, there is some coherence between MC_L and RANGER_Y & GUR_Y, see the first figure. Also GUR_Z has low noise there. So I used all five of them, increased the gains of GUR_Z from 0.1 to 0.5. Some improvement near 0.5Hz. We possibly can not do any better with these PEM measurement, as the coherence of the adapted error signal and the PEM channels is almost zero, see the second figure. May be we need to think about placing the seismometers at different places/orientations.
However, there is lot more scope at higher frequencies, lot of coherence at 5-100Hz.
|
Attachment 1: OAF_04FEB2010_noOAF.png
|
|
Attachment 2: OAF_04FEB2010.png
|
|
2572
|
Fri Feb 5 01:04:58 2010 |
Sanjit | Update | Adaptive Filtering | OAF at > 5Hz |
There is lot of coherence between the error signal and PEM channels at 5-100Hz. We had been applying a 1Hz low pass filter to all the GUR and RANGER channels for stability. I turned those off and OAF still works with mu=0.0025, this will give us some more freedom. Kind of annoying for testing though, it takes about 45min to adapt!
In any case, there is no significant improvement at high frequencies as compared to our usual OAF performance. Also, the low frequency improvement (see previous e-log) is lost in this set up. I think, we have to adjust the number of taps and channels to do better at high frequencies. Also, delay can be important at these frequencies, needs some testing.
|
Attachment 1: OAF_04FEB2010_highFreq.png
|
|
2575
|
Sat Feb 6 00:10:08 2010 |
Sanjit | Update | Adaptive Filtering | OAF at > 5Hz |
Did some more test to get better performance at higher frequencies.
Increased # taps to 4000 and reduced downsampling to 4, without changing the AA32 filters, from CORR, EMPH and the matching ADPT channels. But for testing I turned off AA32 from the input PEM channels. So that high frequency still gets blocked at CORR, but the adaptive filters have access to higher frequencies. Once we fix some reasonable downsampling, we should create corresponding AA filters.
I used only two channels, RANGER/GUR2_Y and GUR1_Z, and basically they had only one filter 0.1:0
This set up gave little better performance (more reduction at more frequencies), at some point even the 16HZ peak was reduced by a factor of 3. The 24Hz peak was a bit unstable, but became stable after I removed the Notch24 filters from PEM channels, to ensure that OAF is aware of those lines. There was some improvement also at the 24Hz peak.
|
4854
|
Wed Jun 22 12:29:57 2011 |
Ishwita | Summary | Adaptive Filtering | Weekly summary |
I started on the 16th with a very intense lab tour & was fed with a large amount of data (I can't guarantee that I remember everything ....)
Then... did some (not much) reading on filters since I'm dealing with seismic noise cancellation this summer with Jenne at the 40m lab.
I'll be using the Streckeisen STS-2 seismometers & I need to use the anti aliasing filter board that has the 4 pin lemo connectors with the seismometers & its boxes that require BNC connectors. I spent most of the time trying to solder the wires properly into the connectors. I was very slow in this as this is the first time I'm soldering anything.... & till now I've soldered 59 wires in the BNC connectors... .
|
5402
|
Wed Sep 14 01:21:17 2011 |
Jenne | Update | Adaptive Filtering | Modifications to LSC, RFM models, added OAF model |
[Jenne, Mirko, with supervision from Jamie]
We are starting to create the new OAF model, so that it works with the new CDS system.
I created (and did an "svn add" for) a new c1oaf.mdl, in the same place as the current c1lsc.mdl . Since the oaf will kind of be working with ISC things, I decided to put it in that folder. So far this new OAF model just has SHMEM/PCIE memory sharing things to get info from the LSC and PEM models. The OAF model has dcuid=22 (the same as in the old system), and lives on the LSC machine with specific_cpu=4. This is the CPU number that Yoichi was going to use, but he ended up putting his FF stuff directly into the LSC model for delay reasons.
I modified the c1rfm.mdl to take seismometer and accelerometer info from the PEM model, and give it to the "rfm" via shmem, and then using PCIE (dolphin) to get the channel to the OAF model.
I modified the c1lsc model to have shmem outputs that go from the degrees of freedom to the OAF, and shmem inputs from the OAF's output to sum into the DoFs, just like Yoichi's FF stuff. I also removed the old OAF_OUT, because it would only allow me to select one DoF at a time, and I will eventually want the ability to do multiple amounts of OAFing at the same time. Hopefully.
All of the above changes have been svn'ed with nice log messages into the cds svn.
I have not yet modified the PEM model to give the seis/acc information to the RFM model.
I will need to acquire the PSL's PZT input as a representation of the mode cleaner's length if I want to apply the OAF to the MC to recreate past work. |
5404
|
Wed Sep 14 12:01:05 2011 |
rana | Update | Adaptive Filtering | Modifications to LSC, RFM models, added OAF model |
For the acquisition of the MC_F channel, I suggest taking the FAST_MON BNC output from the blue FSS interface card in the Eurocard crate in the PSL rack. This can then be piped into the 2-pin LEMO plug (Ch. 1) of the Generic Pentek DAQ card which used to acquire the MC_L signal from the MC Servo Board. |
5449
|
Sun Sep 18 15:34:09 2011 |
Koji | Update | Adaptive Filtering | Modifications to LSC, RFM models, added OAF model |
[Koji Kiwamu]
This modification of the LSC model made the rows of the LSC output matrix shifted. This caused the ASS scripts nonfunctional.
Kiwamu fixed the channel names in the ASS script.
Quote: |
[Jenne, Mirko, with supervision from Jamie]
I modified the c1lsc model to have shmem outputs that go from the degrees of freedom to the OAF, and shmem inputs from the OAF's output to sum into the DoFs, just like Yoichi's FF stuff. I also removed the old OAF_OUT, because it would only allow me to select one DoF at a time, and I will eventually want the ability to do multiple amounts of OAFing at the same time. Hopefully.
|
|
5550
|
Mon Sep 26 18:59:11 2011 |
Jenne | Update | Adaptive Filtering | Plan for making MC_F |
Quote: |
For the acquisition of the MC_F channel, I suggest taking the FAST_MON BNC output from the blue FSS interface card in the Eurocard crate in the PSL rack. This can then be piped into the 2-pin LEMO plug (Ch. 1) of the Generic Pentek DAQ card which used to acquire the MC_L signal from the MC Servo Board.
|
[Jenne, Den]
Suresh tells us that he already has this channel physically plugged in. Probably as a result of Valera's MCASS work. Neat. We just have to make the channel. Right now the signal goes straight into some lockin stuff, so there is no actual "C1:IOO-MC_F" channel.
We don't want to make the new channel right now, since it is nighttime, and Kiwamu and Suresh are working on things. So. Tomorrow. In the morning:
We will add a fast test point to the C1IOO model, and call it "C1:IOO-MC_F". We will also route this signal via memory stuff over to the OAF model so that we can do adaptive filtering on the MC. Then we will compile all the things. Or at least all the things that we touched. This will go hand-in-hand with the compling of Mirko's sweet new OAF model, which we were planning on compiling in the morning anyway. Neat.
Things to compile tomorrow: c1ioo and c1rfm, because of channel routing. c1oaf because of all the new stuff. That should be all. |
5555
|
Tue Sep 27 09:47:52 2011 |
Suresh | Update | Adaptive Filtering | Plan for making MC_F |
Quote:
|
Quote: |
For the acquisition of the MC_F channel, I suggest taking the FAST_MON BNC output from the blue FSS interface card in the Eurocard crate in the PSL rack. This can then be piped into the 2-pin LEMO plug (Ch. 1) of the Generic Pentek DAQ card which used to acquire the MC_L signal from the MC Servo Board.
|
[Jenne, Den]
Suresh tells us that he already has this channel physically plugged in. Probably as a result of Valera's MCASS work. Neat. We just have to make the channel. Right now the signal goes straight into some lockin stuff, so there is no actual "C1:IOO-MC_F" channel.
We don't want to make the new channel right now, since it is nighttime, and Kiwamu and Suresh are working on things. So. Tomorrow. In the morning:
We will add a fast test point to the C1IOO model, and call it "C1:IOO-MC_F". We will also route this signal via memory stuff over to the OAF model so that we can do adaptive filtering on the MC. Then we will compile all the things. Or at least all the things that we touched. This will go hand-in-hand with the compling of Mirko's sweet new OAF model, which we were planning on compiling in the morning anyway. Neat.
Things to compile tomorrow: c1ioo and c1rfm, because of channel routing. c1oaf because of all the new stuff. That should be all.
|
Is it okay to have two names for the same signal? We would have both MCS_MCL and MC_F referring to MC length signal. This signal is picked up from the MC-Servo (analog) and brought into the CDS through the adc_0_0 channel in C1IOO. Then this signal is sent from C1IOO to C1MCS model without going through the c1rfm model. This seems to break the current protocol that signals passed between machines have to go through the c1rfm model. It should be sufficient to send this signal to c1rfm once and from there redirect to MCS and OAF from there, with an appropriate name. |
5557
|
Tue Sep 27 11:52:33 2011 |
Jenne | Update | Adaptive Filtering | Plan for making MC_F |
Quote: |
Quote:
|
Quote: |
For the acquisition of the MC_F channel, I suggest taking the FAST_MON BNC output from the blue FSS interface card in the Eurocard crate in the PSL rack. This can then be piped into the 2-pin LEMO plug (Ch. 1) of the Generic Pentek DAQ card which used to acquire the MC_L signal from the MC Servo Board.
|
[Jenne, Den]
Suresh tells us that he already has this channel physically plugged in. Probably as a result of Valera's MCASS work. Neat. We just have to make the channel. Right now the signal goes straight into some lockin stuff, so there is no actual "C1:IOO-MC_F" channel.
We don't want to make the new channel right now, since it is nighttime, and Kiwamu and Suresh are working on things. So. Tomorrow. In the morning:
We will add a fast test point to the C1IOO model, and call it "C1:IOO-MC_F". We will also route this signal via memory stuff over to the OAF model so that we can do adaptive filtering on the MC. Then we will compile all the things. Or at least all the things that we touched. This will go hand-in-hand with the compling of Mirko's sweet new OAF model, which we were planning on compiling in the morning anyway. Neat.
Things to compile tomorrow: c1ioo and c1rfm, because of channel routing. c1oaf because of all the new stuff. That should be all.
|
Is it okay to have two names for the same signal? We would have both MCS_MCL and MC_F referring to MC length signal. This signal is picked up from the MC-Servo (analog) and brought into the CDS through the adc_0_0 channel in C1IOO. Then this signal is sent from C1IOO to C1MCS model without going through the c1rfm model. This seems to break the current protocol that signals passed between machines have to go through the c1rfm model. It should be sufficient to send this signal to c1rfm once and from there redirect to MCS and OAF from there, with an appropriate name.
|
Suresh makes a fine point. I think the channel between c1ioo and c1mcs should always have had to go through the c1rfm model. I don't know why it wasn't. Anyhow, I have changed things so that there is one signal passing from c1ioo to c1rfm, and that signal is split in two, and goes to both c1oaf and c1mcs. The naming convention I used last night is the one I kept: C1:IOO-RFM_MCL goes from c1ioo to c1rfm, and then C1:RFM-OAF_MCL goes from c1rfm to c1oaf, and C1:RFM-MCS_MCL goes from c1rfm to c1mcs.
We can't compile until Mirko and I figure out what to do with the OAF model though. Mirko, Den and I were looking at the c1oaf model, to make sure it is ready to compile, and I'm not sure that it is. And we need everything with common channel names to be compiled at the same time, so I can't compile any of the models today, until we get this figured out.
The problem is thus: The old TOP_XFCODE that mevans wrote back in 2008 takes in a certain number of inputs, calculates the new filter coefficients, and spits out the filtered signals. Back in those days, we only ever gave the adaptive system one control (target) signal at a time. Now, we want to be able to do multiple, if we so desire. I don't know exactly how to do this yet. Either we need to modify the code to make it a super-code, or we can have one copy of the code for each control signal (MC_F, XARM, YARM, DARM, MICH, etc...). Do we want to have one code adapt everything at once, and have a giant MIMO system, or do we want to have many SISO-like systems in parallel (SISO-like, because each one would take in one control signal, and many seismometer signals, and output many filtered seis signals, but it wouldn't be combining control signals together)?
Either one of these options could be waaay to computationally tough for the computer. The old computer was basically railed when we had one adaptive block, with one control signal and 7 seismometers. 7 was the max number of auxiliary channels we could use. So, how much faster are the new computers?? Do we need to have one OAF per DoF that we want to filter? |
5572
|
Wed Sep 28 22:30:01 2011 |
Jenne | Update | Adaptive Filtering | OAF is disabled |
I am leaving the OAF disabled, so there should be nothing that goes to the suspensions from the OAF.
Disabled for the OAF means all the outputs are multiplied by 0 just before the signals are sent back over to the LSC system to be summed in and sent to the suspensions. So 0 times anything should mean that the OAF isn't injecting signals.
In other news, while Mirko was trying to figure out the c-code, I began making a new OAF screen. It is still in progress, but it's in c1oaf/master/C1OAF_OVERVIEW.adl If you open it up, you can see for yourself that the OAF is disabled. (Eventually I'll put an enable/disable button on the LSC screen also, but that hasn't happened yet.) |
5575
|
Thu Sep 29 11:25:55 2011 |
Jenne | Update | Adaptive Filtering | Tried new c-code, Fail. |
[Mirko, Jenne]
Mirko edited the c-code to use Den's stuff that he put in the elog last night. We then tried to compile and install, but it crashed c1lsc again. We reverted to the simple, working c-code, pushed the physical reset button on c1lsc, and things started getting better. The suspensions had the same problem as last night...we had to do a soft shutdown of c1sus to get things better again.
I did a by-hand burt restore for all of the models on c1lsc and c1sus, since the auto burt restore isn't working. |
5576
|
Thu Sep 29 12:56:27 2011 |
Jenne | Update | Adaptive Filtering | Meditations on the OAF |
[Mirko, Den, Jenne]
We're modifying the c1oaf model, and we got to talking about the "Fx" part of "FxLMS". In the past, we put in a guess for the filter. What if we use the static wiener filter as the F, and send the wiener filtered witness channels to the adaptation algorithm?
Are the wiener filter and the plant compensation filter ("Fx") the same? Will this work? Or is there some reason that they must be different?
Also: Notes to self: Put in filtered witness channels as well as regular into Adapt block. Make sure that the order/number of inputs is correct. |
5602
|
Mon Oct 3 16:18:05 2011 |
Jenne | Update | Adaptive Filtering | Meditations on the OAF |
Quote: |
[Mirko, Den, Jenne]
We're modifying the c1oaf model, and we got to talking about the "Fx" part of "FxLMS". In the past, we put in a guess for the filter. What if we use the static wiener filter as the F, and send the wiener filtered witness channels to the adaptation algorithm?
Are the wiener filter and the plant compensation filter ("Fx") the same? Will this work? Or is there some reason that they must be different?
Also: Notes to self: Put in filtered witness channels as well as regular into Adapt block. Make sure that the order/number of inputs is correct.
|
More meditations...
Mirko and I were talking about the tunability required for each DoF. For right now, we're going to give each DoF its own mu and tau (adaptation gain and adaptation decay), but we're leaving all of the other things (number of taps, number of witnesses, delay, downsample rate) the same for each DoF's adaptation. This may need to change later, but we'll get there when we get there.
The one I'm most concerned about is the number of witnesses... Mirko is suggesting that we give each adaptation algorithm all witnesses, and unused ones should converge to ~0. I agree in principle, but I'm not sure that it's actually going to work that way. I think we may need to be able to tell the algorithm which witnesses to look at for which DoF.
Also, the Delay.... we may need to adjust it for each DoF. In Matt's OAF "manual" in elog 395, he mentions the need to calculate the delay based on a plant TF. Presumably since (except for the MC) all the witnesses come in together, and all the DoFs come in together, the delay should be about the same for all? We'll have to see... |
5730
|
Mon Oct 24 19:48:16 2011 |
Mirko | Update | Adaptive Filtering | Filter execution time |
Toyed around some more with the adaptive filters.
Execution time:
nTaps Downsampling factor Execution time average / max in ca. 3 min [us], (480 us available)
1000 16 110 / 150
2000 16 280 / 340
3000 16 380 / 470
4000 16 Over limit
Now we are running with Downsampling 32, 4000 Taps => max 410us execution time.
I tried to desynchronize the downsampled operations of the filters of the different DOFs. That however increased execution time by about 10%. So I undid that.
|
5738
|
Tue Oct 25 20:04:40 2011 |
Mirko | Update | Adaptive Filtering | Adaptive filter witness and EP SNR |
We currently have the code running for all DOFs using all witness channels. By default nothing is applied. C-Code parameters can be changed via the respective EPICS variables. Sanity checks in the C-Code make sure the code doesn't crash when nothing / zeros are fed to the code. Let's look into applying FF to one DOF only as a starting point. We start with MCL.
Remember there are two possible signals to look into MC-F and MC-Servo. See page 5695 http://nodus.ligo.caltech.edu:8080/40m/5695
Dark noise: MC-F over MC-Servo which is unconnected in this measurement:

=> At least 20dB SNR. ADC noise should not be an issue. Of course more is always better.
Coherence of seismometers to MCL:
STS1 is located at the vertex. x-axis along the x arm.
GUR1 is located at the IMC MC2 mirror. Same orientation.

=> 1. Only the x-direction has good coherence (to be expected)
2. Only good coherence at 1.5-4Hz (huh?)
So probably other noise sources are dominating. Let's look into noise projections. Remember IMC autoalignment is off.
A quick adaptive filter run with only the GUR1 and STS1 witnesses applied only to MCL didn't really do anything. Some more thought needs to be invested into the AA and shaping filters. |
5740
|
Tue Oct 25 21:49:13 2011 |
Den | Update | Adaptive Filtering | Adaptive filter witness and EP SNR |
Quote |
Coherence of seismometers to MCL:
STS1 is located at the vertex. x-axis along the x arm.
GUR1 is located at the IMC MC2 mirror. Same orientation.

=> 1. Only the x-direction has good coherence (to be expected)
2. Only good coherence at 1.5-4Hz (huh?)
So probably other noise sources are dominating. Let's look into noise projections. Remember IMC autoalignment is off.
A quick adaptive filter run with only the GUR1 and STS1 witnesses applied only to MCL didn't really do anything. Some more thought needs to be invested into the AA and shaping filters.
|
Indeed, only GUR1_X is reasonable. Static Wiener filtering (length = 2500) of MCL with witness channels GUR_1_X, GUR_1_Y, GUR_1_Z proves your measurements.
We need to callibrate seimometers. I think that now we see velocity, not displacement. It might be useful to amplify the seimometer singal before ADC to make sure that our signal is not ADC noise. |
Attachment 1: gur1_x.jpg
|
|
Attachment 2: gur1_y.jpg
|
|
Attachment 3: gur1_z.jpg
|
|
5772
|
Mon Oct 31 19:39:00 2011 |
Jenne | Update | Adaptive Filtering | Screens, code, computers |
[Mirko, Jenne]
I finished (mostly? maybe?) the OAF screens. They're pretty awesome.
While we were playing with the OAF, trying to do some oafing, the output of the code decided to just be zeros. We did a test, and in the c-code set the output to be a constant value, and that worked. But when we put it back to normal (being adaptive) and recompiled, it still only outputs zeros. The code is receiving both witness and error signals, so we don't know what's going on.
In the course of trying to make things work again, we did a complete reboot of c1lsc and c1sus. Did a burt restore. Everything (except our weird code problem) should be fine again. Optics are damping happily. |
5777
|
Tue Nov 1 18:16:50 2011 |
Den | Update | Adaptive Filtering | Adaptive filter witness and EP SNR |
Quote: |
Coherence of seismometers to MCL:
STS1 is located at the vertex. x-axis along the x arm.
GUR1 is located at the IMC MC2 mirror. Same orientation.

=> 1. Only the x-direction has good coherence (to be expected)
2. Only good coherence at 1.5-4Hz (huh?)
So probably other noise sources are dominating. Let's look into noise projections. Remember IMC autoalignment is off.
A quick adaptive filter run with only the GUR1 and STS1 witnesses applied only to MCL didn't really do anything. Some more thought needs to be invested into the AA and shaping filters.
|
The possible explanation to this effect is the following:
Seismic noise mainly consists of the Love and Rayleigh surface waves. In the simulations we've taken 2 perpendicular Love waves and 2 perpendicular Rayleigh waves that interfere under the test mirrors. This interference produces both translational and tilt movements. Then we can see the coherence between translational motion and cavity length.

1. The coherence at big frequencies is small due to the passive isolation.
2. The coherence at 1 Hz is 0 due to the wire resonance.
3. The coherence between 1 and 10 Hz is reasonable. At the real 40m's measurements we can see only good coherence for gur1_x and sts1_x but this is the matter of adjusting seismic waves amplitude and direction. In the simulation we've assumed that all waves are of the same amplitude. The really interesting thing is that
4. The coherence below 0.8 Hz began to grow. We don't see this in real measurements.
But let's simulate the seismometer measurements. It measures not only translational motion but also tilt and with amplitude proportional to g / omega^2. On the Figure below the spectrum of translation motion, tilt and tilt as seen by seismometer is presented. We can see that at low frequencies tilt begins to dominate over the translational motion. We assumed the speed of waves in the region 30 - 60 m/sec.

Let's now plot the coherence between the cavity length and seismometer signal.

We can see that the coherence between seismic signal from measured by seismometer and cavity length is gone below 1 Hz where tilt becomes important.
Now let's try to filter out the seismic noise from the cavity length using both static Wiener filtering and adaptive Mfxlms algorithm. For both filters we've used AA filter before the filters and also AI filter after adaptive filter. The downsampling ratio was 4, the sample frequency 256. We can see that nothing is really subtracted due to the pollution of the seismometer signal due to tilt motion.

Assume we do the same computational experiment but with the seismometers that measure only ground translational motion and tilt do not affect on them. Then we have a reasonable subraction of seismic noise at low frequencies even with the filters of the length 100 as shown on the figure below.

Let's look through an order of magnitude analysis. Assume ground motion consists of only one wave with amplitude A and only vertical movement: z(t) = A*sin(2 pi 0.1 t). So the frequency of the wave is 0.1 Hz. If A = 10-6 m => the amplitude of the suspended mirror motion is also approximately 10-6 m, as we have no isolation at low frequencies. The tilt angle has the amplitude alpha = 2*pi*A/lambda, where lambda - wavelength of the ground wave, lambda = v/f = 40/0.1 = 400 m, v - speed of the wave, f - frequency. Then alpha = 10-8 rad. If the distance between ground and mirror suspension point is 1 m, then mirror motion amplitude due to tilt is B = 10-8 m << A.
It turns out that tilt does not effect much on the cavity length compared to the ground translational motion, but it affects a lot on the seismometer signals, that are used as witness signals in the filtering. For that reason we need tiltmeters to filter seismometer signals in order to obtain pure translational ground motion. |
5810
|
Fri Nov 4 14:18:24 2011 |
MIrko | Update | Adaptive Filtering | Coherence between seismometers and MC length |
Looking into the coherence between the seismometers and IMC length (MC_F):
FIrst with the seismometers only AC filtered at around 0.003 Hz and AA30Hz:
 
Ignore the increase in coherence at very low frequencies. That is an artefact.
Then with an additional filter single complex pole @1Hz Q=1000 (giving 20dB per decade in attenuation above 1Hz) , only for GUR1X:
 |
5811
|
Fri Nov 4 15:24:13 2011 |
Mirko | Update | Adaptive Filtering | Adaptive FF on the MC doesn't make sense |
[Den, Jenne, Mirko]

Here is the story:
1. High gain
The control loop has a high gain at the interesting frequencies. The error point (EP) before the servo is approx. zero and the information how much the mirror would move is in the feedback point (FB) behind the servo. The mirror doesn’t actually move because of the high gain. This is the case of the grav. wave detectors and medium frequencies (> approx. 50Hz, <<1kHz). Adding feed-forward (FF) to this doesn’t actually keep the mirror quieter. In fact if you look into the FB and subtract the seismic you make the mirror move more. Yes this is the case we have for the mode cleaner, doesn’t make sense.
In a real GW detector FF however isn’t totally useless. The FB tells you how much the mirror moves, due to GWs, seismic etc. When you record the FB and subtract (offline) the seismic you get closer to the real GW signal.
2. Low gain
When you, for technical reasons, can’t have a high gain in your control loop the EP contains information of how the mirror actually moves. You can then feed this into the adaptive filter and add its output to the FB. This will minimize the EP reducing the actual mirror motion. This is the case we will have for most or all other degrees of freedom in the 40m.
The reason we have so much gain in the mode cleaner length control is that we don’t actually move mirrors around. We change the frequency of the incoming laser light. You can do that crazy fast with a big amplitude. This gives us a high UGF and lots of gain in the 1Hz range we are interested in.
We now change the adaptive filter to look at the EP for all DOFs except for the MC. We calculate the effect of the FF on the MC length signal without ever applying the FF to the MC length control. |
5816
|
Fri Nov 4 21:52:58 2011 |
Den | Update | Adaptive Filtering | coherence |
[Mirko, Den]
We still think about the coherence between seismic noise and mode cleaner length. We beleive that
1. Below ~0.1 Hz tilt affects on the seismometers as was simulated http://nodus.ligo.caltech.edu:8080/40m/5777
2. From 0.1 to 1 Hz is an interesting region. We try to figure out why we do not see any coherence here. Tilt does not seem to dominate.
At 1 Hz coherence might be lost because of the sharp resonance. For example, if the mirror is suspended to the platform by wires with f = 1 Hz and Q = 1000, then the coherence between platform motion and mirror motion will be lost as shown on the figure below.

For this reason we tried to "help" to the adaptive filter to guess transfer function between the ground motion and mirror motion by multiplying seimometer signal by the platform -> mirror transfer function. As we do not know exactly eigen frequency and Q of the wires, we did a parametric simulation as shown on the figure below

The maximum coherence that we could achieve with treak was 0.074 compared to 0.056 without. This was achieved at f=1.0011 Hz but with surprisingly high Q = 330. And though this did not help, we should keep in mind the tecnique of "helping" the adaptive filter to guess the transfer function if we partly know it.
Another unexpected thing is that we see come coherence between gur1_x and mode cleaner WFS pitch signal at frequencies 0.1 - 1 Hz

From this we can suggest that either mode MC_F channel does not completely reflect the mc length at low frequencies or WFS2 shows weard signal. |
5825
|
Sun Nov 6 21:09:03 2011 |
rana | Update | Adaptive Filtering | coherence |
Quote: |
[Mirko, Den]
We still think about the coherence between seismic noise and mode cleaner length. We beleive that
|
The 'helping' trick is a good one: we should use our best guess for the stackTF and the pendulumTF and put it into the IIR filter bank to pre-filter the seismometer signals before they get to the MC mirrors. Also should remember that the signal we send to suppress the seismic motion is applied to the pendulum as a force, not a displacement.
The 3 Hz fast cutoff in the MC_F signal is a good clue. It means that at low frequencies, perhaps the noise source is going through a digital 3 Hz elliptic or Chebychev filter. |
5835
|
Mon Nov 7 16:42:56 2011 |
Jenne | Update | Adaptive Filtering | BLRMS's to monitor OAF channels |
I copied Mirko's PEM BLRMS block, and made it a library part. I don't know where such things should live, so I just left it in isc/c1/models. Probably it should move to cds/common/models. To make the oaf compile, you have to put a link in /opt/rtcds/caltech/c1/core/branches/branch-2.1/src/epics/simLink , and point to wherever the model is living.
I then put BLRMSs on the control signals coming into the OAF, and after the Correction filter bank in the Adapt blocks, so we can check out what we're sending to the optics. |
5842
|
Tue Nov 8 18:06:43 2011 |
Mirko | Update | Adaptive Filtering | Noise injections to MC1-3 PIT & YAW |
With fancy analysis tools approaching usability I looked some more into noise projections from PIT,YAW motion of the MC mirrors to MC length.
Injection channels are: C1:IOO-MC1-PIT_EXC. Actual injection signal is recorded in C1:IOO-MC1-PIT_OUT and similar.
Source channels for the projection are C1:IOO-WFS1_I_PIT_OUT_DQ and similar.
Response channel is C1:OAF-MCL_IN_IN1 or C1:IOO-MC_F_DQ.
MC auto-alignment was off.
1. Fixed sine injection @ 0.5Hz
Every injection lasted 4mins.
Start time |
DOF |
Amplitude [counts_pk] |
rough SNR in ASD BW 0.04Hz |
16:09 |
MC1PIT |
25 |
- |
16:14 |
MC1YAW |
40 |
12 |
16:21 |
MC2PIT |
35 |
5 |
16:26 |
MC2YAW |
35 |
5 |
16:34 |
MC3PIT |
45 |
5 |
16:39 |
MC3YAW |
45 |
- |
2. Filtered white noise injection
Generated white noise from 0.5Hz-20Hz, then filtered that in the C1:IOO-MC1-PIT and similar filters by the following TF, (Notch 1Hz, Q=3, 40dB & 2 zeros @ 1.1Hz)

All injections lasted 4mins. I left the filters in the first filter bank but disabled them.
Start time |
DOF |
Amp. @ 0.5Hz [counts_pk (?)] |
17:01 |
MC1PIT |
250 |
17:10 |
MC1YAW |
400 |
17:16 |
MC2PIT |
400 |
17:21 |
MC2YAW |
400 |
17:26 |
MC3PIT |
500 |
17:31 |
MC3YAW |
500 |
|
Attachment 2: MC1PIT_Noise_inj.png
|
|
Attachment 3: Noise_Inj_MC2PIT.png
|
|
Attachment 4: Noise_Inj_MC2YAW.png
|
|
Attachment 5: Noise_Inj_MC3PIT.png
|
|
Attachment 6: Inj_Noise_MC3YAW.png
|
|
Attachment 7: Inj_Noise_MC1YAW.png
|
|
5848
|
Wed Nov 9 14:23:35 2011 |
Jenne | Update | Adaptive Filtering | OAF MC Delay Measurement |
As described in elog 2063 and the mevans document, we need to measure the TF of the OAF's plant, to find the delay.
At DC, the phase is 2.5deg, and at 32Hz, the delay is -4.6Hz (extrapolated from the points at ~30deg and ~38deg). The DTT file is in /users/Templates/OAF/OAF-MCL-Delay-9Nov2011.xml .
This gives a phase lag of 7.1deg at the Nyquist freq.
7.1 / 180 * 32 = 1.26, so ~1 cycle delay. Not so much. The new ADCs are waaaay faster than the old 110Bs. Yay! |
Attachment 1: OAF-MCL-Delay-9Nov2011.pdf
|
|
5856
|
Wed Nov 9 20:35:58 2011 |
Mirko | Update | Adaptive Filtering | Seismic noise injection into the MC |
Very elaborated measurement ;-)
On 11-11-08:
18:40 Stomp near STS1 for 2mins
18:47 Jump near GUR1 for 2mins
18:52 Walk from MC2 approx. half-way to vertex for 2mins
Tried to see if jumping / stomping the ground near STS1 / vertex or GUR1 / MC2 would show up in the seismometer or MC length data.
In GUR1 jumping / stomping clearly shows up in the timeseries. Also it clearly shows up as a low frequency signal if you walk to a position near MC2. E.g. walk from the vertex to MC2. Stop near the cones. Gives a big dip on GUR1X, that recovers in 10-20sec if you remain stationary. Big "hill" if you come from x-arm end and stop on the x side of MC2. So probably lots of tilt to GUR1X coupling at low frequencies.
Nothing was really visible in spectra (see below).
Resonances:
There appear to be a lot of resonances in the 10-20Hz range, see e.g. 1st attached pic.
Coherence:
Looking at the coherence of difference axis of the seismometers. Kind of dirty measurement, could have all kinds of reasons.
Quite a bit of coherence in STS1 at 5-6Hz. Possibly limiting the STS1X to MC-F coherence to up to 4Hz?


|
Attachment 1: Inj_spectra_at_GUR1_all_DOFs.fig
|
Attachment 2: Inj_spectra_at_GUR1_all_DOFs.png
|
|
Attachment 3: Inj_spectra_at_STS1_all_DOFs.fig
|
Attachment 4: Inj_spectra_at_STS1_all_DOFs.png
|
|
Attachment 7: Coherence_GUR.fig
|
Attachment 8: Coherence_STS1.fig
|
5858
|
Wed Nov 9 21:32:38 2011 |
Mirko | Update | Adaptive Filtering | Put accelerometers 4-6 on top of MC2 tank |
Put the accelerometers on top of MC2. Orientated as the arms,GUR1 and STS1:

Should be fixed a bit more rigidly.
Looking into the signals at a quiet time:

Hmm. Either the acc. are mislabeled or there is really bad x-y coupling. The connectors in the back of the acc. power supply / amplifier box are in ascending order. |
Attachment 3: Coherence_quiet_time.fig
|
5864
|
Thu Nov 10 16:44:54 2011 |
Mirko | Update | Adaptive Filtering | Looking into MC_F & PSL misalignment |
[Den, Mirko]
While doing the things below we accidentally misaligned the PSL laser. Thanks to Suresh and Jenne for realigning!!
There are a lot of strange features in MC_F (see for example http://nodus.ligo.caltech.edu:8080/40m/5738 )
To get some better understanding of the signals in the control loop we looked some more into what happens to the MC feedback signal after it exits the MC servo board (D040180 see DCC).

The MC_F signal is actually the servo signal: http://nodus.ligo.caltech.edu:8080/40m/5695
The Thorlabs temperature controller is actually used in the PZT path!
We measured the LP filter in the PZT path (that is kind of mislabeled as temp.)

|
5867
|
Thu Nov 10 22:00:38 2011 |
Mirko | Update | Adaptive Filtering | Looking into MC_F & PSL misalignment |
Quote: |
[Den, Mirko]
While doing the things below we accidentally misaligned the PSL laser. Thanks to Suresh and Jenne for realigning!!
There are a lot of strange features in MC_F (see for example http://nodus.ligo.caltech.edu:8080/40m/5738 )
To get some better understanding of the signals in the control loop we looked some more into what happens to the MC feedback signal after it exits the MC servo board (D040180 see DCC).

The MC_F signal is actually the servo signal: http://nodus.ligo.caltech.edu:8080/40m/5695
The Thorlabs temperature controller is actually used in the PZT path!
We measured the LP filter in the PZT path (that is kind of mislabeled as temp.)

|
We looked into the signal from the MC servo board at different position at the PSL table.
We looked into the FB going into the temp. and PZT parts of the FB.
Temp.:

PZT:

We also looked at the signal in just in front of the FSS box No idea why the elog doesn't preview these pdfs.




Lots of extra noise there. We will check out where that comes from.
|
5869
|
Fri Nov 11 00:55:53 2011 |
Den | Update | Adaptive Filtering | MC_F |
[Mirko, Den]
Not satisfactory work of adaptive filtering make us to think about the signals that we use. Now we try to deal with mode cleaner and analize its length. We take MC_F channel. We know that MC_F is used as a feedback signal to the laser frequency and laser changes it's frequency linear to the input modulation signal up to ~1kHz. Than is MC_F is length of MC, not velocity or acceleration. If so, it's form due to seismic noise + company of other noises + stacks and wires should be approximately like the left plot. Instead we see the right plot.
 
Possibly, left-plot form signal is not possible to transmit through the wires and adc. Most signal at medium and high frequencies would be lost because of wire and adc noise. For that reason mode cleaner length signal might be amplified at frequecnies >~20 Hz by some bandpass filter.
Where is this highpass filter and what is the form of this filter?
It might be just after the photodetector in order not to transmit real mode cleaner length through the wires. But if wires and not very noisy, it could be somewhere before ADC.
But anyway, for the laser frequency feedback the corresponding low pass filter should be used.
Where is this lowpass filter and what is the form of the filter?
We followed the mode cleaner length signal up to TT FSS and measured the mode cleaner length, that is used as an input to TT FSS. As shown http://nodus.ligo.caltech.edu:8080/40m/5867 MC_F is different from the signal that is given to TT FSS. This is not clear because we do not have smth that could effect on the signal that much before branch node and recording of MC_F. The main difference is the cut off at the MC_F signal at 3 Hz. It might be a digital filter but we do not see any filters between adc_0_0 up to MC_F test point - straight line. This means that we have an analog filter somewhere between that blue box where the branch point is and ADC. We need to find it. But at least, we do not have a lowpass filter before FSS. So it is probably after it.
So, we need to find the 3 filters that we think affect on the MC_F channel in order to figure out why we have such a bad coherence between seismic signal and mode cleaner length. |
5871
|
Fri Nov 11 10:30:27 2011 |
rana | Update | Adaptive Filtering | MC_F |
There should be a whitening filter in the Pentek Generic DAQ board (Eurocard with 8 differential LEMO inputs). It used to be that the MC_L channel came in through here and I believe it has 2 stages of 150:15 pole:zero filters.
I don't remember if it is one or two stages, but this should be easy to measure with a function generator or by driving this input using the MC2 UL Coil monitor and doing the transfer function in DTT (as Koji and Jenne did for the demod boards). |
5879
|
Sat Nov 12 02:00:36 2011 |
Mirko | Update | Adaptive Filtering | MC-F and other signals |
Regarding http://nodus.ligo.caltech.edu:8080/40m/5867 and http://nodus.ligo.caltech.edu:8080/40m/5869 :
MC_F signal:
The measurements on p. 5867 were done using the ADC attached to the PEM computer. There was a big difference between the MC_F signal recorded directly after the server board and the signal just before the FSS board as recorded by a PEM channel.
To understand how this happens we measured the signal at different places with a spec. analyzer:
1. WIth a locked MC measuring the signal just before the PEM ADCs (meaning after a 60ft BNC cable)
2. Same position, but unlocked and seemingly dark MC
3. Locked MC, signal just before the FSS box
4. MC_F signal that is usually going into the Pentek Generic board and is recorded in C1:IOO

=> The 60ft BNC cable adds a considerable amount of noise, but doesn't fundamentally change the signal. It is weird that the signal is white from approx. 4Hz on.
Due to Jenne's measurement ( http://nodus.ligo.caltech.edu:8080/40m/5848 ) we know the TF from MCL through PD, mixer Pentek and into C1:IOO looks like this:

This is with the double HP from 15Hz on that should be in the Pentek. So one might expect a less white signal going into the FSS board...
PEM ADCs
The dark noise in the PEM ADCs is actually a factor 10 higher than in the IOO ADCs. Still ok wrt the the seismometers.
We also tried to measure essentially the dark noise of the whole seismometer readout (seismometer box, then ADC). That seemed ok, but is of limited value since the seismometer electronics behave a bit strange when there is no seismometer connected.

|
Attachment 3: Compare_signals_at_all_places.fig
|
Attachment 5: Channels_attached_to_the_PEM_ADC.fig
|
5882
|
Sat Nov 12 02:46:13 2011 |
Den | Update | Adaptive Filtering | stacks and ground |
We measured the coherence between the seismometer near the MC2 stack and accelerometers on the vacuum tank where MC2 is. Because accelerometers produce small signals at low frequencies, which are comparable with adc noise, we amplified the accelerometer signal by a factor of 20. We could not do it more because though adc has 40 V range, the black box that follows the channel sockets can transmit only 2.5 V max amplitude signal. Probably, this was done because old adc accepted 2 V max amplitude.


We were able to found some coherence at 0.1-1 Hz though the accelerometer signal is rather noisy. So to consider stack as a noise source is still possible. This measurement should be better done with two seismometers, one on the floor, the other on the stack. From the figure we can also see that tilt affects the x and y seismometer signals from 0.1 Hz. Green line (z-component) is much lower that red and blue lines (x and y). Tilt affects on horisontal axes of the seismometer much more than on vertical.
What we also think about is that at low frequencies mirrors start to move approximately the same and seismometers can help us to figure out small reletive displacement of the mirrors which form the MC length. We can estimate the critical frequency by presenting the ground motion as interference of surface waves with different velocities and amplitudes. For only 1 wave we have for the relation of MC length to the seismometer read out ~sin (2*pi*f/v*L). f - frequency of the wave, v -speed, L - length between the mirrors. We can see that below 1 Hz we have ~sin (f/2). At this point seismometer signal could lose coherence with MC length signal. We could try to subtract seismometer signals from corresponding axes, but gur1 and sts1 has different calibrations. Moreover, the noise floor of the seismometers might not allow us to measure the differential signal. We'll try to simulate this scenario and find seismometer calibration or measure it. We are basicly interested only in the ratio of calibraion fucntions of 2 seismometers. |
5900
|
Tue Nov 15 22:31:39 2011 |
Mirko | Update | Adaptive Filtering | Towards wiener filtering and improved OAFing |
[Jenne, Mirko]
1. We should help the OAF by compensating for the actuator TF:
The actuator TF, from adaptive filter output to MC2, through PD, mixer, Pentek and into C1:IOO looks like this:

If we assume a white-ish error signal that the adaptive code tries to compensate for its job gets extra complicated because it has to invert this TF. So we really should compensate for that. Easiest place for that is the CORR filter directly behind the adaptive code block.
Using the TF measurement from above I used the vectfit (" /cvs/cds/caltech/apps/mDV/extra/firfit_forFotonMirkoComplex.m" ) to get fit a corresponding digital filter:

If we invert swap the zeros and poles in the digital filter we get the inverted TF.
(Todo: Figure out how to invert the TF. Just switching the poles and zeros doesn't work).
2. Wiener filtering
The idea was to use the adaptive filtering only for small corrections to the wiener filtering. So we really should try to get the wiener filtering going.
Howto:
1. Get data for STS1X and GUR1X and MC_F in matlab. E.g. via ligodv
2. Check the MC was in lock the entire time.
3, Filter MC_F with the actuator TF, so the wiener filter knows about that and compensates for it
4. Calculate the wiener filter " h1winolevLigoDV.m "
5. Export the data to the workspace. It is also saved to the disc as "h1filtcoeffTS.mat". Make sure there are first the witnesses, then MC_F
6. Execute " /cvs/cds/caltech/apps/mDV/extras/LHO/firfit_for_FotonMirko.m" while one directory higher.
7. Copy the digital filter in SOS form that is printed into the matlab command line and put it into the corresponding filter in the OAF model via foton.
With data from 11-11-15 04:00 to 05:45. Sampling freq. 256Hz. 8000 Taps => length = 30.2s. Prefiltered to notch the 60Hz line in MC_F, but not compensation the actuator TF. This results in the following wiener filter and corresponding SOS filter to be copied into foton.
STS1X:

GUR1X:

|
Attachment 3: MCL_round_trip.fig
|
Attachment 6: STS1X_Wiener_filter_data_from_11-11-15.fig
|
Attachment 7: GUR1X_Wiener_filter_data_from_11-11-15.fig
|
5919
|
Wed Nov 16 23:50:40 2011 |
Den | Update | Adaptive Filtering | seismic noise injection |
[Micro, Den]
Analyzing coherence of seismic noise and mode cleaner length we've figured out that at some days the coherence below 1 Hz is still present. For example, at Nov 13 we can see some coherence compared to most other dates when we are not able to see coherence as shown on the figure. On the top plot - psd of MC_L and GUR1_X at Nov 13 (red and blue) and Nov 15 (black and cyan). On the bottom plot is presented coherence between MC_L and GUR1_X on Nov 13 (red) and Nov 15 (black)


We can divide the psd plot for 2 parts - below 1 Hz and above 1 Hz. Above 1 Hz seismic noise on Nov 15 (cyan) was higher then on Nov 13 (blue) and correspondently MC_L at that region was higher on Nov 15. Below 1 Hz seismic noise was higher on Nov 13 but MC_L is still lower that on Nov 15. That is surprising. From the coherence plot we can say that once we have some more seismic noise than usually, we immediately see coherence.
Because of this we wanted to find out the level of the X noise that makes seismic noise invisible. We injected seismic noise by doing smooth physical exercises near MC_2 (1.5 m and 3 m apart). The MC_2 was in lock during the experiment.


In the coherence plot we can see that coherence between GUR1_X and MC_L increased with noise injection. The highest coherenced we obtained sittind down and standing up smoothly near MC_2 at distance 1.5 m. We did not want to come clother and break the lock. This measurement tells us that the X noise is approximately 3-4 times higher than seismic noise in the range 0.1 - 1 Hz. That means that it is approximately 1e-6 - 1e-8 m/sqrt(Hz) in this region. This noise goes down at frequencies from 2 Hz and not seen because of seismic noise. Actually, seismic noise can be filtered out with the Wiener filter and then we'll see the spectrum of X noise.
We now try to figure out the method to estimate the contribution of OSEM noise to the X noise. |
5932
|
Thu Nov 17 22:24:19 2011 |
Den | Update | Adaptive Filtering | MC1_COIL |
Analyzing coherence between MC length and signals on MC1, MC2 and MC3 coils we have noticed that MC1 COIL signal is not coherent to MC length at all at interesting frequencies 0.1 - 1 Hz.
We try to explain this phenomena.
|
Attachment 1: MC1COIL-crop.pdf
|
|
Attachment 2: MC2COIL-crop.pdf
|
|
Attachment 3: MC3COIL-crop.pdf
|
|
6065
|
Sat Dec 3 18:29:20 2011 |
Den | Update | Adaptive Filtering | coherence |
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.

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.

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. |
6068
|
Mon Dec 5 02:55:30 2011 |
Den | Update | Adaptive Filtering | C1OAF |
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. |
6070
|
Mon Dec 5 10:13:13 2011 |
Jenne | Update | Adaptive Filtering | C1OAF |
Quote: |
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.
|
The general rule in the 40m is that if it's not an 'emergency', i.e. something is wrong with the computers and preventing the main locking work, no model recompiling-type activities at nighttime.
Also, if you do things and recompile, you need to do an svn check-in. That's where backups are kept. We don't want to clutter folders with backups anymore. |
6078
|
Wed Dec 7 00:11:58 2011 |
Den | Update | Adaptive Filtering | OfflineAF |
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!
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
|
|
6093
|
Fri Dec 9 13:28:09 2011 |
Den | Update | Adaptive Filtering | C1OAF |
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. |
6094
|
Fri Dec 9 14:33:16 2011 |
Alex Ivanov | Update | Adaptive Filtering | C1OAF |
Quote: |
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.
|
I have a feeling we are not fitting into pre-allocated memory space in the shared memory between the front-end process and the epics process. Filter module data is overwriting some other data and that's why we are not getting a sync light. I suggest we upgrade to 2.4 code first and then we will figure out a way to expand memory areas to fit 856 filters. |
6100
|
Fri Dec 9 17:53:31 2011 |
Den | Update | Adaptive Filtering | C1OAF |
[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 |
Den | Update | Adaptive Filtering | Modifications 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 |
Den | Update | Adaptive Filtering | filter 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.

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 |
Den | Update | Adaptive Filtering | delays |
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.

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.

|