FRBSignalGeneration.py
def FastRiseExpDecay(timePoints,ampFRB,decayFRB,riseFRB):
    """ 
    Given an array of time points, this will generate an array of complex amplitudes corresponding to the shape of the FRB. The peak is at position time = 0. Negative times are okay. 
    The amplitude function is defined as 
    
    ampFRB*np.exp(timePoints/riseFRB), for time < 0
    ampFRB*np.exp(-timePoints/decayFRB), for time >=0
    
    The amplitude is used to generate gaussian distributed complex noise.
    """
    x = np.zeros(timePoints.shape)
    negBlock = np.where(timePoints<0)
    posBlock = np.where(timePoints>=0)

    x[negBlock] = np.exp(timePoints[negBlock]/riseFRB)
    x[posBlock] = np.exp(-timePoints[posBlock]/decayFRB)

    #divide by sqrt(2) to keep the amplitude 
    return ampFRB*x/np.sqrt(2)*(np.random.standard_normal(x.shape)+1j*np.random.standard_normal(x.shape))
 
    Given an array of time points, this will generate an array of complex amplitudes corresponding to the shape of the FRB. The peak is at position time = 0. Negative times are okay. 
    The amplitude function is defined as 
    
    ampFRB*np.exp(timePoints/riseFRB), for time < 0
    ampFRB*np.exp(-timePoints/decayFRB), for time >=0
    
    The amplitude is used to generate gaussian distributed complex noise.
    
Given an array of time points, this will generate an array of complex amplitudes corresponding to the shape of the FRB. The peak is at position time = 0. Negative times are okay.
The amplitude function is defined as



The amplitude is used to generate gaussian distributed complex noise.
Given an array of time points this will generate an array of complex amplitudes corresponding to the shape of the FRB . The peak is at position time = 0 . Negative times are okay . The amplitude function is defined as The amplitude is used to generate gaussian distributed complex noise .
def FastRiseExpDecay(timePoints,ampFRB,decayFRB,riseFRB):
    x = np.zeros(timePoints.shape)
    negBlock = np.where(timePoints<0)
    posBlock = np.where(timePoints>=0)
    x[negBlock] = np.exp(timePoints[negBlock]/riseFRB)
    x[posBlock] = np.exp(-timePoints[posBlock]/decayFRB)
    return ampFRB*x/np.sqrt(2)*(np.random.standard_normal(x.shape)+1j*np.random.standard_normal(x.shape))
def FastRiseExpDecay ( timePoints , ampFRB , decayFRB , riseFRB ) : x = np . zeros ( timePoints . shape ) negBlock = np . where ( timePoints < 0 ) posBlock = np . where ( timePoints >= 0 ) x [ negBlock ] = np . exp ( timePoints [ negBlock ] / riseFRB ) x [ posBlock ] = np . exp ( - timePoints [ posBlock ] / decayFRB ) return ampFRB * x / np . sqrt ( 2 ) * ( np . random . standard_normal ( x . shape ) + 1j * np . random . standard_normal ( x . shape ) )
Given an array of time points, this will generate an array of complex amplitudes corresponding to the shape of the FRB.
Given an array of time points this will generate an array of complex amplitudes corresponding to the shape of the FRB .
""" 
    Given an array of time points, this will generate an array of complex amplitudes corresponding to the shape of the FRB. The peak is at position time = 0. Negative times are okay. 
    The amplitude function is defined as 
    
    ampFRB*np.exp(timePoints/riseFRB), for time < 0
    ampFRB*np.exp(-timePoints/decayFRB), for time >=0
    
    The amplitude is used to generate gaussian distributed complex noise.
    """ #divide by sqrt(2) to keep the amplitude 
timePoints
ampFRB
decayFRB
riseFRB