Example #1
0
def runFilter(filterCoeffs,data):
    filteredData = scipy.signal.fftconvolve(data[np.newaxis,:],filterCoeffs[np.newaxis,:],mode='valid')
    criticalFreq = 200. #Hz
    sampleRate=1.e6
    f=2*np.sin(np.pi*criticalFreq/sampleRate)
    Q=.7
    q=1./Q
    hpSvf = IirFilter(sampleFreqHz=sampleRate,numCoeffs=np.array([1,-2,1]),denomCoeffs=np.array([1+f**2, f*q-2,1-f*q]))
    filteredData = hpSvf.filterData(filteredData)


    return filteredData
Example #2
0
def hpFilter(rawData, criticalFreq=20, sampleRate = 1e6):
    '''
    High pass filters the raw phase timestream
    INPUTS:
    rawData - data to be filtered
    criticalFreq - cutoff frequency of filter (in Hz)
    sampleRate - sample rate of rawData

    OUTPUTS:
    data - filtered data
    '''
    f=2*np.sin(np.pi*criticalFreq/sampleRate)
    Q=.7
    q=1./Q
    hpSvf = IirFilter(sampleFreqHz=sampleRate,numCoeffs=np.array([1,-2,1]),denomCoeffs=np.array([1+f**2, f*q-2,1-f*q]))
    data = hpSvf.filterData(rawData)
    return data
Example #3
0
def hpFilter(rawData, criticalFreq=20, sampleRate=1e6):
    """
    High pass filters the raw phase timestream
    INPUTS:
    rawData - data to be filtered
    criticalFreq - cutoff frequency of filter (in Hz)
    sampleRate - sample rate of rawData

    OUTPUTS:
    data - filtered data
    """
    f = 2 * np.sin(np.pi * criticalFreq / sampleRate)
    Q = 0.7
    q = 1.0 / Q
    hpSvf = IirFilter(
        sampleFreqHz=sampleRate,
        numCoeffs=np.array([1, -2, 1]),
        denomCoeffs=np.array([1 + f ** 2, f * q - 2, 1 - f * q]),
    )
    data = hpSvf.filterData(rawData)
    return data
Example #4
0
    data = scipy.signal.lfilter(filter,1,rawdata)
    #quietData = np.correlate(filter,quietRawdata,mode='same')[::-1]
    quietData = scipy.signal.lfilter(filter,1,quietRawdata)
    print 'filtering done'
    sys.stdout.flush()
else:
    data = np.array(sample)
    quietData = np.array(quietSample)

criticalFreq = 200 #Hz
hpSos = IirFilter(sampleFreqHz=sampleRate,criticalFreqHz=criticalFreq,btype='highpass')

f=2*np.sin(np.pi*criticalFreq/sampleRate)
Q=.7
q=1./Q
hpSvf = IirFilter(sampleFreqHz=sampleRate,numCoeffs=np.array([1,-2,1]),denomCoeffs=np.array([1+f**2, f*q-2,1-f*q]))

baselines = data - hpSvf.filterData(data)
print 'baselines done'

threshold = calcThreshold(quietData,Nsigma=thresholdSigma)
print 'threshold done'
sys.stdout.flush()

endIdx = 1000*thresholdLength
if bPlotPeaks:
    ax=fig.add_subplot(NAxes,1,iAxes)
    ax.plot(rawdata[0:endIdx],'.-',color='gray',label='raw phase')
    ax.plot(data[0:endIdx],'k.-',label='optimal filtered phase')
    ax.plot(baselines[0:endIdx],'b',label='lpf baseline')
    ax.plot(baselines[0:endIdx]+threshold,'y--',label='threshold')
Example #5
0
    qdrPhaseValues = np.array(qdrValues,dtype=np.float32)*360./2**16*4/np.pi #convert from adc units to degrees

    nPhaseValues=len(qdrValues)
    print nPhaseValues,'us'

    rawdata = np.array(qdrPhaseValues)* -np.pi/180. #in radians, and flip sign

    #create a highpass filter, then apply it to the data to take out the low frequency baseline

    sampleRate=1e6 # samples per second
    criticalFreq = 20 #Hz
    f=2*np.sin(np.pi*criticalFreq/sampleRate)
    Q=.7
    q=1./Q
    hpSvf = IirFilter(sampleFreqHz=sampleRate,numCoeffs=np.array([1,-2,1]),denomCoeffs=np.array([1+f**2, f*q-2,1-f*q]))
    data = hpSvf.filterData(rawdata)

    #data = scipy.signal.lfilter(filter,1,rawdata)

    trigDict = sigmaTrigger(data)
    peakIndices = trigDict['peakIndices']
    peaks = trigDict['peakHeights']

    nPeaksDetected = len(peaks)
    print len(peaks),'peaks detected'
    print 1.*nPeaksDetected/secs, 'cps'

    bPlotPeakHist = False
    if bPlotPeakHist:
        figHist,axHist = plt.subplots(1,1)