The following are code examples for showing how to use . They are extracted from open source Python projects. You can vote up the examples you like or vote down the exmaples you don’t like. You can also save this page to your account.
Example 1
def get_timepixel_g2( oned_count ): n = len( oned_count ) norm = ( np.arange( n, 0, -1) * np.array( [np.average(oned_count[i:]) for i in range( n )] ) * np.array( [np.average(oned_count[0:n-i]) for i in range( n )] ) ) return np.correlate(oned_count, oned_count, mode = 'full')[-n:]/norm #########################################
Example 2
def get_timepixel_g2( oned_count ): n = len( oned_count ) norm = ( np.arange( n, 0, -1) * np.array( [np.average(oned_count[i:]) for i in range( n )] ) * np.array( [np.average(oned_count[0:n-i]) for i in range( n )] ) ) return np.correlate(oned_count, oned_count, mode = 'full')[-n:]/norm #########################################
Example 3
def get_timepixel_g2( oned_count ): n = len( oned_count ) norm = ( np.arange( n, 0, -1) * np.array( [np.average(oned_count[i:]) for i in range( n )] ) * np.array( [np.average(oned_count[0:n-i]) for i in range( n )] ) ) return np.correlate(oned_count, oned_count, mode = 'full')[-n:]/norm #########################################
Example 4
def gi_correlation(self, p_gi_len, p_symbol_len, signal): ''' Mode Erkennung ''' corr_delay = p_symbol_len - p_gi_len # Verzögertes Signal / Delay corr_A = signal[0:p_gi_len-1]; corr_B = signal[corr_delay:len(signal)-1] # Normierung corr_A = corr_A / np.sqrt( np.sum(np.square(np.abs(corr_A))) ) corr_B = corr_B / np.sqrt( np.sum(np.square(np.abs(corr_B))) ) # Korrelation erg_corr = np.correlate(corr_A,corr_B) return erg_corr[0]
Example 5
def crosscorr(data, fb, fs, pairs=None): """ Parameters ---------- Returns ------- """ n_channels, n_samples = np.shape(data) filtered, _, _ = analytic_signal(data, fb, fs) r = np.zeros([n_channels, n_channels], dtype=np.float32) for i in range(n_channels): for ii in range(n_channels): r[i, ii] = np.correlate(filtered[i, ], filtered[ii, ], mode='valid') return r
Example 6
def estimate_range(tx,rx,fs,quiet=False): """ tx: the known, noise-free, undelayed transmit signal (bistatic radars agree beforehand on the psuedorandom sequence) rx: the noisy, corrupted, interference, jammed signal to estimate distance from fs: baseband sample frequency """ Rxy = np.correlate(tx, rx, 'full') lags = np.arange(Rxy.size) - Rxy.size // 2 pklag = lags[Rxy.argmax()] distest_m = -pklag / fs / 2 * c mR = abs(Rxy) # magnitude of complex cross-correlation if not quiet and figure is not None: ax = figure().gca() ax.plot(lags,mR) ax.plot(pklag,mR[mR.argmax()], color='red', marker='*') ax.set_title('cross-correlation of receive waveform with transmit waveform') ax.set_ylabel('$|R_{xy}|$') ax.set_xlabel('lags') ax.set_xlim(pklag-100,pklag+100) return distest_m
Example 7
def procchunk(rx, tx, P:dict): if P['rxfn'] is not None: rx = scipy.signal.resample_poly(rx, P['resample'].numerator, P['resample'].denominator) fs = P['txfs'] # %% resamples parameters NrxPRI = int(fs * P['pri']) # Number of RX samples per PRI (resampled) assert NrxPRI >= tx.size,'PRI must be longer than chirp length!' NrxChirp = rx.size // NrxPRI # number of complete PRIs received in this data assert NrxChirp == P['Nchirp'] Rxy = 0. for i in range(P['Nchirp']): r = rx[i*NrxPRI:(i+1)*NrxPRI] Rxy += np.correlate(tx, r,'same') if P['verbose']: plotxcor(Rxy, fs) draw() pause(0.1) return Rxy
Example 8
def find_audio_period(aclip, t_min=.1, t_max=2, t_res=.01): """ Finds the period, in seconds of an audioclip. The beat is then given by bpm = 60/T t_min and _tmax are bounds for the returned value, t_res is the numerical precision """ chunksize = int(t_res*aclip.fps) chunk_duration = 1.0*chunksize/aclip.fps # v denotes the list of volumes v = np.array([(c**2).sum() for c in aclip.iter_chunks(chunksize)]) v = v-v.mean() corrs = np.correlate(v, v, mode = 'full')[-len(v):] corrs[:int(t_min/chunk_duration)]=0 corrs[int(t_max/chunk_duration):]=0 return chunk_duration*np.argmax(corrs)
Example 9
def extractMseq(cover, stego, secret_length, m, tau=1): u"""Extract secret informations by spread spectrum using m-sequence. @param cover : cover data (2 dimensional np.ndarray) @param stego : stego data (2 dimension np.ndarray) @param secret_length : length of secret information @param m : M-Sequence @param tau : embed shift interval @return secret : extracted secret information """ cover = _image2vrctor(cover) stego = _image2vrctor(stego) m_length = len(m) data = stego - cover data = data[:m_length:tau] secret_data = correlate(m, data, cycle=CYCLE) center = ((m_length-1)*2+1)//2 secret_data = secret_data[center:center+secret_length] secret_data = list(map(_checkData, secret_data)) return secret_data
Example 10
def _convolve_or_correlate(f, a, v, mode, propagate_mask): """ Helper function for ma.correlate and ma.convolve """ if propagate_mask: # results which are contributed to by either item in any pair being invalid mask = ( f(getmaskarray(a), np.ones(np.shape(v), dtype=np.bool), mode=mode) | f(np.ones(np.shape(a), dtype=np.bool), getmaskarray(v), mode=mode) ) data = f(getdata(a), getdata(v), mode=mode) else: # results which are not contributed to by any pair of valid elements mask = ~f(~getmaskarray(a), ~getmaskarray(v)) data = f(filled(a, 0), filled(v, 0), mode=mode) return masked_array(data, mask=mask)
Example 11
def plot_correlate(): """Plots the autocorrelation function computed by numpy. """ wave = thinkdsp.read_wave('28042__bcjordan__voicedownbew.wav') wave.normalize() segment = wave.segment(start=0.2, duration=0.01) lags, corrs = autocorr(segment) corrs2 = numpy.correlate(segment.ys, segment.ys, mode='same') thinkplot.plot(corrs2) thinkplot.config(xlabel='lag', ylabel='correlation', xlim=[0, len(corrs2)]) thinkplot.save(root='autocorr9') N = len(corrs2) half = corrs2[N//2:] lengths = range(N, N//2, -1) half /= lengths half /= half[0]
Example 12
def find_audio_period(aclip, t_min=.1, t_max=2, t_res=.01): """ Finds the period, in seconds of an audioclip. The beat is then given by bpm = 60/T t_min and _tmax are bounds for the returned value, t_res is the numerical precision """ chunksize = int(t_res*aclip.fps) chunk_duration = 1.0*chunksize/aclip.fps # v denotes the list of volumes v = np.array([(c**2).sum() for c in aclip.iter_chunks(chunksize)]) v = v-v.mean() corrs = np.correlate(v, v, mode = 'full')[-len(v):] corrs[:int(t_min/chunk_duration)]=0 corrs[int(t_max/chunk_duration):]=0 return chunk_duration*np.argmax(corrs)
Example 13
def find_audio_period(aclip, t_min=.1, t_max=2, t_res=.01): """ Finds the period, in seconds of an audioclip. The beat is then given by bpm = 60/T t_min and _tmax are bounds for the returned value, t_res is the numerical precision """ chunksize = int(t_res*aclip.fps) chunk_duration = 1.0*chunksize/aclip.fps # v denotes the list of volumes v = np.array([(c**2).sum() for c in aclip.iter_chunks(chunksize)]) v = v-v.mean() corrs = np.correlate(v, v, mode = 'full')[-len(v):] corrs[:int(t_min/chunk_duration)]=0 corrs[int(t_max/chunk_duration):]=0 return chunk_duration*np.argmax(corrs)
Example 14
def estimated_autocorrelation(x): n = len(x) variance = x.var() x = x - x.mean() r = np.correlate(x, x, mode='full')[-n:] assert np.allclose(r, np.array([(x[:n - k] * x[-(n - k):]).sum() for k in range(n)])) result = r / (variance * (np.arange(n, 0, -1))) return result
Example 15
def _delta(x, window): return np.correlate(x, window, mode="same")
Example 16
def test_float(self): self._setup(np.float) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.x, self.y[:-1], 'full') assert_array_almost_equal(z, self.z1_4) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2) z = np.correlate(self.x[::-1], self.y, 'full') assert_array_almost_equal(z, self.z1r) z = np.correlate(self.y, self.x[::-1], 'full') assert_array_almost_equal(z, self.z2r) z = np.correlate(self.xs, self.y, 'full') assert_array_almost_equal(z, self.zs)
Example 17
def test_object(self): self._setup(Decimal) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2)
Example 18
def test_no_overwrite(self): d = np.ones(100) k = np.ones(3) np.correlate(d, k) assert_array_equal(d, np.ones(100)) assert_array_equal(k, np.ones(3))
Example 19
def test_complex(self): x = np.array([1, 2, 3, 4+1j], dtype=np.complex) y = np.array([-1, -2j, 3+1j], dtype=np.complex) r_z = np.array([3-1j, 6, 8+1j, 11+5j, -5+8j, -4-1j], dtype=np.complex) r_z = r_z[::-1].conjugate() z = np.correlate(y, x, mode='full') assert_array_almost_equal(z, r_z)
Example 20
def align(l1, l2, axis): if axis == 1: #horizontal alignment, we do not care about the right line end #cw = min(l2.shape[1],l1.shape[1]) #l1 = l1[:,:cw] #l2 = l2[:,:cw] #compute correlation sc1 = np.sum(l1, axis=1-axis) sc2 = np.sum(l2, axis=1-axis) cor = np.correlate(sc1,sc2,"same") posErr = np.argmax(cor)-sc1.shape[0]/2 #place at right position if posErr > 0: l2c = l2.copy() l2c[:]=0 l2c[:,posErr:] = l2[:,:-posErr] l2 = l2c elif posErr < 0: l1c = l1.copy() l1c[:]=0 l1c[:,-posErr:] = l1[:,:posErr] l1=l1c else: #vertical alignment, we cate about both ends #compute correlation sc1 = np.sum(l1, axis=1-axis) sc2 = np.sum(l2, axis=1-axis) cor = np.correlate(sc1,sc2,"same") posErr = np.argmax(cor)-sc1.shape[0]/2 #place at right position if posErr > 0: l2c=l2.copy() l2c[:]=0 l2c[posErr:,:] = l2[:-posErr,:] l2 = l2c elif posErr < 0: l1c=l1.copy() l1c[:]=0 l1c[-posErr:,:]=l1[:posErr,:] l1 = l1c return posErr, l1, l2
Example 21
def autocorr(x): x=x-np.mean(x) y=np.correlate(x,x,mode='full') return y[y.size/2:]/y[y.size/2]
Example 22
def time_delay_func_paralel(start, end, outs, multi): for idx in range(start, end): print 'locating ...', getpid() c = numpy.correlate(multi[0, ][:, 0], multi[idx, ][:, 0], "full") C, I = c.max(0), c.argmax(0) outs[idx] = ((float(len(c))+1.0)/2.0 - I)/44100.0
Example 23
def time_delay_func(x, y): print 'locating ...' c = numpy.correlate(x[:, 0], y[:, 0], "full") C, I = c.max(0), c.argmax(0) out = ((float(len(c))+1.0)/2.0 - I)/44100.0 return out
Example 24
def fst_delay_snd(fst, snd, samp_rate, max_delay): # Verify argument shape. s1, s2 = fst.shape, snd.shape if len(s1) != 1 or len(s2) != 1 or s1[0] != s2[0]: raise Exception("Argument shape invalid, in 'fst_delay_snd' function") half_len = int(s1[0]/2) a = numpy.array(fst, dtype=numpy.double) b = numpy.array(snd, dtype=numpy.double) corr = numpy.correlate(a, b, 'same') max_pos = numpy.argmax(corr) # plot(s1[0], samp_rate, a, b, corr) return corr, (max_pos - half_len) / samp_rate
Example 25
def fst_delay_snd(fst, snd, samp_rate): # Verify argument shape. s1, s2 = fst.shape, snd.shape if len(s1) != 1 or len(s2) != 1 or s1[0] != s2[0]: raise Exception("Argument shape invalid, in 'fst_delay_snd' function") half_len = int(s1[0]/2) corre = numpy.correlate(fst, snd, 'same') max_pos = numpy.argmax(corre) return (max_pos - half_len)/samp_rate
Example 26
def rolling_mean(X, window_size): w = 1.0 / window_size * np.ones((window_size)) return np.correlate(X, w, 'valid')
Example 27
def rolling_mean(X, window_size): w = 1.0 / window_size * np.ones((window_size)) return np.correlate(X, w, 'valid')
Example 28
def test_float(self): self._setup(np.float) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.x, self.y[:-1], 'full') assert_array_almost_equal(z, self.z1_4) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2) z = np.correlate(self.x[::-1], self.y, 'full') assert_array_almost_equal(z, self.z1r) z = np.correlate(self.y, self.x[::-1], 'full') assert_array_almost_equal(z, self.z2r) z = np.correlate(self.xs, self.y, 'full') assert_array_almost_equal(z, self.zs)
Example 29
def test_object(self): self._setup(Decimal) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2)
Example 30
def test_no_overwrite(self): d = np.ones(100) k = np.ones(3) np.correlate(d, k) assert_array_equal(d, np.ones(100)) assert_array_equal(k, np.ones(3))
Example 31
def test_complex(self): x = np.array([1, 2, 3, 4+1j], dtype=np.complex) y = np.array([-1, -2j, 3+1j], dtype=np.complex) r_z = np.array([3-1j, 6, 8+1j, 11+5j, -5+8j, -4-1j], dtype=np.complex) r_z = r_z[::-1].conjugate() z = np.correlate(y, x, mode='full') assert_array_almost_equal(z, r_z)
Example 32
def autoCorrelation(s): def ac1d(x): var = x.var() x = x - x.mean() r = np.correlate(x[-x.size:], x, mode='full') return r[r.size//2:] / (var * np.arange(x.shape[0], 0, -1)) return np.apply_along_axis(ac1d, 0, s)
Example 33
def dodemod(rx, P:dict): aud = None fs = P['rxfs'] if P['demod']=='chirp': tx = loadbin(P['txfn'], P['txfs']) if tx is None: warnings.warn('simulated chirp reception') tx = rx rx = 0.05*rx + 0.1*rx.max()*(np.random.randn(rx.size) + 1j*np.random.randn(rx.size)) txfs = fs else: rx = scipy.signal.resample_poly(rx, UP, DOWN) fs = txfs = P['txfs'] txsec = tx.size/txfs # length of TX in seconds if P['pri'] is None: pri=txsec print(f'Using {pri*1000} ms PRI and {P["Npulse"]} pulses incoherently integrated') # %% integration NrxPRI = int(fs * pri) # Number of RX samples per PRI NrxStack = rx.size // NrxPRI # number of complete PRIs received in this data Nint = NrxStack // P['Npulse'] # Number of steps we'll take iterating Nextract = P['Npulse'] * NrxPRI # total number of samples to extract (in general part of one PRI is discarded after numerous PRIs) ax=None for i in range(Nint): ci = slice(i*Nextract, (i+1)*Nextract) rxint = rx[ci].reshape((NrxPRI, P['Npulse'])).mean(axis=1) Rxy = np.correlate(tx, rxint, 'full') ax = plotxcor(Rxy, txfs, ax) draw(); pause(0.5) elif P['demod']=='am': aud = am_demod(P['again']*rx, fs, fsaudio, P['fc'], p.audiobw, frumble=p.frumble, verbose=True) elif P['demod']=='ssb': aud = ssb_demod(P['again']*rx, fs, fsaudio, P['fc'], p.audiobw,verbose=True) return aud,fs
Example 34
def plot(seq): """Plot the autocorrelation of the given sequence.""" import matplotlib.pyplot as plt bipolar = np.where(seq, 1.0, -1.0) autocorr = np.correlate(bipolar, bipolar, 'same') plt.figure() plt.title("Length {} Gold code autocorrelation".format(len(seq))) xdata = np.arange(len(seq)) - len(seq) // 2 plt.plot(xdata, autocorr, '.-') plt.show()
Example 35
def _print_stats(seq): bipolar = np.where(seq, 1.0, -1.0) autocorr = np.correlate(bipolar, bipolar, 'same') peaks = np.sort(np.abs(autocorr)) peak = peaks[-1] noise = np.sqrt(np.mean(peaks[:-1]**2)) peak_to_peak2 = peak / peaks[-2] peak_to_noise = peak / noise print("Peak amplitude: {:.0f}".format(peak)) print("Largest non-peak amplitude: {:.0f}".format(peaks[-2])) print("Peak-to-max: {:.2f}".format(peak_to_peak2)) print("Peak-to-noise: {:.2f}".format(peak_to_noise))
Example 36
def correlationIndividual(data, idx = (0,1), cls = -1, delay = (-100, 100)): """Calculate corrs and auto correlation in time between the various measures""" n = len(idx); means = np.mean(data[:,:-1], axis = 0); nd = delay[1] - delay[0] + 1; cc = np.zeros((nd,n,n)) for i in range(n): for j in range(n): if delay[0] < 0: cm = np.correlate(data[:, i] - means[i], data[-delay[0]:, j] - means[j]); else: cm = [0]; if delay[1] > 0: cp = np.correlate(data[:, j] - means[j], data[delay[1]:, i] - means[i]); else: cp = [0]; ca = np.concatenate((cm[1:], cp[::-1])); if delay[0] > 0: cc[:,i,j] = ca[delay[0]:]; elif delay[1] < 0: cc[:,i,j] = ca[:-delay[1]]; else: cc[:,i,j] = ca; return cc;
Example 37
def correlationIndividualStages(data, idx = (0,1), cls = -1, delay = (-100, 100)): """Calculate correlation functions in time between the various measures in each stage""" stages = stageIndex(data, cls = cls); stages = np.insert(np.append(stages, data.shape[0]), 0, 0); ns = len(stages) - 1; n = len(idx); means = np.mean(data[:,:-1], axis = 0); nd = delay[1] - delay[0] + 1; cc = np.zeros((nd,n,n,ns)) for s in range(ns): dat = data[stages[s]:stages[s+1],:]; for i in range(n): for j in range(n): if delay[0] < 0: cm = np.correlate(dat[:, i] - means[i], dat[-delay[0]:, j] - means[j]); else: cm = [0]; if delay[1] > 0: cp = np.correlate(dat[:, j] - means[j], dat[delay[1]:, i] - means[i]); else: cp = [0]; ca = np.concatenate((cm[1:], cp[::-1])); if delay[0] > 0: cc[:,i,j,s] = ca[delay[0]:]; elif delay[1] < 0: cc[:,i,j,s] = ca[:-delay[1]]; else: cc[:,i,j,s] = ca; return cc;
Example 38
def correlogram(experiment): left = experiment.getresults('left') right = experiment.getresults('right') corr_trials = [np.correlate(l,r,'same') for l,r in zip(left,right)] return np.mean(corr_trials,axis=0)
Example 39
def five_group_stats(group): sales = np.array(group['Demanda_uni_equil'].values) samana = group['Semana'].values max_index = np.argmax(samana) returns = group['Dev_proxima'].mean() #this is signature on when slaes happens sorted_samana_index = np.argsort(samana) sorted_sales = sales[sorted_samana_index] signature = np.sum([ math.pow(2,s-3) for s in samana]) kurtosis = fillna_and_inf(scipy.stats.kurtosis(sorted_sales)) hmean = fillna_and_inf(scipy.stats.hmean(np.where(sales <0, 0.1, sales))) entropy = fillna_and_inf(scipy.stats.entropy(sales)) std = fillna_and_inf(np.std(sales)) N = len(sales) ci = fillna_and_inf(calculate_ci(std, N)) corr = fillna_and_inf(scipy.stats.pearsonr(range(N), sorted_sales)[0]) autocorr_list = np.correlate(sorted_sales, sorted_sales, mode='same') mean_autocorr = fillna_and_inf(np.mean(autocorr_list)) mean = np.mean(sales) mean_corss_points_count = 0 if N > 1: high_than_mean = mean < sorted_sales[0] for i in range(1,N): if (high_than_mean and mean > sorted_sales[i]) or (not high_than_mean and mean > sorted_sales[i]): mean_corss_points_count += mean_corss_points_count high_than_mean = mean < sorted_sales[i] return mean, N, std, np.median(sales), sales[max_index], samana[max_index], \ returns, signature, kurtosis, hmean, entropy, ci, corr, mean_autocorr, mean_corss_points_count
Example 40
def test_float(self): self._setup(np.float) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.x, self.y[:-1], 'full') assert_array_almost_equal(z, self.z1_4) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2) z = np.correlate(self.x[::-1], self.y, 'full') assert_array_almost_equal(z, self.z1r) z = np.correlate(self.y, self.x[::-1], 'full') assert_array_almost_equal(z, self.z2r) z = np.correlate(self.xs, self.y, 'full') assert_array_almost_equal(z, self.zs)
Example 41
def test_object(self): self._setup(Decimal) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2)
Example 42
def test_no_overwrite(self): d = np.ones(100) k = np.ones(3) np.correlate(d, k) assert_array_equal(d, np.ones(100)) assert_array_equal(k, np.ones(3))
Example 43
def test_complex(self): x = np.array([1, 2, 3, 4+1j], dtype=np.complex) y = np.array([-1, -2j, 3+1j], dtype=np.complex) r_z = np.array([3-1j, 6, 8+1j, 11+5j, -5+8j, -4-1j], dtype=np.complex) r_z = r_z[::-1].conjugate() z = np.correlate(y, x, mode='full') assert_array_almost_equal(z, r_z)
Example 44
def test_float(self): self._setup(np.float) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.x, self.y[:-1], 'full') assert_array_almost_equal(z, self.z1_4) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2) z = np.correlate(self.x[::-1], self.y, 'full') assert_array_almost_equal(z, self.z1r) z = np.correlate(self.y, self.x[::-1], 'full') assert_array_almost_equal(z, self.z2r) z = np.correlate(self.xs, self.y, 'full') assert_array_almost_equal(z, self.zs)
Example 45
def test_object(self): self._setup(Decimal) z = np.correlate(self.x, self.y, 'full') assert_array_almost_equal(z, self.z1) z = np.correlate(self.y, self.x, 'full') assert_array_almost_equal(z, self.z2)
Example 46
def test_no_overwrite(self): d = np.ones(100) k = np.ones(3) np.correlate(d, k) assert_array_equal(d, np.ones(100)) assert_array_equal(k, np.ones(3))
Example 47
def test_complex(self): x = np.array([1, 2, 3, 4+1j], dtype=np.complex) y = np.array([-1, -2j, 3+1j], dtype=np.complex) r_z = np.array([3-1j, 6, 8+1j, 11+5j, -5+8j, -4-1j], dtype=np.complex) r_z = r_z[::-1].conjugate() z = np.correlate(y, x, mode='full') assert_array_almost_equal(z, r_z)
Example 48
def angle_from_audio(self, file_name, chunks): [rate, wave] = wavfile.read(file_name) raw_0 = wave[:, 0].astype(np.float64) raw_1 = wave[:, 1].astype(np.float64) for i in range(1, chunks): start = i*chunks end = (i+1)*chunks left = raw_0[start:end] right = raw_1[start-self.buffer:end+self.buffer] corr_arr = np.correlate(right, left, 'valid') max_index = (len(corr_arr)/2)-np.argmax(corr_arr) time_d = max_index/float(rate) signal_dist = time_d*self.sound_speed if (signal_dist != 0 and abs(signal_dist)<=self.mic_dist): angle = math.degrees(math.asin( signal_dist / self.mic_dist)) self.angles.append(angle) a = np.array(self.angles) hist, bins = np.histogram(a, bins=10) # width = 0.7 * (bins[1] - bins[0]) # center = (bins[:-1] + bins[1:]) / 2 # plt.bar(center, hist, align='center', width=width) # plt.xlabel('Angle (degrees)', fontsize=16) # plt.show() index = np.argmax(hist) self.angle_pred = bins[index] print self.angle_pred
Example 49
def autocorrelation(x,lags): #Temporal correlation n = len(x) x = np.array(x) result = [np.correlate(x[i:] - x[i:].mean(),x[:n-i]-x[:n-i].mean())[0]\ /(x[i:].std()*x[:n-i].std()*(n-i)) for i in range(1,lags+1)] return result
Example 50
def autocorrelation(x,lags): #Temporal correlation n = len(x) x = np.array(x) result = [np.correlate(x[i:] - x[i:].mean(),x[:n-i]-x[:n-i].mean())[0]\ /(x[i:].std()*x[:n-i].std()*(n-i)) for i in range(1,lags+1)] return result