Пример #1
0
def beamformer(fileName,figNum=1):
    param=param_read(fileName)
    navg=param['Navg']
    ts=TS.Sim_ts(param)
    kw=KW.Kw(param)
    kw.zero()
    dtaIn=ts.instance()
    gramOut=kw.instance()
    for i in range(navg):
        ts.zero()
        ts.nb_sim()
        ts.noise_sim()
        kw.kw(dtaIn)
    for i in range(vsip.getrowlength(gramOut)):
        v=vsip.colview(gramOut,i)
        vsip.freqswap(v)
        vsip.destroy(v)
    max = vsip.maxval(gramOut,None)
    avg = vsip.meanval(gramOut)
    vsip.clip(gramOut,0.0,max,avg/100000.0,max,gramOut)
    vsip.log10(gramOut,gramOut)
    min = vsip.minval(gramOut,None)
    vsip.add(-min,gramOut,gramOut)
    max=vsip.maxval(gramOut,None)
    vsip.mul(1.0/max,gramOut,gramOut)
    fig = plt.figure(figNum,figsize=(10,4))
    ax = fig.add_axes([0.10,0.10,0.85,0.80])
    ax.set_yticklabels(['0','0','30','60','90','120','150','180'])
    ax.yaxis.set_ticks_position('right')
    im=mToA(gramOut)
    plt.imshow(im)
    plt.title('K-Omega Beamformer Output')
    plt.xlabel('Frequency')
    plt.ylabel(r'$\frac{cos(\theta)}{\lambda}$',fontsize=16,rotation='horizontal')
    plt.colorbar()
Пример #2
0
Файл: kw.py Проект: rrjudd/jvsip
 def kw(self,m_data):
     row=vsip.VSIP_ROW
     col=vsip.VSIP_COL
     vsip.vmmul(self.ts_taper,m_data,row,m_data);
     vsip.vmmul(self.array_taper,m_data,col,m_data);
     vsip.fftop(self.rcfftm,m_data,self.cm_freq)
     vsip.fftip(self.ccfftm,self.cm_freq)
     vsip.magsq(self.cm_freq,self.rm_freq) #check rm_freq real part?
     vsip.mul(1.0/self.Navg,self.rm_freq, self.rm_freq)
     vsip.add(self.rm_freq,self.m_gram,self.m_gram)
Пример #3
0
Файл: kw.py Проект: rrjudd/jvsip
 def kw(self, m_data):
     row = vsip.VSIP_ROW
     col = vsip.VSIP_COL
     vsip.vmmul(self.ts_taper, m_data, row, m_data)
     vsip.vmmul(self.array_taper, m_data, col, m_data)
     vsip.fftop(self.rcfftm, m_data, self.cm_freq)
     vsip.fftip(self.ccfftm, self.cm_freq)
     vsip.magsq(self.cm_freq, self.rm_freq)  #check rm_freq real part?
     vsip.mul(1.0 / self.Navg, self.rm_freq, self.rm_freq)
     vsip.add(self.rm_freq, self.m_gram, self.m_gram)
Пример #4
0
 def nb_sim(self):
     from numpy import pi,cos
     for i in range(self.Nsim_freqs):
         f=self.sim_freqs[i]
         b=self.d_t * cos(self.sim_bearings[i] * pi/180.0)
         for j in range(self.Nsens):
             dt = float(j) * b
             vsip.add(dt,self.t,self.t_dt)
             vsip.mul(2 * pi * f, self.t_dt, self.t_dt);
             vsip.cos(self.t_dt,self.t_dt)
             vsip.mul(3.0,self.t_dt,self.t_dt)
             VU_rowview(self.v_data,self.m_data,j)
             vsip.add(self.t_dt,self.v_data,self.v_data)
Пример #5
0
 def noise_sim(self):
     from numpy import pi, cos
     d_t=self.d_t * self.Fs #sensor-to-sensor travel time at end-fire in samples
     o_0    = d_t * self.Nsens + 1 # array travel time at end-fire in samples
     a_stp = pi/self.Nsim_noise # angle step
     bl_attr = vsip.getattrib(self.bl_noise)
     for j in range(self.Nsim_noise):
         a_crct = cos(float(j) * a_stp)
         vsip.randn(self.rand,self.noise)
         vsip.firfilt(self.fir,self.noise,self.bl_noise)
         vsip.mul(12.0/float(self.Nsim_noise),self.bl_noise,self.bl_noise)
         vsip.putlength(self.bl_noise,self.Nts);
         for i in range(self.Nsens):
            vsip.putoffset(self.bl_noise,int(o_0 + i * d_t * a_crct))
            VU_rowview(self.v_data,self.m_data,i)
            vsip.add(self.bl_noise,self.v_data,self.v_data)
         vsip.putattrib(self.bl_noise,bl_attr);
     vsip.add(-vsip.meanval(self.m_data),self.m_data,self.m_data);