1 / 8

Effects of Timing Errors and Timing Offsets in Pulsar Searches and Upper Limits Bruce Allen, UWM

Effects of Timing Errors and Timing Offsets in Pulsar Searches and Upper Limits Bruce Allen, UWM. Typical pulsar signal: f 0 = 1 kHz (nominal) 0.001 Hz daily frequency modulation (Earth rotation) 0.1 Hz annual frequency modulation (Earth orbit around Sun)

Download Presentation

Effects of Timing Errors and Timing Offsets in Pulsar Searches and Upper Limits Bruce Allen, UWM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Effects of Timing Errors and Timing Offsets in Pulsar Searches and Upper LimitsBruce Allen, UWM LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  2. Typical pulsar signal: f0 = 1 kHz (nominal) 0.001 Hz daily frequency modulation (Earth rotation) 0.1 Hz annual frequency modulation (Earth orbit around Sun) Typical search methods (both time-domain and frequency domain) use optimal filtering:(t)=templates(t)=dataNote: sometimes called the F-statistic. Effect of a smallconstant timing offsetton 1-detector SNR is quadratic in the timing error:Example: t =100 sec error, 1kHz signal, fractional loss of SNR is 18%: Example: t =10 sec error, 1kHz signal, fractional loss of SNR is 0.2%. Timing Precision in Pulsar Searches LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  3. If the signal were a pure sinusoid (no amplitude or frequency modulation) then maximization over the unknown initial phase would erase the effects of a constant timing offset error: What happens with a real pulsar signal? Since it is not a pure sinusoid, it’s not obvious if maximization over the unknown phase can compensate for a timing error.Let’s address this next… Maximization over phase (single detector) LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  4. Convenient to write SNR in the frequency domain: Typical pulsar signal: f0 = 1 kHz (nominal) 0.001 Hz daily frequency modulation (Earth rotation) 0.1 Hz annual frequency modulation (Earth orbit around Sun) Bandwidth of signal is: Effect of timing error t:which makes the SNRso the effects of the timing error are on 1-detector SNR are negligible if Effects of timing error on real pulsar signals (one detector) LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  5. Search time T < 1 yeareffects of the constant timing error are small if Example: for S1, with T=3 weeks, the effects of constant timing errors on SNR are small provided that t<20 seconds Search time T > 1 yeareffects of the constant timing error are small ifExample: in a year-long search, the efffects of a constant timing error on SNR would be small provided that t<1 second Effects of constant timing offset on real pulsar signals (one detector) LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  6. If the timing offset is varying, or one does a coherent search using more than one detector, then the fractional SNR loss iswhere t is the mean of the absolute timing errors. Example: timing error t =30 s, fractional SNR loss is 2% To correct timing errors for S1 pulsar analysis we “shifted data to nearest bin”. Sampling period is 61 s so that biggest timing error was ±30.5 s. Actual errors smaller. To prevent problems in the future, please try to keep all timing errors < 10 s. Varying timing offset & multiple-detector coherent searches LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  7. int deltatime(const char *instrument, int gpstime, int *valid){ int (*data)[4]; int i; /* corrections for Livingston L1 during S1. It would probably make sense to discard the first few hours for which there IS no timing data, but since the first SFT that we make starts at time L1.714179401 there is no need. And the first calibrated SFT is at time 714299280 */ int l1time[][4]={ {714177080, 714855840, -121, 678760}, {714855841, 715618813, -120, 762972}, /* value to use if time range not found */ {0, INT_MAX, -121, 0} }; /* corrections for Hanford H1 during S1. Again, it would probably make sense to discard the early times for which we have no timing data (about the first fifty hours of the run). In fact the first SFT is at time 714151661 which is BEFORE the first time listed below. But in fact we don't have calibration information until time 714357188. So this table is OK. */ int h1time[][4]={ {714335520, 715618813, -95, 1283293}, /* value to use if time range not found */ {0, INT_MAX, -95, 0} }; /* corrections for Hanford H2 during S1. Here the pattern of timing is SO irregular that we discard any segments for which we have no data. */ int h2time[][4]={ {714256920, 714407160, 5463, 150240}, {714407640, 714507180, -164, 99540}, {714507300, 714587880, 141, 80580}, {714697680, 714704820, 995, 7140}, {714705000, 714786780, -162, 81780}, {714786900, 715008660, 204, 221760}, {715008780, 715026480, 448, 17700}, {715026780, 715079460, -163, 52680}, {715079580, 715101120, 142, 21540}, {715101240, 715129260, 447, 28020}, {715129500, 715165740, -162, 36240}, {715166640, 715265820, -163, 99180}, {715266180, 715274580, -102, 8400}, {715274700, 715296960, 630, 22260}, {715297440, 715298280, -163, 840}, {715299420, 715305660, -163, 6240}, {715306920, 715545120, -163, 238200}, {715545240, 715556400, 814, 11160}, {715556640, 715594020, -163, 37380}, {715594140, 715618800, 81, 24660}, /* discard data if time range not found */ {-1, 0, 0, 0} }; The dirty details: cut-and-paste from lalapps (1) /* select the correct instrument */ if (!strcmp(instrument,"H1")) data=h1time; else if (!strcmp(instrument,"H2")) data=h2time; else if (!strcmp(instrument,"L1")) data=l1time; else { pout("Unrecognized detector: %s in deltatime().” “ Not H1, H2, or L1.\n", instrument); exit(1); } /* search along list to see if we find the correct time range */ for (i=0; data[i][0]>=0; i++) if (data[i][0]<=gpstime && gpstime<=data[i][1]){ *valid=1; return data[i][2]; } /* value we should use if time range NOT found */ *valid=0; return 0; } LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

  8. The dirty details: cut and paste from lalapps (2) /* Utility function for cyclically shifting an array "in place". Written for clarity and simplicity, not for efficiency. shift >= 0 : data[0] (moves to) -> data[shift] data[1] -> data[shift+1] data[length-1-shift] -> data[length-1] data[length-1-shift+1] -> data[0] data[length-1-shift+2] -> data[1] ... shift < 0 : replace shift by length+shift and follow the rules above. ... */ void shifter(float *data, int length, int shift){ float *temp=NULL; int delta=shift>=0?shift:length+shift; int i; /* if no shift is required, we are done */ if (shift==0) return; /* check that shift range seems reasonable */ if (abs(shift)>length/8){ pout("shifter(): shift amount %d seems too big/small for length %d array\n", shift, length); exit(1); } /* allocate memory */ if (!(temp=(float *)LALMalloc(sizeof(float)*length))){ pout("Unable to allocate %d bytes of memory in shifter\n", sizeof(float)*length); exit(1); } /* copy data */ memcpy(temp, data, sizeof(float)*length); /* now do shift */ for (i=0; i<length; i++) data[(delta+i) % length]=temp[i]; /* free memory and return */ LALFree(temp); return; } LIGO Scientific Collaboration - U. Wisconsin - Milwaukee

More Related