Header file for SFT normalization routines.
Normalizes SFTs based on their noise floor calculated using the running median.
History: Moved from Hough code 31/7/05
History: Created by B. Krishnan Aug, 2004 Taken from SFTbin.c and PeakSelect.c from Hough code
This module contains functions for normalizing SFTs. Currently two normalizations are supported. Given SFT data \( \tilde{x}_k \) where \( k \) labels a frequency bin, the normalized SFT is either \( \tilde{x}_k/\sqrt{ < |\tilde{x}_k|^2 >} \) or \( \sqrt{2N} \tilde{x}_k/\sqrt{ < |\tilde{x}_k|^2 >} \) , where \( N \) is the number of frequency bins in the SFT. The first normalization ensures that the SFT power follows an exponential distribution with unit mean (if the SFT data is distributed normally), while the second normalization is appropriate in the time domain. In either case, the mean of \( |\tilde{x}_k|^2 \) is estimated using the median, suitably normalized assuming that the power is distributed is exponentially.
The function XLALNormalizeSFTVect() takes as input a vector of SFTs and normalizes them. This function calls the functions XLALNormalizeSFT() which normalizes a single SFT, XLALSFTtoPeriodogram() which calculates the \( |\tilde{x}|^2 \) and XLALPeriodoToRngmed () which applies the running median algorithm to find a vector of medians. The function XLALNormalizeMultiSFTVect() normalizes a multi-IFO collection of SFT vectors and also returns a collection of power-estimates for these vectors using the Running median method.
Prototypes | |
int | XLALSFTtoRngmed (REAL8FrequencySeries *rngmed, const SFTtype *sft, UINT4 blockSize) |
Calculates a smoothed (running-median) periodogram for the given SFT. More... | |
int | XLALSFTtoPeriodogram (REAL8FrequencySeries *periodo, const COMPLEX8FrequencySeries *SFT) |
Calculate the "periodogram" of an SFT, ie the modulus-squares of the SFT-data. More... | |
int | XLALPeriodoToRngmed (REAL8FrequencySeries *rngmed, const REAL8FrequencySeries *periodo, UINT4 blockSize) |
Calculates running median over a single periodogram. More... | |
int | XLALNormalizeSFT (REAL8FrequencySeries *rngmed, SFTtype *sft, UINT4 blockSize, const REAL8 assumeSqrtS) |
Normalize an sft based on RngMed estimated PSD, and returns running-median. More... | |
int | XLALNormalizeSFTVect (SFTVector *sftVect, UINT4 blockSize, const REAL8 assumeSqrtS) |
Function for normalizing a vector of SFTs. More... | |
MultiPSDVector * | XLALNormalizeMultiSFTVect (MultiSFTVector *multsft, UINT4 blockSize, const MultiNoiseFloor *assumeSqrtSX) |
Function for normalizing a multi vector of SFTs in a multi IFO search and returns the running-median estimates of the power. More... | |
int | XLALSFTstoCrossPeriodogram (REAL8FrequencySeries *periodo, const COMPLEX8FrequencySeries *sft1, const COMPLEX8FrequencySeries *sft2) |
Calculate the cross-correlation periodogram from 2 SFTs. More... | |
int XLALSFTtoRngmed | ( | REAL8FrequencySeries * | rngmed, |
const SFTtype * | sft, | ||
UINT4 | blockSize | ||
) |
Calculates a smoothed (running-median) periodogram for the given SFT.
[out] | rngmed | running-median smoothed periodo [must be allocated!] |
[in] | sft | input SFT |
blockSize | Running median block size |
Definition at line 212 of file NormalizeSFTRngMed.c.
int XLALSFTtoPeriodogram | ( | REAL8FrequencySeries * | periodo, |
const COMPLEX8FrequencySeries * | SFT | ||
) |
Calculate the "periodogram" of an SFT, ie the modulus-squares of the SFT-data.
[out] | periodo | mod squares of SFT data (has to be allocated) |
[in] | SFT | input SFT |
Definition at line 260 of file NormalizeSFTRngMed.c.
int XLALPeriodoToRngmed | ( | REAL8FrequencySeries * | rngmed, |
const REAL8FrequencySeries * | periodo, | ||
UINT4 | blockSize | ||
) |
Calculates running median over a single periodogram.
[out] | rngmed | resulting 'smoothed' periodogram (must be allocated) |
[in] | periodo | input periodogram |
blockSize | Running median block size |
Definition at line 303 of file NormalizeSFTRngMed.c.
int XLALNormalizeSFT | ( | REAL8FrequencySeries * | rngmed, |
SFTtype * | sft, | ||
UINT4 | blockSize, | ||
const REAL8 | assumeSqrtS | ||
) |
Normalize an sft based on RngMed estimated PSD, and returns running-median.
[out] | rngmed | rng-median smoothed periodogram over SFT (Tsft*Sn/2) (must be allocated) |
sft | SFT to be normalized | |
blockSize | Running median block size for rngmed calculation | |
assumeSqrtS | If >0, instead assume sqrt(S) value *instead* of calculating PSD from running median |
Definition at line 68 of file NormalizeSFTRngMed.c.
Function for normalizing a vector of SFTs.
sftVect | [in/out] pointer to a vector of SFTs which will be normalized |
blockSize | Running median window size |
assumeSqrtS | If >0, instead assume sqrt(S) value *instead* of calculating PSD from running median |
Definition at line 120 of file NormalizeSFTRngMed.c.
MultiPSDVector* XLALNormalizeMultiSFTVect | ( | MultiSFTVector * | multsft, |
UINT4 | blockSize, | ||
const MultiNoiseFloor * | assumeSqrtSX | ||
) |
Function for normalizing a multi vector of SFTs in a multi IFO search and returns the running-median estimates of the power.
multsft | [in/out] multi-vector of SFTs which will be normalized |
blockSize | Running median window size |
assumeSqrtSX | If !NULL, instead assume sqrt(S^X) values *instead* of calculating PSD from running median |
Definition at line 159 of file NormalizeSFTRngMed.c.
int XLALSFTstoCrossPeriodogram | ( | REAL8FrequencySeries * | periodo, |
const COMPLEX8FrequencySeries * | sft1, | ||
const COMPLEX8FrequencySeries * | sft2 | ||
) |
Calculate the cross-correlation periodogram from 2 SFTs.
[out] | periodo | modulus square of SFT data (must be allocated) |
[in] | sft1 | pointer to first SFT |
[in] | sft2 | pointer to second SFT |
Definition at line 368 of file NormalizeSFTRngMed.c.