Dirty details of optimal filtering: wraparound and windowing

We want to calculate a signal as a function of lag using
an FFT.

(6.19.100) |

(6.19.101) |

(6.19.102) | |||

(6.19.103) | |||

(6.19.104) |

Thus, if the data is treated as periodic, and the template is treated as periodic, one can compute the correlation as a function of time using only an FFT. In particular, the use of rectangular windowing does create sidelobes of the template's frequency components. However it also creates identical sidelobes of the signal's frequency components - so in effect the correlation in the time domain can be calculated exactly, without any windowing of the signal being necessary.

The only complication arises from the fact that the FFT treats the data as being periodic. Let's consider some simple examples to illustrate the effects of this. In all of our examples, the number of data points is and the (schematic) chirp filter has length and is zero-padded after that time. Please remember, in all the figures that follow, to identify the far right hand side of the graph () with the far left hand side (). Figure shows for a schematic chirp which begins at the first data point in the rectangular window. You will notice that the filter output peaks at .

Chirp filters can be ``stimulated" or ``triggered" by events that are not chirps. We will shortly discuss some techniques that can be used to distinguish triggering events that are chirps from those that are simply noise spikes or other transient (but non-chirp) varieties of non-stationary interferometer noise. Suppose that a chirp filter is triggered by some kind of transient event in the IFO output. At what time did this transient event ocurr? The answer to this question can be seen by examining the impulse response of the ``periodic filter" scheme, as shown in the following figures.

Thus, by searching for maxima in the filter output over the range we can detect either true chirps in the data stream, starting in the time interval and coalescing (roughly speaking) in the time interval , or we can detect transient impulse-like events in the data stream, which take place in the time interval . In the GRASP optimal filtering code, after examining the stretch of data points, we then shift the data points into the range and acquire a new additional set of data points covering remaining (new) time interval.
To indicate the time at which the filter output reached its maximum,
several different conventions can be used. First, we can indicate the
*peak offset*. This is the offset from the start of the filter output
at which the filter output reaches a maximum value. Alternatively,
we can use the *impulse offset*. This is the
offset at which the filter would have peaked if the maximum were due
to a delta-function like impulse at the input. These quantities
are defined in equation ().

Note that in practice, because the chirp signal has to be convolved
with the response function of the detector, the impulse response
of the filter is typically a few points longer than the actual chirp
signal. For this reason it is smart to assume that the impulse
response of your optimal filter is slightly longer (say a hundred
points longer) than the actual time-domain length of the corresponding
chirp. This safety margin is set with the
`#define SAFETY` statement in the optimal filtering example.
You lose a tiny bit of efficiency but reduce the likelihood
that boundary effects from the data discontinuity at the start/end of
the rectangular window will significantly stimulate the optimal filter
output for
. (See Figs. and
to see an illustration of how this windowing
discontinuity will corrupt the filter's output.)

We have demonstrated explicitly that with no windowing (or rather, rectangular windowing) of the data, one can find the appropriate correlation between the signal and a filter exactly: the rectangular window has the same effect on the signal as it does on the template (shifting energy into sidelobes in identical fashion). The only complication was that because of the periodic nature of the FFT one has to be caseful about wrap-around errors in relating the output of a filter to the time of occurrence of a signal or impulse.

There is one remaining ugly question. The optimal filter depends upon the noise power spectrum of the detector. In real-world filtering, should this noise power spectrum be calculated with windowed, or non-windowed data? We can determine the correlation between signal and template exactly, with only rectangular windowing, because energy in either of these functions is shifted into sidelobes in identical fashion. However a ``quiet" part of the IFO spectrum can be corrupted by sidelobes of a nearby noisy region. The effect of this is that the signal get rather less weight from this region of frequency space than it ought, in theory, to receive. This would argue for using only properly-windowed data to find the noise power spectrum to use in determining an optimal filter.

In fact, in our experience, it does not make any difference, at least not when you are searching for binary inspiral chirps. The reason is that the SNR obtained in an optimal filter is only sensitive at second order to errors in the optimal filter function. Thus, the errors due to noise sidelobes which appear if you fail to window the data to calculate an optimal filter are typically not large.