コード例 #1
0
ファイル: signal_utilities.py プロジェクト: catubc/neuron
def EnterPSD():
    """
    a = frequency column
    b = PSD column
    num = number of coordinates
    slope = slope between coordinate pairs    
    """
    print (" ")
    print (" The input file must have two columns: \n freq(Hz) & accel(G^2/Hz)")
    print (" (Find dialog box) ")

    a,b,num =read_two_columns_from_dialog('Select PSD file')

    print ("\n samples = %d " % num)

    a=array(a)
    b=array(b)
    

    nm1=num-1

    slope =zeros(nm1,'f')


    ra=0

    for i in range (0,nm1):
#
        s=log(b[i+1]/b[i])/log(a[i+1]/a[i])
        
        slope[i]=s
#
        if s < -1.0001 or s > -0.9999:
            ra+= ( b[i+1] * a[i+1]- b[i]*a[i])/( s+1.)
        else:
            ra+= b[i]*a[i]*log( a[i+1]/a[i])

    omega=2*pi*a

    bv=zeros(num,'f') 
    bd=zeros(num,'f') 
        
    for i in range (0,num):         
        bv[i]=b[i]/omega[i]**2
     
    bv=bv*386**2
    rv=0

    for i in range (0,nm1):
#
        s=log(bv[i+1]/bv[i])/log(a[i+1]/a[i])
#
        if s < -1.0001 or s > -0.9999:
            rv+= ( bv[i+1] * a[i+1]- bv[i]*a[i])/( s+1.)
        else:
            rv+= bv[i]*a[i]*log( a[i+1]/a[i])         
         
        
    for i in range (0,num):         
        bd[i]=bv[i]/omega[i]**2
     
    rd=0

    for i in range (0,nm1):
#
        s=log(bd[i+1]/bd[i])/log(a[i+1]/a[i])
#
        if s < -1.0001 or s > -0.9999:
            rd+= ( bd[i+1] * a[i+1]- bd[i]*a[i])/( s+1.)
        else:
            rd+= bd[i]*a[i]*log( a[i+1]/a[i])         


    rms=sqrt(ra)
    three_rms=3*rms
    
    print (" ")
    print (" *** Input PSD *** ")
    print (" ")
 
    print (" Acceleration ")
    print ("   Overall = %10.3g GRMS" % rms)
    print ("           = %10.3g 3-sigma" % three_rms)

    grms=rms

    vrms=sqrt(rv)
    vthree_rms=3*vrms

    print (" ")
    print (" Velocity ") 
    print ("   Overall = %10.3g in/sec rms" % vrms)
    print ("           = %10.3g in/sec 3-sigma" % vthree_rms)

    drms=sqrt(rd)
    dthree_rms=3*drms

    print (" ")
    print (" Displacement ") 
    print ("   Overall = %10.3g in rms" % drms)
    print ("           = %10.3g in 3-sigma" % dthree_rms)

    return a,b,grms,num,slope         
コード例 #2
0
ファイル: signal_utilities.py プロジェクト: wonho13/work
def EnterPSD():
    """
    a = frequency column
    b = PSD column
    num = number of coordinates
    slope = slope between coordinate pairs    
    """
    print (" ")
    print (" The input file must have two columns: \n freq(Hz) & accel(G^2/Hz)")
    print (" (Find dialog box) ")

    a,b,num =read_two_columns_from_dialog('Select PSD file')

    print ("\n samples = %d " % num)

    a=array(a)
    b=array(b)
    

    nm1=num-1

    slope =zeros(nm1,'f')


    ra=0

    for i in range (0,nm1):
#
        s=log(b[i+1]/b[i])/log(a[i+1]/a[i])
        
        slope[i]=s
#
        if s < -1.0001 or s > -0.9999:
            ra+= ( b[i+1] * a[i+1]- b[i]*a[i])/( s+1.)
        else:
            ra+= b[i]*a[i]*log( a[i+1]/a[i])

    omega=2*pi*a

    bv=zeros(num,'f') 
    bd=zeros(num,'f') 
        
    for i in range (0,num):         
        bv[i]=b[i]/omega[i]**2
     
    bv=bv*386**2
    rv=0

    for i in range (0,nm1):
#
        s=log(bv[i+1]/bv[i])/log(a[i+1]/a[i])
#
        if s < -1.0001 or s > -0.9999:
            rv+= ( bv[i+1] * a[i+1]- bv[i]*a[i])/( s+1.)
        else:
            rv+= bv[i]*a[i]*log( a[i+1]/a[i])         
         
        
    for i in range (0,num):         
        bd[i]=bv[i]/omega[i]**2
     
    rd=0

    for i in range (0,nm1):
#
        s=log(bd[i+1]/bd[i])/log(a[i+1]/a[i])
#
        if s < -1.0001 or s > -0.9999:
            rd+= ( bd[i+1] * a[i+1]- bd[i]*a[i])/( s+1.)
        else:
            rd+= bd[i]*a[i]*log( a[i+1]/a[i])         


    rms=sqrt(ra)
    three_rms=3*rms
    
    print (" ")
    print (" *** Input PSD *** ")
    print (" ")
 
    print (" Acceleration ")
    print ("   Overall = %10.3g GRMS" % rms)
    print ("           = %10.3g 3-sigma" % three_rms)

    grms=rms

    vrms=sqrt(rv)
    vthree_rms=3*vrms

    print (" ")
    print (" Velocity ") 
    print ("   Overall = %10.3g in/sec rms" % vrms)
    print ("           = %10.3g in/sec 3-sigma" % vthree_rms)

    drms=sqrt(rd)
    dthree_rms=3*drms

    print (" ")
    print (" Displacement ") 
    print ("   Overall = %10.3g in rms" % drms)
    print ("           = %10.3g in 3-sigma" % dthree_rms)

    return a,b,grms,num,slope