40m QIL Cryo_Lab CTN SUS_Lab CAML OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 341 of 349  Not logged in ELOG logo
ID Date Author Type Categoryup Subject
  3256   Wed Jul 21 12:03:14 2010 Katharine, SharmilaUpdateWIKI-40M Updateweekly update

This past week, we levitated our small cylindrical magnet (with the flag made from heat shrink).  Though the levitated magnet didn't appear very jittery to the eye, we looked at the PD current on the scope and could see oscillations that corresponded to the flag hitting the sides of the OSEM.  The oscillations were more pronounced as we gently hit/vibrated the lab bench, and by pounding on the bench Rana knocked the levitated magnet completely out of the setup.  So, we're currently working on building a new, stabler mount.  The biggest challenge here is fixing the OSEM in place, but we're experimenting with different optics pieces to see which is the most stable for our purposes.   Jenne taught us how to make through holes using the drill press so we can add slats of aluminum to adjust the height of the OSEM mount.  We also plan to fix some heavy plates to the bottom of our system to decrease its vibration frequency.

We also calculated the transfer function of our circuit, which seems to match the measured frequency response to within a small factor.  We're playing with Rana's Simulink models and are currently modeling our own system to determine what gains we would expect to use and get a better understanding of our circuit.


Once our system is successfully mounted stably, we plan to experimentally observe the effects of changing the gain and integrator by looking at time series measurements of the PD current, as well as using the spectrum analyzer to compare the frequency response of our system at different gain settings.

  3305   Wed Jul 28 12:09:06 2010 Sharmila,KatharineUpdateWIKI-40M UpdateMaglev

We have modeled our maglev setup in simulink but we have a few corrections to make since the system goes into undamped oscillations for an impulse in the input.

We have made a stable mount for the system and started to work on the 2X2 system using this mount. We have to figure out a way to match the magnets with the gain. We have attached the simulink block.

Picture_1.png

  3307   Wed Jul 28 12:31:00 2010 GopalUpdateWIKI-40M Update7.21.10-7.28.10 Weekly Update

Summary of this week's activities:

7/21: Frequency Domain Analysis of rectangular bar; discussed with Koji how to convert complex eigenfrequencies into phase factors.

7/23: Created Wiki page about FDA; Journal Club

7/26: Recreated Stack_1234.mph due to boundary value issues; FDA for 1,2,3,4,5 Hz

7/27: Discovered MC2 logbooks for later design; ran the complete x-translational FDA for Stack_1234.mph

7/28: Finished y-translational FDA (posted previously); "Tapered Cantilever" COMSOL tutorial for gravity-load analysis.

  3363   Wed Aug 4 20:58:22 2010 GopalUpdateWIKI-40M Update7.28.10 - 8.4.10 Weekly Update

Summary of this week's activities:

7/28:    Finished Y-Translational 4-Stack Analysis

"Tapered Cantilever" COMSOL tutorial

Tried (and failed) isolating gravity from oscillation

7/29:    Developed tilt/rotation load combinations for torsional inputs and showed these to work in the model

Tried using Normal Vector mode on top plate to obtain output tilts; worked for the rectangular bar, but not for the full stack

Talked to Jan about a 1st-order alternative to gravity - requires Weak Form (only found in COMSOL 3.5 right now)

Began Z-Translational 4-Stack Analysis -- Ran Overnight

7/30:    Progress Report 1st Draft

Completed Z-Translational 4-Stack Analysis

8/1:      Progress Report 2nd Draft

8/2:      Progress Report 3rd Draft

Submitted Progress Report

8/3:      Finalized Eigenfrequency Analysis for MC1/MC3 Stack

24 Physical Eigenmodes plotted and recorded, as expected

Should be good enough for the final report --> focus on transfer function analysis for the remainder of the SURF

8/4:      Prescribed Displacement Tests on Simple Rectangular Block --> shown to better produce displacement-displacement transfer functions

X-to-X Transfer Function seems much better when plotted

Should now be able to do the Displacement portion of Transfer Function Analysis on MC1/MC3 for Translational Modes

(I apologize that this update is a little late)

  3397   Wed Aug 11 11:51:45 2010 Gopal UpdateWIKI-40M Update8.5.10 - 8.11.10 Weekly Update

Summary of this Week's Activities:

Thursday, August 5:

X-Displacement Transfer Function Measurement

JPL Tour

Friday, August 6:

Y-Displacement Transfer Function Measurement

Z-Displacement Transfer Function Measurement

Monday, August 9:

Worked on COMSOL/MatLab Interface --> problems may be due to older version

Discussed with Koji options for calling our COMSOL sales representative

Jan and I decided that there is in fact something wrong with the installations on both my Mac and Kallo

Reinstalled on both machines, but the problem was not solved

Jan said we'd go see Larry tomorrow

Tuesday, August 10:

Attempted to figure out Time-Dependent Modal Analysis --> don't think it's what we need

Began reading the LiveLink for MatLab documentation --> even the directions in this produced issues

Discovered "Prescribed acceleration" option for gravity:

A test with it on the simplest stack eliminated the unwanted oscillation, which I guess is a partial success...

Trying the same thing with Koji on a simple pendulum, however, didn't produce the expected increase in resonant frequency

(Jan was unable to see Larry today, but we're meeting on Wednesday instead).

Wednesday, August 11 (morning):

Some background research on multiple-layer stack theory

Began working on presentations

 

 

 

  6192   Thu Jan 12 21:22:16 2012 Leo SingerConfigurationWIKI-40M UpdateUnable to create Wiki page

 I can't create a new page on the 40m wiki.  The page that I was trying to create is

http://blue.ligo-wa.caltech.edu:8000/40m/Stewart

I get this message when I try to save the new page:

Page could not get locked. Unexpected error (errno=13).

  6193   Thu Jan 12 23:13:42 2012 KojiConfigurationWIKI-40M UpdateUnable to create Wiki page

Quote:

 I can't create a new page on the 40m wiki.  The page that I was trying to create is

http://blue.ligo-wa.caltech.edu:8000/40m/Stewart

I get this message when I try to save the new page:

Page could not get locked. Unexpected error (errno=13).

This address for wiki is obsolete. Recently it was switched to https://wiki-40m.ligo.caltech.edu/
Jamie is working on automatic redirection from the old wiki to the new place.

The new one uses albert.einstein authentication.

 

  7774   Sat Dec 1 16:58:14 2012 ManasaUpdateWIKI-40M UpdateOptical tables

I have updated the wiki with the layout of the out-of-vac optical tables: Updated optical tables

I used the new camera to take pictures.

Lesson learnt after the update:

To use the new canon to take better pictures of optics tables; set the camera to manual mode; no flash and iso at around 800 or higher if you can hold the camera still for that long. The autofocus works beautifully...so you will not need any minor tweaking of lens to take pictures. 

  15054   Wed Nov 27 17:51:52 2019 gautamUpdateWienerMCL FF status

The old MCL filters are not completely useless - I find a factor of ~2 reduction in the MCL RMS when I turn the FF on. It'd be interesting to see how effective the FF is during the periods of enhanced seismic activity we see. I also wonder if this means the old PRC angular FF filters are also working, it'd help locking, tbc with PRMI carrrier...

Update: The PRC angular FF loops also do some good it seems - though the PIT loop probably needs some retuning.

Attachment 1: MCL_FF.pdf
MCL_FF.pdf
Attachment 2: PRC_FF.pdf
PRC_FF.pdf
  15282   Tue Mar 24 19:41:57 2020 gautamUpdateWienerSeismic feedforward for MCL

Summary:

I think the feedforward filters used for stabilizing MCL with vertex seismometers would benefit from a retraining (last trained in Sep 2015). 

Details:

I wanted to re-familiarize myself with the seismic feedforward methodology. Getting good stabilization of the PRC angular motion as we have been able to in the past will be a big help for lock acquisition. But remotely, it is easier to work with the IMC length feedforward (IMC is locked more often than the PRC). So I collected 2 hours of data from early Sunday morning and went through the set of steps (partially).

Attachment #1 shows the performance of a first attempt.

  • 1 hour of data was used as a training set, and another hour to validate the trained filter.
  • All the data was downsampled to 64 Hz.
  • The number of FIR filter taps was 32 seconds * 64 Hz. 
  • Going through some old elogs, there were a number of suggestions from various people about how the training should be done
    • There was a suggestion that pre-filtering the target signal by the (inverse) actuator TF (i.e. TF from MC2 drive to MCL) is beneficial, presumably because it gives the Wiener filter fitting fewer parameters to fit.
    • There was also suggestions that some frequency-dependent weighting of the target signal should be done (e.g. by bandpassing MCL between 0.1 Hz - 10 Hz) to emphasize subtraction in this band.
    • For this particular example, in my limited paramter space exploration, I found that neither of these measures had particularly significant impact.
  • In any case, the time-domain FIR filtering seems to approach the theoretical best possible performance (based on coherence information). 
  • I have not yet checked what the theoretical limit on subtraction will be based on the seismometer noise ASD.

Attachment #2 shows a comparison between the filter used in Attachment #1 and the filters currently loaded into the OAF system. 

  • In the band where significant subtraction is possible, there is some difference in the shape of the filter.
  • Why should this have changed? I guess there are multiple possibilities - seismometer recentering, signal chain changes, ...

Attachment #3 is the asd after implementing a time domain Wiener filter, while Attachment #4 is an actual measurement from earlier today - it's not quite as good as Attachment #3 would have me expect but that might also be due to the time of the day. 

Conclusions and next steps:

On the basis of Attachments #3 and #4, I'd say it's worth it to complete the remaining steps for online implementation: FIR to IIR fitting and conversion to sos coefficients that Foton likes (prefereably all in python). Once I've verified that this works, I'll see if I can get some data for the motion on the POP QPD with the PRMI locked on carrier. That'll be the target signal for the PRC angular FF training. Probably can't hurt to have this implemented for the arms as well.

While this set of steps follows the traditional approach, it'd be interesting if someone wants to try Gabriele's code which I think directly gives a z-domain representation and has been very successful at the sites.

* The y-axes on the spectra are labelled in um/rtHz but I don't actually know if the calibration has been updated anytime recently. As I type this, I'm also reminded that I have to check what the whitening situation is on the Pentek board that digitizes MCL.

Attachment 1: IMCseisFF.pdf
IMCseisFF.pdf
Attachment 2: filterComp.pdf
filterComp.pdf
Attachment 3: oldFilter_v_proposed.pdf
oldFilter_v_proposed.pdf
Attachment 4: MCL_ff_performance.pdf
MCL_ff_performance.pdf
  15290   Wed Apr 1 00:51:41 2020 gautamUpdateWienerSlightly improved MCL FF

Summary:

Retraining the MCL filters resulted in a slight improvement in the performance. Compared to no FF, the RMS in the 0.5-5 Hz range is reduced by approximately a factor of 3

Details:

Attachment #1 shows my re-measurement of the MC2 position drive to MCL transfer function.

  • The measurement was made using DTT swept sine, with the amplitude enveloped appropriately to avoid knocking the IMC out of lock.
  • Coherence was >0.97 for all datapoints.
  • Fitting was done using Lee's IIRrational, with the weighting being the coherence. I think there are some features of the fitting I don't fully understand, but I wanted to try and do everything in python and for this simple fit, it came out nicely I think. 

Attachment #2 shows the IIR fits to the FIR filters calculated here

  • Again, IIRrational was used. 
  • In the frequency band where subtraction is possible, the fit is good.
  • But there is definitely room for improvement in the way this is done, for now, I did quite a bit "by eye" and tweaked the order of the filter and the minimum number of excess poles relative to zeros to get the AC coupling, but it'd be nice to make all of this iterative and quantitative (e.g. by minimizing a cost function).
  • One nice feature of IIRrational is that it directly gives me a formatted string I can paste into foton. The order of these fits were 22, so I split them into two 19+3 order filters to be compatible with the realtime system before loading the coefficients (the overall gain was allocated to a single filter arbitrarily, with the other filter in the pair set to have unity gain in the zpk representation).

Attachment #3 shows several MCL spectra.

  • Blue trace is the unsubtracted test dataset.
  • Red is the performance of the calculated FIR filter, but the filtering is done offline.
  • Gold is the performance of the IIR fit to the FIR filter, as shown in Attachment #2, applied offline to the test dataset.
  • Green is the calculated ASD of MCL from a ~1 hour stretch from earlier tonight, when I left the feedforward loop on. So this is an actual measurement of the online performacne of the filter.
  • Grey is the performance of the old filter loaded in the CDS system - the filtering is done using scipy, and the sos coefficients from the C1OAF.txt file.

Conclusions + next steps

  1. Retraining the filters has resulted in a slight improvement, especially at ~3 Hz.
  2. More tests need to be done to confirm that noise isn't being reinjected in the frequency bands where subtraction isn't possible (e.g. using arm cavities as OOL sensors).
  3. The online filter isn't quite as good as what we would expect from calculations (green trace is noisier than gold). Need to think about why this is.
  4. Why can't we get more subtraction at 1 Hz?
  5. Now that I have the infrastructure ready, I will attempt to revive the PRC angular FF loops, which was the whole point of this exercise. 
Attachment 1: MC2_act_calib.pdf
MC2_act_calib.pdf
Attachment 2: IIR_fit_to_FIR.pdf
IIR_fit_to_FIR.pdf
Attachment 3: FIRvIIR.pdf
FIRvIIR.pdf
  2425   Thu Dec 17 02:57:08 2009 JenneUpdateWienerFilteringL1 DARM Static Wiener Filtered data

This is perhaps best put in the LLO elog, but I'm not yet a 'person' there, so I can't write to their elog (yet another thing for the eternal to-do list).  So for now, we're putting things here...

This isn't totally finalized, but I do want to get what I have posted before I hop on a plane in the morning.  Mostly it just needs more time to run, to make the plot longer.  Hopefully I'll be able to edit this in the morning and have a longer-duration plot. 

What's plotted:

This spectrogram shows the amplitude spectra of L1:LSC-DARM_CTRL, after being subtracted via a Static Wiener Filter.  Each spectra is normalized by the very first one, which was created from the same data that was used to determine the Wiener Filter.  The X-axis is time.  The Y-axis is frequency, and the Color/Z-axis is amplitude in dB.  I'm only looking at Science Mode time, so other times when the IFO isn't in science mode, I plot a black stripe to fill in the plot.  The start time of the plot is 83675598, which is Jul 08 2006 06:33:04 UTC. 

Why?

The idea is to see that the filter does equally well a long time after it was created, as when it was initially made.  This will help tell us how often it is useful to recompute the Wiener filters.  Less often is nice, because redoing the Wiener filters may also include remeasuring the high precision transfer functions...if the filter isn't working as well anymore it may be because the transfer function has changed ever so slightly. 

How the plot is created / the background story:

I use one hour of DARM_CTRL data and the following seismometer channels to create an optimal Wiener Filter (pem indicates L0:PEM- , sei indicates L1:SEI- , and lsc indicates L1:LSC- ) :

chans = {[pem 'EX_SEISX'],...
         [pem 'EX_SEISY'],...
         [pem 'EX_SEISZ'],...
         [pem 'EY_SEISX'],...
         [pem 'EY_SEISY'],...
         [pem 'EY_SEISZ'],...
         [pem 'LVEA_SEISX'],...
         [pem 'LVEA_SEISY'],...
         [pem 'LVEA_SEISZ'],...
         [sei 'LVEA_STS2_X'],...
         [sei 'LVEA_STS2_Y'],...
         [sei 'LVEA_STS2_Z'],...
         [sei 'ETMX_STS2_X'],...
         [sei 'ETMX_STS2_Y'],...
         [sei 'ETMX_STS2_Z'],...
         [sei 'ETMY_STS2_X'],...
         [sei 'ETMY_STS2_Y'],...
         [sei 'ETMY_STS2_Z'],...
         [lsc 'DARM_CTRL']};

I then apply this one filter to ten minute chunks of science mode data, for some long period of time.  The game plan is to have a month long plot, but it takes a while to fetch all of the data in separate 10min intervals (~45sec per iteration, times ~3000 iterations), so this plot isn't a full month.  Even if I don't get a chance to plot a full month by Thursday morning, it'll go up here within the next few days. The particular times chosen have the most science mode data within a 30 day period.  I can easily run the code for some other time, if there is a known time (or season) which might be more interesting.  For the spectrogram plot, I then normalize each amplitude spectra by the first one, which comes from the first ten minutes in the hour which was used to make the filter.  This makes it easier to see how the filter's efficacy changes over time.

The analogous analysis for Hanford is in the 40m elog: 1606.  The Hanford stuff in the elog has some cool BLRMS plots also, but I'm not sure that they're so helpful when I only have a few days of L1 data so far.  I'll do those and add them later.

Conclusions:

I can't really say anything yet about the long-term efficacy of a Wiener Filter for LLO yet, since my code hasn't finished filtering my one month of S5 L1 data.  It definitely looks like (so far) that there was a big seismic event around the (arbitrarily defined) 'Day 4'. 

Attachment 1: L1darmCompPlot_17Dec2009_4daysLong.png
L1darmCompPlot_17Dec2009_4daysLong.png
  2426   Thu Dec 17 07:47:29 2009 JenneUpdateWienerFilteringL1 DARM Static Wiener Filtered data

This surface plot is the same as the previous one, with a little more data than I had previously. 

This time around, I also include the "BLRMS" plots for this data.  The first one takes each residual and normalizes it by the DARM_CTRL signal at that time, separates the spectra into bands, and integrates underneath the spectra within that band.  The second one is the raw DARM_CTRL signal's spectra at each time, and integrates under the spectra for each band, and the third BLRMS plot does the same thing for the residuals.  Unfortunately, these plots don't have the same handy black stripe during time which I don't analyze that the spectrogram utilizes.

From the second BLRMS plot we can see that the large red splotch in the spectrogram is due to higher noise in the DARM spectrum, and that (by looking at the Ratio BLRMS plot) the Wiener filter still does a pretty good job during this time.  I expect that for later times when the seismic (or something) event is gone, the Wiener filter will continue performing almost as well as it had been initially.

Again, once the script finishes applying the filter to the many ten minute chunks (the huge time drain is the data fetching, so this shouldn't be a limiting factor for using Wiener filters online), I'll post a final plot.

Attachment 1: L1darmComp_17Dec2009_6day_residualsNormSurfacePlot.png
L1darmComp_17Dec2009_6day_residualsNormSurfacePlot.png
Attachment 2: L1darmComp_17Dec2009_6day_ratioBLRMS.png
L1darmComp_17Dec2009_6day_ratioBLRMS.png
Attachment 3: L1darmComp_17Dec2009_6day_rawBLRMS.png
L1darmComp_17Dec2009_6day_rawBLRMS.png
Attachment 4: L1darmComp_17Dec2009_6day_residualsBLRMS.png
L1darmComp_17Dec2009_6day_residualsBLRMS.png
  2475   Tue Jan 5 01:31:09 2010 JenneUpdateWienerFilteringNew Wiener Filters installed in PEM IIR matrix on OAF screen

Using the techniques employed at LLO, and then by Rana here at the 40m a few weeks ago, Wiener filters have been installed on the inputs of all of the PEM IIR channels which are hooked up to the 110B PEM ADCU.  Some slight modifications have taken place to the code, and it's all been checked in to the 40m svn. 

I have installed the filters into:  All 6 Wilcoxon accelerometers, the Ranger seismometer, and one of the Guralps (GUR1).  The other Guralp is currently connected through the ASS/OAF machine's ADC, so it's not used in this test. The filters are all labeled "Wiener", and are FM1 in the C1:ASS-TOP_PEMIIR_## filter banks.

The first figure below is the output of the Wiener Filter calculation program.  It shows the uncorrected MC_L (black) and the corrected MC_L (red), using the optimal wiener filter.  This is as good as we should be able to do with these sensors in these positions.

The second figure is a DTT shot of me trying out the nifty new filters.  They seem to maybe do a teensy bit on the microseism, but otherwise it's a bit unremarkable.  Hopefully I'll get better subtraction during the day, when the base level for MC_L is higher.  Here, Black is uncorrected MC_L, Red is the corrected MC_L, Blue is the actuation channel, and green is an example seismometer channel to illustrate the ground motion at the time.

 

For posterity, since it's not all in one elog that I can find, the order of operations to install a Wiener Feed Forward filter is as follows:

1.  (When you can borrow the IFO) Take a very careful TF of the plant, between your actuation point and your error signal readout.  At the 40m, this means between C1:ASS-TOP_SUS_MC1_EXC and C1:IOO-MC_L, since we actuate by pushing on the MC1 coils.  At the sites / future 40m, this would be between the HEPI (or STACIS) and the error signal.  The limit of how good your Feed Forward can do will depend heavily on how good this TF is.  Coherence should be above ~0.95 for all points.  Export this data from DTT as a .txt file, using units "Complex (abs/rad)". 

2. Run fitMC12MCL.m (or equivalent wrapper file) to fit the transfer function you just took with some Poles and Zeros.  Make sure to edit the wrapper file with your new .txt file's name so you're getting a fresh TF (if you've just taken one).

3. (Again, when you can borrow the IFO) Run getMCdata.m (or equivalent) to fetch witness channel data and error signal data.  At the 40m, this usually means C1:IOO-MC_L, and witness sensors which are around the MC chambers.  This data should be taken at a time when the cavity is locked, but pretty much on it's own. (i.e. probably shouldn't have Common Mode feedback on the MC - so the MC should be locked, but not the full IFO, for example.)

4.  Run c1winoiir.m (the main program here, which contains some of these notes). This will take in the TF data you've fit, and the witness channel data you have, and calculate the optimal combination of Wiener filters for your witness channels.  It pre-filters your witness data by your TF, then calculates the Wiener filter.  The resulting FIR filters are saved in a file.

5.  Run firfit.m  This will take the FIR Wiener filters you've just created, and convert them conveniently to IIR filters, in a format to be copied directly into Foton.  For each witness channel, you'll get the IIR filter in 2 formats:  the first is for copying into the Foton .txt file (ex ASS.txt), and the second is for copying into the Foton gui, in the "Command" box on the filter design screen.  The "o" at the end of the copy-able filter indicates to Foton that it is a Z-Plane Online filter.  Copy filters appropriately (there should be a line preceding each set of SOS filter formats to indicate which channel this Wiener filter is for...these channel names are extracted from your getMCdata.m)

6. Save your Foton file, and update your Coefficients in MEDM.  Enable your outputs to actuators, and watch magic happen!

 

On the To-Do list:

Check the transfer of signal btwn PEMIIR matrix and the 9x1 'matrix' that sends the signals to the SUS inputs.  In the SimuLink, the input to the 9x1 matrix is a bundle of 8 numbers (the 8 outputs of the PEMIIR matrix), but it looks like it only pays attention to the first one.  Need to figure out how to make it realize that it's a bundle, not a single number. 

Also, the OAF up / down scripts don't seem to be working on any of the control room computers.  This needs to be checked in to / fixed (but not tonight....)

Attachment 1: MCwino-FFtest_4Jan10_sameFiltersAsinEPICS.png
MCwino-FFtest_4Jan10_sameFiltersAsinEPICS.png
Attachment 2: OAF-FF_test_4Jan10.png
OAF-FF_test_4Jan10.png
  2480   Tue Jan 5 17:32:59 2010 JenneUpdateWienerFilteringNew Wiener Filters installed in PEM IIR matrix on OAF screen

EDIT 6 Jan 2010:  Shouldn't have done this.  My bad.  The AA32 is on the other PEM matrix because the Adaptive code runs at 64Hz, so there's downsampling, calculating, and upsampling which goes on.  The Feed Forward path all runs at 2kHz, the regular rate of the ASS/OAF machine.  All of these filters are turned off (although I haven't deleted them from Foton).  Since we're focusing on low frequency stuff and trying to get that to do some subtraction, we're not worrying about the junk at higher frequencies just yet.

 

I have put AA32 filters into the PEMIIR matrix's input filter banks (ie, C1:ASS-TOP_PEMIIR_##), to match the ones that are in the same places in the regular PEM matrix on the OAF screen. 

I redid the uncorrected vs. corrected MC_L DTT printout, shown below. You can see that there's less junk at higher frequencies in the Blue (actuation channel) trace, which is good.

Attachment 1: OAF-FF_test_5Jan10.png
OAF-FF_test_5Jan10.png
  2660   Sun Mar 7 07:01:21 2010 ranaUpdateWienerFilteringGuralp Huddle Test software

We need to do a new huddle test of the Guralps for the Wiener filtering paper. The last test had miserable results.

I tried to use recent data to do this, but it looks like we forgot to turn the Guralp box back on after the power outage or that they're far off center.

So instead I got data from after the previous power outage recovery.

I tried to use our usual Wiener filter method to subtract Guralp1-Z from Guralp2-Z, but that didn't work so well. It was very sensitive to the pre-weighting.

Instead I used the new .m file that Dmass wrote for subtracting the phase noise from his doubling noise MZ. That worked very well. It does all of the subtraction in the frequency domain and so doesn't have to worry about making a stable or causal filter. As you can see, it beats our weighted Wiener filter at all frequencies.

huddlez.png

The attached plot shows the Guralp spectra (red & green), the residual using time-domain Wiener filtering (black) and the Dmass f-domain code (yellow).

As soon as Jenne brings in her beer cooler, we're ready to redo the Huddle Test.

 

  2672   Sat Mar 13 22:16:03 2010 ranaUpdateWienerFilteringGuralp Huddle Test software

I used some recent better data to try for better Z subtraction.

Dmass helped me understand that sqrt(1-Coherence) is a good estimate of the theoretical best noise subtraction residual. This should be added to DTT. For reference the Jan statistic is the inverse of this.

This should get better once Steve centers the Guralps. 

Attachment 1: guralpznoise.png
guralpznoise.png
  3489   Mon Aug 30 18:35:22 2010 JenneUpdateWienerFilteringSecret Hiding Place for Raw Data

As it turns out, data seems to fall off the 16Tb drives after ~20 days.  Which makes it a good thing that I saved all of my raw data from my good Mode Cleaner / seismic weekend for offline Wiener Filtering in the following secret place:

/cvs/cds/caltech/users/jenne/AdaptiveFiltering/mat/MCseis_raw_data_7Aug2010

It's not linked to the svn, since it's a boatload of data.

  4226   Sat Jan 29 03:13:44 2011 ranaUpdateWienerFilteringImprovement in H1 Wiener FF prediction by using weights and taps

(Jenne, Rana)

Tonight we noticed that there were significant improvements to be had in the predicted DARM Wiener filtering FF performance by using weighting filters and more taps in the FIR filter.

The plots below tell the story:

The first one shows the improvement in the residual (black & blue) by applying a weighting filter. The weight filter tilts the spectrum up at HF and applies and all real pole BP from 10-20 Hz.

The second plot shows the improvement gotten by using 3000 instead of 2000 taps for the Wiener filter. With the larger number of taps we not only get the big improvement at LF, but also some beefy reduction in the higher frequency stack modes and the LOS roll mode.

I'm not sure why we haven't run across this before; the weighting filter was arrived at today by just iterating by hand on the placement of poles and zeros until the trace looked nice.

Jenne is going to run this new filter on the S5-month that we have been using for stationarity testing.

* Some notes:

** this Wiener stuff is faster, by far, on rossa than either megatron or rosalba or my laptop. More than a factor of 3.

*** there is a bug with Macports/Matlab - if you get fftw3 with Macports, it sets itself as the right version to use. This confuses matlab in some cases.

     if you get the error about libfftw3.dylib, whe trying fft in matlab after installing macports, then you can fix it by setting the Matlab lib/ path with the fftw libraries to be ahead of /opt/local/lib in the LD_LIBRARY_PATH in your .cshrc.

Attachment 1: darmweight.png
darmweight.png
Attachment 2: darm3000.png
darm3000.png
  4231   Mon Jan 31 10:31:30 2011 josephbUpdateWienerFilteringImprovement in H1 Wiener FF prediction by using weights and taps

Rossa is a rather beefy machine. It effectively has 8 Intel i7 Cores (2.67 Ghz each) and 12 Gigs of ram.  Megatron only has 8 Gigs of ram and just 8 Opterons (1 GHz each).  Rosalba has 4 Quad Core2  (2.4 GHz) with only 4 Gigs of ram. 

MC damp dataviewer diaggui AWG c1ioo c1sus c1iscex RFM The Dolphins Sim.Plant Frame builder TDS
                       
  4348   Thu Feb 24 10:56:04 2011 JenneUpdateWienerFilteringOne month of H1 S5 data is now on Rossa

Just in case anyone else wants to access it, we now have 30 days of H1 S5 DARM data sitting on Rossa's harddrive.  It's in 10min segments.  This is handy because if you want to try anything, particularly Wiener Filtering, now we don't have to wait around for the data to be fetched from elsewhere.

  4968   Thu Jul 14 17:34:35 2011 Ishwita, ManuelHowToWienerFilteringWiener-Hopf equations

Since we are using Wiener filtering in our project, we studied the derivation of Wiener-Hopf equations. Whatever we understood we have written it as a pdf document which is attached below...

Attachment 1: derivwf.pdf
derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf derivwf.pdf
  5087   Mon Aug 1 23:29:24 2011 Manuel, IshwitaUpdateWienerFilteringGetting Data by matlab

We tried to acquire data from the seismometers and the mode cleaner using the Matlab function

datalist = NDS2_GetData({'C1:PEM-SEIS_GUR1_X_IN1_DQ'}, 996258376 , 10, CONFIG.nds.C)

and encountered the following error

Warning: daq_request_data failed
 
??? Error using ==> NDS2_GetData
Fatal Error getting channel data.

The same error was obtained with the following other channels

C1:PEM-SEIS_GUR2_X_IN1_DQ

C1:PEM-SEIS_STS_1_X_IN1_DQ

But we are able to get data from channel

C1:LSC-MC_OUT_DQ

for the same gps time.

We checked with Dataviewer that the data are saved (we viewed data of last 24h) for every channel.

  5102   Wed Aug 3 02:28:08 2011 Manuel, IshwitaUpdateWienerFilteringWiener Filtering in X-arm

Wiener Filtering was applied on the data collected from the X-arm during the time: GPS time-996380715 (Aug 02, 2011. 21:25:00. PDT) to GPS time-996382215 (Aug 02, 2011. 21:50:00. PDT) for a duration of 1500 seconds. During this time the X-arm was locked, we checked it by acquiring data from channel C1:LSC-TRX_OUT_DQ .

The seismometers were near the beam splitter (guralp2) and near MC2 (guralp1).

Target data was obtained from channel C1:LSC-XARM_IN1_DQ.

Schermata-6.png

Schermata-7.png

Following graphs were obtained after applying the Wiener filter:

 

      1.Seismic data acquired from Guralp1 (X and Y) and Guralp2 (X and Y)                              2.Seismic data acquired from Guralp2 X                                                              3.Seismic data acquired from Guralp2 Y 

WFgur1X1Y2X2YN20000srate2048.pngWFgur2XN20000srate2048.pngWFgur2YN20000srate2048.png

These graphs were obtained with srate = 2048 (sample rate) and N = 20000 (order of the filter).

Graph 1 is the best because the black (residual) line is below the red (target) line for low frequencies since we used seismic data from 4 channels. Graph 3 is the worst because we used seismic data from only one Y channel (Y axis of Guralp2) that is less related with the X-arm mirrors' motion since they are oriented orthogonally.

  5106   Wed Aug 3 12:24:08 2011 Manuel, IshwitaUpdateWienerFilteringWeekly summary

Last Friday (Jul 29) we reinstalled the blue breakout box, and changed the names of the C1:PEM channels. Elog Reference

We continued the work on the simulation ad applied wiener filter on the simulated ground motion, but the result is unsatisfactory, yet. We will post reasonable results soon.

We did wiener filtering for the first time on real data from the Xarm while it was locked. Elog Reference

  5157   Tue Aug 9 16:21:59 2011 Manuel, IshwitaUpdateWienerFilteringFirst results of our simulations

We did the simulation of the stacks by defining a transfer function for one stack (green plot) and another similar transfer function for the other stack.

We simulated the ground motion by filtering a white noise with a low pass filter with a cutoff frequency at 10Hz. (blue plot) (the ground motion for the 2 stacks are completely uncorrelated)

We simulated the electronic white noise for the seismic measurements. (black plot)

We filtered the ground motion (without the measurements electronic noise) with the stack's transfer function and subtracted them to find the mirror response (red plot), which is the target signal for the wiener filter.

We computed the static wiener filter with the target signal (distance between the mirrors) and the input data (seismic measurements = ground motion + electronic noise).

We filtered the input and plotted the output (light blue plot).

We subtracted the target and the output to find the residual (magenta plot).

We didn't figure out why the residual is above the electronic noise only under ~6hz. We tried to increase and decrease the electronic noise and the residual follows the noise still only under ~6Hz.

It also shows that the residues are above the target at frequencies over 20Hz. This means that we are injecting noise here.

simu1.png

We tried to whiten the target and the input (using an high pass filter) to make the wiener filter to care even of higher frequencies.

The residues are more omogeneously following the target.

We also plotted the Wiener filter transfer function without making whitening and with making whitening. It shows that if we do whitening we inject no noise at high frequency. But we loose efficency at low frequencies.

simu2w.png

TFwhitened2.png

We shouldn't care about high frequency, because the seismometers response is not good over 50Hz. So, instead of whitening, we should simply apply a low pass filter to the filter output to do not inject noise and keep a good reduction at low frequencies.

 

  6005   Fri Nov 25 12:46:13 2011 MirkoUpdateWienerFilteringWiener filtering tryout

Tried the wiener filter with the TF from p.5900

Tried it out with the TFs from p.5900:

WienerFiltering.pdf

Adding a filter element that compensates the acutator TF makes the MC lose lock.

  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
  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.

  7185   Wed Aug 15 00:52:17 2012 DenUpdateWienerFilteringfilter calculation

A Matlab script to calculate Wiener filter coefficients and convert fir to iir is ready. Input is a file with zero mean witness and desired signals, output is a Foton zpk command to specify iir filter.

The plot shows comparison of offline fir , iir and online iir filtering. Spectrum below 4 Hz is still oscillating due to acoustic coupling, this is not a filtering effect. At 1 Hz actuator is badly compensated, more work should be done. Other then that online and offline filtering are the same.

wiener.png

  7659   Thu Nov 1 20:20:33 2012 Den, AyakaUpdateWienerFilteringacoustic noise in PMC

We've subtracted acoustic noise from PMC using 1 EM 172 microphone. We applied a 10 Hz high-pass filter to PMC length signal and 100,200,300:30,30 to whiten the signal.We used ~10 minutes of data at 2048 Hz as we did not see much coherence at higher frequencies.

We were able to subtract acoustic noise from PMC length in the frequency range 10-700 Hz. In the range 30-50 Hz error signal is less by a factor of 10 then target signal.

psd.pngcoh.png

  7672   Mon Nov 5 20:37:01 2012 AyakaUpdateWienerFilteringPlay with wiener filtering

 I am trying to find what limits the reduction rate with wiener filtering.
I did some calculations below:

Reduction rate estimation by microphone noise
estimate.png

When the instrumental noise (noise in microphone) and noise injected to signal after the acoustic signal is injected exist, the noise cancellation rate is limited. (I will write a short document about it later.) I assumed that there is only instrumental noise and that the other noise in PMC is below enough, and calculated the cancellation rate. The instrumental noise is modeled according to the measurement before (ELOG).
The green line is the original PMC signal, the red one is PMC residual error, and the blue one is PMC residual error estimated by the cancelling rate.
Around 30 - 80 Hz, the wiener filtering seems to be already good enough. However, I do not know what limits the cancellation rate (such as 100 - 200 Hz).

 

Filtering signals

Wfilter_notch.png

I hypothesized that the wiener filter is not good because of some peaks or other noise. So I filtered the PMC signal and mic signal to see the difference.
The red line is wiener filter with no filters, the blue one is with filters (low pass, high pass, and notch).
The wiener filter seems to get smoother but the PMC residual error did not change at all.

 

  7688   Thu Nov 8 10:11:58 2012 AyakaUpdateWienerFilteringPlay with wiener filtering

I will attach a document which describes how the noise affect the wiener filter and the noise cancellation ratio.

And I re-estimate the SN ratio in the microphone (but still rough):

R_model.png

The yellow line is modeled signal level, and cyan line is modeled noise level.

Then, the estimated filtered residual noise is:

estimate.png

The noise is already subtracted enough below 80 Hz even though there is still coherence.
Above 300 Hz, the residual error is limited by other noise than acoustic noise since there is no coherence.
I am not sure about the region between 100-300 Hz, but I guess that we cannot subtract the acoustic noise because primary noise (see the document), such as a peak at 180 Hz, is so high.

Attachment 1: document.pdf
document.pdf document.pdf document.pdf
  7707   Tue Nov 13 21:05:22 2012 AyakaUpdateWienerFilteringAcoustic noise cancellation with MC

 In order to perform acoustic noise cancellation with MCL signal, I am trying to find sweet spots for microphones.

I set microphones at various places around MC chambers, and see how coherent microphones and MC signals are.
I had checked the half part of MC.

  • data set #1
    place where I set the microphones (left), MCL signal (blue) and its error (green) (right top), and coherence between microphones (original: fine lines, error: thick lines) (right bottom).
    microphone_pos1.pdfpsd_coh1.png
  • data set #2
    microphone_pos2.pdfpsd_coh.png 
  •  data set #3
    microphone_pos3.pdfpsd_coh.png
  • data set #4
    microphone_pos4.pdfpsd_coh4.png

The acoustic noise around the MC2 chamber is most critical so far. I could subtract the signal and the sensitivity got 2 times better.
I will see the acoustic coupling from the other side of MC.

Attachment 4: psd_coh.png
psd_coh.png
  7751   Tue Nov 27 01:03:42 2012 AyakaUpdateWienerFilteringSound on PSL

 Last Thursday, I put the speaker and my laptop in the PSL table, and make triangular wave sound with the basic frequency of 40Hz, and Gaussian distributed sound.
(I create the sounds from my laptop using the software 'NHC Tone Generator' because I could not find the connector from BNC to speaker plug.)
And I measured the acoustic coupling in MCF signal. The all the 6 microphones were set in PSL table around PMC and PSL output optics. 

The performance of the offline noise cancellation with wiener filter is below.
(The target signal is MCF and the witness signals are 6 microphones.)

  • With Gaussian sound (Sorry for wrong labeling 'XARM' and no calibration)
    gauss_psdcoh_mcf.png
  • With 40Hz Triangular sound (Sorry for no calibration again)
    tri40_psdcoh_mcf.png

I can see some effects on MCF due to the sound on PSL table. Though I can subtract some acoustic signal and there are no coherence between MCF signal and mic signals, still some acoustic noise remains.
This is maybe because of some non-linearity effects or maybe because we have other effective places for acoustic coupling measurement. More investigations are needed.

Also, I compared the wiener filter and the transfer function from microphones signal to MCF signal. They should be the same ideally.
gauss_filters_mcf.pngGauss_estimatefilters_mcf.png

(Left: Wiener filter, Right: Transfer function estimated by the spectrum. They are measured when the Gaussian sound is on.)

These are different especially lower frequencies than 50 Hz. The wiener filter is bigger at lower frequencies. I guess this adds extra noise on the MCF signal. (see the 1st figure.)
The wiener filter can be improved by filterings. But if so, I want to know how can we determine the filters. It is interesting if we have some algorithms to determine the filters and taps and so on.
The more investigations are also needed.

  7760   Wed Nov 28 23:55:13 2012 AyakaUpdateWienerFilteringSound on PSL

 I have been searching for the way we can subtract signal better since I could see the acoustic coupling signal remains in the target signal even though there are no coherence between them.

I changed the training time which is used to decide wiener filter.
I have total 10 minutes data, and the wiener filter was decided using the whole data before.
tri40_psdcoh_mcf_varioust.pnggauss_psdcoh_mcf_varioust.png

(Right: the performance with the data when the triangular sound was created. Left: the performance with the data when the gaussian sound was created.)

I found that the acoustic signal can be fully subtracted above 40 Hz when the training time is short. This means the transfer functions between the acoustic signals and MCF signal change.
However, if the wiener filter is decided with short-time training, the performances at lower frequencies get worse. This is because wiener filter do not have enough low-frequency information.

So, I would like to find the way to combine the short-time training merit and long-time training merit. It should be useful to subtract the broad-band coupling noise.

  7789   Wed Dec 5 01:06:22 2012 AyakaUpdateWienerFilteringThe microphones and the speaker on the AP table

 In order to see the acoustic coupling on arm signals, I set 6 microphones and the speaker on the AP table. The microphones are not seismically isolated for now.
I have a signal generator under the AP table.

DSC_4956.JPGDSC_4961.JPG

When I played the 43 Hz triangular wave sound, I could see some coherence between POY error signal and microphones even though there is no peak in POY.

APsig.pdf

To Do:

  • Try to subtract the acoustic signal and see with which microphone the acoustic signal can be subtracted best. But how can I find whether the signal is subtracted or not? Is coherence information enough?
  • Make circuits for microphones to come to 40m.
  • Make suspension systems for microphones. One idea is that the microphones should be suspended from bridges which is to be put around at the top of the tables since there is no space for stacks for each microphones.
  • Prepare a new ADC.
  • Perform the same measurements at the other tables, such as POX and POY.
  7792   Wed Dec 5 09:53:01 2012 ranaUpdateWienerFilteringThe microphones and the speaker on the AP table

  Don't try to re-invent the mic mount: just copy the LIGO mic mount for the first version.

  7824   Thu Dec 13 18:06:59 2012 AyakaUpdateWienerFilteringNew microphone mounts

 Yesterday, I made new mounts for microphones.

IMG_0129.JPGIMG_0130.JPG

I glued a microphone on a pedestal. The cables are attached loosely so that its tension does not make any noise.
At the bottom of the mount, I attached the surgical tube forming a ring by double-side tape so that it damps the seismic vibration.

I made 6 mounts and these are all on the AS table now.
I took some data of XARM signal controlled by AS.

My plan is to find/set an upper limit on acoustic coupling noise in AS signal.
The acoustic noise can be estimated by the Wiener filter, but it is not accurate because it may see residual correlation between AS and microphone signals that should be 0 when the data is long enough.
I will find/set an upper limit by the analysis based on Neuman-Pearson criterion, that is analog of a stochastic GW background search.
If I can find the acoustic coupling noise should be below the shot noise, I am happy. If not, some improvements may be needed someday.

  8563   Mon May 13 17:24:38 2013 JenneUpdateWienerFilteringPRM YAW Wiener filtering

I have done a quicky offline Wiener filter to check how much PRM yaw motion we can subtract using a seismometer in the corner station.  This work may be redundant since Koji got the POP beam shadow sensor feedback loop working on Friday night.

Anyhow, for now, I used the GUR2 channels, since GUR2 was underneath the ITMX chamber (at the north edge of the POX table).  Note that Zach is currently borrowing this seismometer for the week.

I used GUR2_X, GUR2_Y and GUR2_Z to subtract from the PRM_SUSYAW_IN1 channel (the filename of the figure says "GUR1", but that's not true - GUR1 is at the Yend).  All 4 of these channels had been saved at 2kHz, but I downsampled to 256 (I probably should downsample to something lower, like 64, but haven't yet).  There is no pre-filtering or pre-weighting of the data, and no lowpass filters applied at the end, so I haven't done anything to remove the injected noise at higher freqs, which we obviously need to do if we are going to implement this online.

PRM_SUSYAW_subtractUsing_GUR1_xyz.png

If I compare this to Koji's work (elog 8562), at 3.2Hz, he gets a reduction of 2.5x, while this gets 10x.  At all other frequencies, Koji's work beats this, and Koji's method gets reduction from ~0.03Hz - 10Hz, while this is only getting reduction between 0.4Hz and 5Hz.  Also, this does not include actuator noise, so the actual online subtraction may not be quite as perfect as this figure.

  11485   Thu Aug 6 21:03:45 2015 IgnacioHowToWienerFilteringHow to do online static IIR Wiener filtering

In order to do online static IIR Wiener filtering one needs to do the following,

1) Get data for FIR Wiener filter witnesses and target.

2) Measure the transfer function (needs to be highly coherent, ~ 0.95 for all points) from the actuactor to the control signal of interest (ie. from MC2_OUT to MC_L).

3) Invert the actuator transfer function.

4) Use Vectfit or (LISO) to find a ZPK model for the actuator transfer and inverse transfer functions.

5) Prefilter your witness data with the actuator transfer function, to take into account the actuator to control transfer function when designing the offline Wiener FIR filter.

6) Calculate the frequency response for each witness from the FIR coefficients.

7) Vectfit the frequency reponses to a ZPK model, this is the FIR to IIR Wiener conversion step.

8) Now, either, divide the IIR transfer function by the actuator transfer function or more preferably, multiply by the inverse transfer function.

9) Use Quack to make SOS model of the IIR Wiener filter and inverse transfer function product that goes into foton for online implementation.

10) Load it into the system.

The block diagram below summarizes the steps above.

Attachment 1: iir.png
iir.png
  11552   Tue Sep 1 06:58:11 2015 IgnacioUpdateWienerFilteringMCL FF => WFS1 and WFS2 FF => ARMS FF

I took some training data during Sunday night/Monday morning while the MCL MISO FF was turned on. We wanted to see how much residual noise was left in the WFS1/WFS2 YAW and PITCH signals. 

The offline subtractions that can be achieved are:

For WFS1

 

For WFS2

I need to download data for these signals while the MCL FF is off in order to measure how much subtraction was achived indirectly with the MCL FF. In a previous elog:11472, I showed some offline subtractions for the WFS1 YAW and PITCH before any online FF was implemented either by me or Jessica. From the plots of that eLOG, one can clearly see that the YAW1 signal is clearly unchanged in the sense of how much seismic noise was mitigated indirectly torugh MCL. 

Koji has implemented the FF paths (thank you based Koji) necessary for these subtractions to be implemented. The thing to figure out now is where we want to actually actuate and to measure the corresponding transfer functions. I will try to have either Koji or Eric help me measure some of these transfer functions.

Finally, I looked at the ARMS and see what residual seismic noise can be subtracted

 

I'm not too concerned about noise in the arms as if the WFS subtractions turn out to be promising then I expect for some of the arms seismic noise to go down a bit further. We also don't need to measure an actuator transfer function for arm subtractions, give that its essentially flat at low frequencies, (less than 50 Hz).

 

  11880   Mon Dec 14 16:46:42 2015 ericqUpdateWienerFilteringNoise Subtraction Puzzler

Here's something to ponder.

Our online MCL feedforward uses perpendicular vertex T240 seismometer signals as input. When designing a feedforward filter, whether FIR Wiener or otherwise, we posit that the PSD of the best linear subtraction one can theoretically achieve is given by the coherence, via Psub = P(1-C). 

If we have more than one witness input, but they are completely uncorrelated, then this extends to Psub = P(1-C1)(1-C2). However, in reality, there are correlations between the witnesses, which would make this an overestimate of how much noise power can be subtracted. 

Now, I present the actual MCL situation. [According to Ignacio's ELOG (11584), the online performance is not far from this offline prediction]

Somehow, we are able to subtract much more noise at ~1Hz than the coherence would lead you to believe. One suspicion of mine is that the noise at 1Hz is quite nonstationary. Using median [C/P]SDs should help with this in principle, but the above was all done with medians, and using the mean is not much different.

Thinking back to one of the metrics that Eve and Koji were talking about this summer, (std(S)/mean(S), where S is the spectrogram of the signal) gives an answer of ~2.3 at that peak at 1.4Hz, which is definitely in the nonstationary regieme, but I don't have much intution into just how severe that value is.

So, what's the point of all this? We generally use coherence as a heuristic to judge whether we should bother attempting any noise subtraction in the first place, so I'm troubled by a circumstance in which there is much more subtraction to be had than coherence leads us to believe. I would like to come up with a way of predicting MISO subtraction results of nonstationary couplings more reliably.

Attachment 1: subpuzz.pdf
subpuzz.pdf
  11918   Thu Jan 7 15:29:54 2016 ericqUpdateWienerFilteringNoise Subtraction Puzzler

The puzzle continues...

I found some reference for computing "multicoherence," which should properly estimate the potential MISO subtraction potential in situations where the witness channels themselves have nontrivial coherence. Specifically, I followed the derivations in LIGO-P990002. The underlying math is related to principal component analysis (PCA) or gram-schmidt orthogonalization. 

This produced the following results, wherein the Wiener subtraction is still below what the coherences predict. 

I've attached the data and code that produced this plot. 

Attachment 1: subpuzz2.pdf
subpuzz2.pdf
Attachment 2: puzzle.zip
  11933   Thu Jan 14 15:08:37 2016 ericqUpdateWienerFilteringNoise Subtraction Puzzler

The anticlimatic resolution to my subtraction confusion: Spectral leakage around 1Hz. Increasing the FFT length to 256 sec now shows that the FIR WF pretty much achieves the ideal subtraction. 

If nothing else, it's good to have worked out how MISO coherence works.

Attachment 1: subpuzz_resolved.pdf
subpuzz_resolved.pdf
  11934   Thu Jan 14 18:41:36 2016 ranaUpdateWienerFilteringNoise Subtraction Puzzler

Just not just pedagogical !  Freq domain MISO coherence based subtraction estimation is much faster than calculating MISO WF. And since each bin is independent of each other, this gives us an estimate of how low the noise can go, whereas the Wiener filter is limited by Kramers-Kronig. We should be able to use this on the L1 DARM channel to do the noise hunting as well as estimating the subtraction efficacy of the pseudo channels that you and Rory come up with.

If you can code up a noise hunter example using DARM + a bunch of aux channels, we could implement it in the summary pages code.

  12059   Fri Apr 1 13:11:26 2016 ericqUpdateWienerFilteringBilinear Noise Testing

I've been banging my head against bilinear noise subtraction, and figured I needed to test things on some real hardware to see if what I'm doing makes sense.


I ran the ASS dither alignment on the Y arm, which ensures that the beam spots are centered on both mirrors. 

I then drove ITMY in yaw with some noise bandpassed from 30-40 Hz. It showed the expected bilinear upconversion that you expect from angular noise on a centered beam, which you can see from 60-80 Hz below

I looked at the length signal, as the noise subtraction target, and the ITMY oplev yaw signal plus the transmon QPD yaw signal as witnesses.

There is some linear coupling to length, which means the the centering isn't perfect, and the drive is maybe large enough to displace it off center. However, the important part is the upconverted noise which is present only in the length signal. The QPD and oplev signals show no increased noise from 60-80Hz above the reference traces where no drive is applied

I then compared the multicoherence of those two angular witnesses vs. the multicoherence of the two (linear) witnesses plus their (bilinear) product. Including the bilinear term clearly shows coherence, and thereby subtraction potential, at the upconverted noise hump. 

So, it looks like the way I'm generating the bilinear signals and calculating coherence in my code isn't totally crazy.

Attachment 1: bilinear_drive.pdf
bilinear_drive.pdf
Attachment 2: 40m_bilin.pdf
40m_bilin.pdf
  10019   Tue Jun 10 11:54:36 2014 ZachConfigurationWikiDokuWikis are still down

Not sure if someone is already on this, but the nodus DokuWikis are still down (AIC, ATF, Cryo, etc.)

I get:

DokuWiki Setup Error

The datadir ('pages') does not exist, isn't accessible or writable. You should check your config and permission settings. Or maybe you want to run the installer

  10021   Tue Jun 10 19:11:27 2014 EvanConfigurationWikiDokuWikis are back up

As of this writing, the DokuWiki appears to be working.

As you and I suspected, it looks like this was a clusterwhoops with the permissions for the NFS mount. Let's recap what happened in the past 24 hours:

  1. Yesterday, 8 PM: I restart the Apache server, thereby resurrecting the SVN (now conveniently located at /export/home/svn). The DokuWikis remain borked.
  2. Yesterday, 7 to 11 PM: Zach, Rana, and Jenne perform deep magic to get the front-end machines up and running again. This should be irrelevant for this Apache/SVN/DokuWiki witchcraft.
  3. Today, morning: the townsfolk happily resume their svn up and svn ci festival.
  4. Today, ca. 3 PM: Zach runs stopapache.sh to bring down Apache, thinking he can bring it back up momentarily with startapache.sh. But NFS is a jealous and vengeful god, and Apache now complains that it doesn't have permission to write to its logfiles, and therefore can't start httpd.
  5. Today, 5 PM: "How can this be?", Zach and I ask. Apache had no problem starting up yesterday night, and to our knowledge nobody futzed with chiara's NFS mount of /home/cds. This change remains mysterious to us.

Despite the aforementioned mystery, Zach and I pressed on and tried to diagnose the permissions issue. We found that even if you are logged into nodus or pianosa or rossa or whatever as the controls user, the NFS mount saw us as the user nobody (in the group nogroup). If we created a file on the NFS mount, it was owned by nobody/nogroup. If we tried to modify a file on the NFS mount that was owned by controls/controls or controls/staff, we got a "permission denied" error, even if we tried with superuser privileges.

It turns out this has to do with the vagaries of NFS (scroll down to gotcha #4). We have all_squash enabled in /etc/exports , which means that no matter your username or group on nodus, rossa, pianosa, or harpischordsa, NFS coerces your UID/GID to chiara's nobody/nogroup. Anyway, the fix was to go into chiara's /etc/exports and change this

/home/cds 192.168.113.0/255.255.255.0(rw,sync,no_subtree_check,all_squash,insecure)

to this

/home/cds 192.168.113.0/255.255.255.0(rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001,insecure)

where 1001/1001 are the UID/GID for chiara's controls/controls (as opposed to 65534/65534 for chiara's nobody/nogroup). That way, the NFS mount sees you as chiara's controls/controls.
 
In order to make chiara's NFS daemon aware of the new /etc/export settings, I ran sudo exportfs -r based on the answer to this StackOverflow question. As with all the best StackOverflow questions, the moderators closed it for being "off-topic".
 
[Edit, 2014-06-11, 11 AM: I've repeated the above anonuid/anongid change for the /home/cds/caltech/home/controls mount, so that nodus's /home/controls is writeable as well. I've also added a .screenrc for nodus in order to maintain sanity.]
  10022   Wed Jun 11 05:16:14 2014 ZachConfigurationWikiDokuWikis are back up

It looks like auth is broken on the AIC wiki (though working fine on ATF and Cryo). I did some poking around but can't see how anything we did could have broken it.

Quote:

As of this writing, the DokuWiki appears to be working.

 

ELOG V3.1.3-