Esempio n. 1
0
#import pylab as plt
import matplotlib.pyplot as plt
import acoular as ac
from os import path
import matplotlib.image as mpimg
import numpy as np

sol = "4mic_solalt.h5"
sag = "4mic_sagust.h5"
orta = "4mic_orta.h5"
sol2 = "sol_ust_ses_20_01.h5"
sag2 = "sag_alt_ses_20_01.h5"

micgeofile = path.join(path.split(ac.__file__)[0], 'xml', 'array_4_2.xml')
m = ac.MicGeom(from_file=micgeofile)
g = ac.RectGrid(x_min=-4, x_max=4, y_min=-2, y_max=2, z=0.3, increment=0.01)
t1 = ac.TimeSamples(name=sag2)
cal = ac.Calib(from_file='calibration.xml')
es = ac.EigSpectra(time_data=t1,
                   block_size=512,
                   window="Hanning",
                   overlap='50%',
                   calib=cal)
bb = ac.BeamformerBase(freq_data=es, grid=g, mpos=m, r_diag=False)

Lm = ac.L_p(bb.synthetic(500, 0))
"""
plt.figure()
plt.imshow( Lm.T, origin='lower', vmin=Lm.max()-10, extent=g.extend(), interpolation='bicubic')

Esempio n. 2
0
"""

from os import path
from numpy import array,arange
import acoular
from pylab import figure, plot, imshow, colorbar, show,xlim, ylim,legend,cm
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon,Rectangle

#fft block size
block = 128

#example data 
micgeofile = path.join( path.split(acoular.__file__)[0],'xml','array_56.xml')
mg = acoular.MicGeom( from_file=micgeofile )
ts = acoular.TimeSamples( name='example_data.h5' )
ps = acoular.PowerSpectra( time_data=ts, block_size=128, window='Hanning' )
rg = acoular.RectGrid(x_min=-0.6, x_max=-0.0, y_min=-0.3, y_max=0.3, z=0.68,
             increment=0.02)
st = acoular.SteeringVector( grid = rg, mics=mg )
f = acoular.PowerSpectra(time_data=ts,block_size=block)
bf  = acoular.BeamformerBase(freq_data = f,steer= st)


#Integrate function can deal with multiple methods for integration:

#1. a circle containing of three values: x-center, y-center and radius
circle = array([-0.3,-0.1, 0.05])

#2. a rektange containing of 4 values: lower corner(x1, y1) and upper corner(x2, y2).
# moving grid
tr_beam.points[0] = (-(tmax/2)*v,0,5) # initial point, heigth, distance to the array of the moving grid
tr_beam.points[tmax] = ((tmax/2)*v,0,5) # final point, heigth, distance to the array of the moving grid


##############################################################################
# Creating the array
x = np.array((0.10,0.05,0.00,-0.05,-0.10,-0.05,0.00,0.05,0.15,-0.05,-0.25,
 -0.30,-0.15,0.05,0.25,0.30,0.10,-0.20,-0.40,-0.35,-0.10,0.20,0.40,0.35
 ,0.05,-0.35,-0.50,-0.40,-0.05,0.35,0.50,0.40))

y = np.array((0,0.05 ,0.10,0.05,0.00,-0.05,-0.10,-0.05,0.25,0.30,0.15,-0.05,-0.25,-0.30,-0.15,0.05,0.40,0.35,0.10,-0.20,-0.40,-0.35,-0.10,0.20,0.50,0.40,0.05,-0.35,-0.50,-0.40,-0.05,0.35))
y = y +1.2
z = np.zeros(32)
m = ac.MicGeom()
m.mpos_tot = np.array((x,y,z))

##############################################################################
# Source generator

long= int

s0 = ac.SineGenerator(sample_freq=fs, numsamples=long(fs*tmax), freq=f, \
    phase=np.pi)

s1 = ac.SineGenerator(sample_freq=fs, numsamples=long(fs*tmax), freq=f, \
    phase=np.pi)

p0 = ac.MovingPointSource(signal=s0, mics=m, trajectory=tr0)