Пример #1
0
    mx = L_p(map.max())
    imshow(L_p(map.T),
           origin='lower',
           vmin=mx - 15,
           interpolation='nearest',
           extent=g.extend())
    colorbar()
    title(b.__class__.__name__)

#===============================================================================
# delay and sum beamformer in time domain
# processing chain: beamforming, filtering, power, average
#===============================================================================
bt = BeamformerTime(source=t1, grid=g, mpos=m, c=346.04)
ft = FiltFiltOctave(source=bt, band=cfreq)
pt = TimePower(source=ft)
avgt = TimeAverage(source=pt, naverage=1024)
cacht = TimeCache(source=avgt)  # cache to prevent recalculation

#===============================================================================
# delay and sum beamformer in time domain with autocorrelation removal
# processing chain: zero-phase filtering, beamforming+power, average
#===============================================================================
fi = FiltFiltOctave(source=t1, band=cfreq)
bts = BeamformerTimeSq(source=fi, grid=g, mpos=m, r_diag=True, c=346.04)
avgts = TimeAverage(source=bts, naverage=1024)
cachts = TimeCache(source=avgts)  # cache to prevent recalculation

#===============================================================================
# plot result maps for different beamformers in time domain
#===============================================================================
Пример #2
0
This example shows the different behaviour of SampleSplitter class  
when the maximum size of a block buffer is reached
"""

from acoular import TimePower, MaskedTimeSamples, SampleSplitter
import threading
from time import sleep

samples = 25000
h5savefile = 'example_data.h5'
ts = MaskedTimeSamples(name=h5savefile, start=0, stop=samples)

# set up Sample Splitter
ss = SampleSplitter(source=ts)

tp1 = TimePower(source=ss)
tp2 = TimePower(source=ss)
ss.register_object(tp1, tp2)  # register objects


def print_number_of_blocks_in_block_buffers():
    buffers = list(ss.block_buffer.values())
    elements = [len(buf) for buf in buffers]
    print(dict(zip(['tp1', 'tp2'], elements)))


def do_stuff1(obj):  #
    for i in obj.result(2048):
        print_number_of_blocks_in_block_buffers()
        sleep(0.1)
Пример #3
0
# define evaluation grid
# Hier könntest du vielleicht eine neue Spherical Grid Klasse schreiben oder
# eine ArbitraryGrid Klasse, damit wir ein sinnvolles Gitter zur Lokalisierung
# verwenden können.
# Als Anregung siehe: https://spaudiopy.readthedocs.io/en/latest/spaudiopy.grids.html
#
rg = SphericalGrid_Equiangular(NPOINTS_AZI, NPOINTS_ELE)
st = SteeringVector(grid=rg, mics=mg)

# analyze the data and generate map
name = AUDIO_DIR + TRACK
ts = WavSamples(name=name, start=STARTFRAME * NUM, stop=ENDFRAME * NUM)
bf = BeamformerTime(source=ts, steer=st)
#ft = FiltFiltOctave(source=bf,band=4000)
tp = TimePower(source=bf)
tavg = TimeAverage(source=tp, naverage=NUM)

# =============================================================================
# plot first data block
# =============================================================================
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d

gen = tavg.result(1)  # make generator object

## show map
#imshow( Lm.T, origin='lower', vmin=Lm.max()-10, extent=rg.extend, \
#interpolation='bicubic')
#colorbar()
    mx = L_p(map.max())
    imshow(L_p(map.T),
           origin='lower',
           vmin=mx - 15,
           interpolation='nearest',
           extent=g.extend())
    colorbar()
    title(b.__class__.__name__)

#===============================================================================
# delay and sum beamformer in time domain
# processing chain: beamforming, filtering, power, average
#===============================================================================
bt = BeamformerTime(source=t1, steer=st)
ft = FiltFiltOctave(source=bt, band=cfreq)
pt = TimePower(source=ft)
avgt = TimeAverage(source=pt, naverage=1024)
cacht = TimeCache(source=avgt)  # cache to prevent recalculation

#===============================================================================
# delay and sum beamformer in time domain with autocorrelation removal
# processing chain: zero-phase filtering, beamforming+power, average
#===============================================================================
fi = FiltFiltOctave(source=t1, band=cfreq)
bts = BeamformerTimeSq(source=fi, steer=st, r_diag=True)
avgts = TimeAverage(source=bts, naverage=1024)
cachts = TimeCache(source=avgts)  # cache to prevent recalculation

#===============================================================================
# clean deconvolution in time domain
# processing chain: zero-phase filtering, clean in time domain, power, average