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 #===============================================================================
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)
# 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