Band Limited RMS Monitor

Send questions, comments, and bug reports to Edward Daw , edaw@lsuligo.phys.lsu.edu .

The band limited rms monitor continuously measures the root mean square of data from any fast LIGO data channel. Before the rms measurement is made, the data can be passed through an arbitrary IIR filter. Currently all the filters that are run continously at the sites are IIR, elliptic bandpass types. By fast channel, I mean any channel with a GPS timestamp. Any data collected by an ICS110 or Pentek 6102 ADC unit falls into this category.

This documentation consists of two sections. In the first section, I describe in detail the channels that are currently monitored continously at the Hanford and Livingston sites, and the filters used to process raw data from these channels. In the second section, I give an example of configuring and running a band limited rms monitor at the Hanford site.

1. Channels and Filters Running Continuously at the Sites

At both sites, two instances of blmrs_monitor are run continously. The first instance focuses on lower frequencies, between 0.1 and 30 Hz, important for channels coupled to ground motion. This monitor has the name New_Seis_Blrms at each site. The second instance focuses on frequency bands where we expect that the interferometers should be sensitive to gravitational waves. This monitor has the name IFO_blrms at each site.

The magnitude and phase of the frequency response of the various IIR filters from both instances can be downloaded from http://lsuligo.phys.lsu.edu/edaw/homepage/dmt/IIRresponse.pdf. Each filter is plotted over a wide frequency domain on a log-log scale and over a narrower frequency range on a linear-linear scale. There are 5 filters run under New_Seis_Blrms, with bandwidths 0.1-0.3Hz , 0.3-1Hz, 1-3Hz, 3-10Hz, and 10-30Hz. There are 4 filters run under IFO_blrms, with bandwidths 70-110Hz, 130-170Hz, 190-230Hz, and 800-1200Hz. The rms is calculated for all the filters operating on each channel, so if 9 channels are monitored by New_Seis_Blrms, a total of 9*5 = 45 rms measurements are made by the monitor.

For all band limited rms monitor jobs, data is read in in 1 second sections. For each second of filtered data, the sum of the squares of the filtered data bins is measured. For the two blrms_monitor instances running continuously at each site, 60 of these 1 second segments are added together, and the rms calculated, once a minute.

Data is written to the data monitor viewer, and stored in text files on delaronde (LLO) and sand (LHO). At both sites, the path to the data directory is /export/home/ops/monitors/data, in a subdirectory called one of

LLO_ifo_blrms : IFO_blrms at Livingston
New_Seis_Blrms: New_Seis_Blrms at Livingston
LHO_ifo_blrms: IFO_blrms at Hanford
New_Seis_Blrms: New_Seis_Blrms at Hanford
The data is in text format, with files labelled by their rough (unix clock) creation time. The file format is a shell style header (# as comment character) that enumerates the contents of the data columns, followed by the data in tab separated column format. The first column is the gps time.

The following 4 lists show the channels monitored by blrms_monitor at LLO and LHO. The lists were obtained by reading the configuration files. For a full explanation of the configuration files, see section 2. I advise you to check that the lists below still correspond with the contents of the configuration files. The 4 configuration files corresponding to the 4 channel lists are

delaronde.ligo-la.caltech.edu:/export/home/ops/pars/blrmsconfig.conf
delaronde.ligo-la.caltech.edu:/export/home/ops/pars/blrms_ifo_LLO.conf
sand.ligo-wa.caltech.edu:/export/home/ops/pars/blrmsconfig.conf
sand.ligo-wa.caltech.edu:/export/home/ops/pars/blrms_ifo_LHO.conf

The following is a list of channels monitored by New_Seis_Blrms at Livingston.

L0:PEM-LVEA_SEISX
L0:PEM-LVEA_SEISY
L0:PEM-LVEA_SEISZ
L0:PEM-EX_SEISX
L0:PEM-EX_SEISY
L0:PEM-EX_SEISZ
L0:PEM-EY_SEISX
L0:PEM-EY_SEISY
L0:PEM-EY_SEISZ
L1:IOO-MC_F
L1:ASC-ITMX_OPLEV_PERROR         
L1:ASC-ITMX_OPLEV_YERROR           
L1:ASC-ITMY_OPLEV_PERROR         
L1:ASC-ITMY_OPLEV_YERROR           
L1:ASC-ETMX_OPLEV_PERROR         
L1:ASC-ETMX_OPLEV_YERROR           
L1:ASC-ETMY_OPLEV_PERROR        
L1:ASC-ETMY_OPLEV_YERROR
L1:ASC-BS_OPLEV_PERROR           
L1:ASC-BS_OPLEV_YERROR             
L1:ASC-RM_OPLEV_PERROR
L1:ASC-RM_OPLEV_YERROR           
L1:ASC-MMT3_OPLEV_PERROR         
L1:ASC-MMT3_OPLEV_YERROR           

The following is a list of channels monitored by IFO_blrms at Livingston.

L1:LSC-AS_Q
L1:LSC-AS_I
L1:LSC-REFL_Q
L1:LSC-REFL_I

The following is a list of channels monitored by New_Seis_Blrms at Hanford.

H0:PEM-LVEA_SEISX
H0:PEM-LVEA_SEISY
H0:PEM-LVEA_SEISZ
H0:PEM-MX_SEISX
H0:PEM-MX_SEISY
H0:PEM-MX_SEISZ
H0:PEM-MY_SEISX
H0:PEM-MY_SEISY
H0:PEM-MY_SEISZ
H0:PEM-EX_SEISX
H0:PEM-EX_SEISY
H0:PEM-EX_SEISZ
H0:PEM-EY_SEISX
H0:PEM-EY_SEISY
H0:PEM-EY_SEISZ

The following is a list of channels monitored by IFO_blrms at Hanford.

H2:LSC-AS_Q
H2:LSC-AS_I
H2:LSC-REFL_Q
H2:LSC-REFL_I

2. Configuring and starting your own monitor

In the following example, I create a monitor to look at two frequency bands, 10-22Hz and 22-96Hz in the channels H1:LSC-REFL_I. and H0:PEM-LVEA_SEISX.

First I create the filters in matlab. Do the 10-22Hz filter first. I choose a power of two that is above 22Hz. How about 32. Taking 32Hz as my nyquist frequency, I design a digital elliptic bandpass filter for data with a sampling rate of 64Hz. I decide to use the matlab ellip filter design tool.

[b,a]=ellip(8,0.5,50,[10/32 22/32]);
mysoslowf = tf2sos(b,a);
mysoslowf = [mysoslowf(:,1:3),mysoslowf(:,5:6)];
Next I make the second filter, choosing 256Hz as my sampling rate so that the Nyquist frequency, 128Hz, is above the upper passband edge.
[b2,a2]=ellip(8,0.5,50,[22/128 96/128]);
mysoshighf = tf2sos(b2,a2);
mysoshighf = [mysoshighf(:,1:3),mysoshighf(:,5:6)];
See matlab help ellip. The second line converts the filter transfer function returned by ellip to a second order section array. The last line removes the 4th column of the array, which is the a0 coefficients that are all equal to 1. blrms_monitor uses the second order section array, with the a0 column removed, to set up the filters. The following matlab code writes a suitable file.
file=fopen('first.filter','w');
fprintf(file,'2\n');
fprintf(file,'22-96Hz\n');
fprintf(file,'256\n');
fprintf(file,'8\n');
fprintf(file,'%.14f\t%.14f\t%.14f\t%.14f\t%.14f\n',mysoshighf');
fprintf(file,'10-22Hz\n');
fprintf(file,'64\n');
fprintf(file,'8');
fprintf(file,'%.14f\t%.14f\t%.14f\t%.14f\t%.14f\n',mysoslowf');
fclose(file);
Notice (important) that the filter with the higher sampling frequency appears earlier in the file. The ordering of two filters with the same sampling rate is unimportant. The first number 2 was the number of filters the file contains. For each filter, I enter a text description of the filter action, the filter design sampling rate, and the number of second order sections (the number of rows in the array returned by tf2sos). The last command enters all the second order section coefficients.

Now I have the file first.filter, I construct a configuration file to select the channels. Here is a suitable contents for the file.

2
H1:LSC-REFL_Q
H0:PEM-LVEA_SEISX
60
/export/home/edaw/first.filter
I save this file as /export/home/edaw/my_blrms.conf. The 2 on the first line is the number of channels, then the channels are listed (the channel order does not matter). The 60 is the number of seconds per rms measurement output. There has to be an integer greater than zero. Finally, the name (or full path to) the filter file you wish to run on the channels in the config file.

Now to run the band limited rms monitor. Make sure you have set up environment variables correctly for the DMT. Best to look at the DMT documentation. Briefly, in tcsh you could type:

setenv DMTHOME "/export/home/dmt"
setenv DMTVERSION "pro"
source ${DMTHOME}/${DMTVERSION}/bin/setup
To invoke the band limited rms monitor type
blrms_monitor -if my_blrms.conf -of my_data.dat -mons "My_first_blrms" 
This will start a monitor running on an operator console. To start in the background, use the same command but end with
... -mons "My_first_blrms" >& My_first_blrms.log &
For an explanation of the command line arguments, you can type blrms_monitor with no arguments and look at the help. The -if is the name of the config file with the channels in it. The -of is the name of the file to write the data to. The -mons is the name of the monitor that you want to appear on the data monitor viewer in the control room. Make sure you use a unique name !! To stop the monitor, use ps -ef to find the process ID and use kill. Johns robust monitor class detects the kill and quits gracefully.

Note that I have assumed that all the files are in the same directory, and that you are running from that directory. To relax this assumption, put the full path to the file name in each case. Note that you may be wise to put the full path to the filter config file in my_blrms.conf as well.