Example #1
0
def filter_1way(b,a,in_memmap,out_memmap):
    
    X_nc = in_memmap
    n_s, n_ch = X_nc.shape
    Y_mc = out_memmap
    assert Y_mc.shape == (n_s,n_ch)
    
    n_out_chunk = 10000
    n_in_chunk = n_out_chunk

    t_warmup = max(a.size,b.size)*3
    
    pbar = ProgressBar(maxval = n_s).start()
    z = np.zeros((max(a.size,b.size)-1,n_ch))
    for i_ch in xrange(n_ch):
        _,z[:,i_ch] = lfilter(b,a,X_nc[t_warmup-1::-1,i_ch],zi=lfilter_zi(b,a))
    for i_in,i_out in zip(xrange(0,n_s,n_in_chunk),xrange(0,n_s,n_in_chunk)):
        for i_ch in xrange(n_ch):
            Y_mc[i_out:i_out+n_out_chunk,i_ch],z[:,i_ch] = lfilter(b,a,X_nc[i_in:i_in+n_in_chunk,i_ch],zi=z[:,i_ch])
        pbar.update(i_in)
    pbar.finish()
def downsample_1way(in_memmap, out_memmap, ratio=16):
    b, a = butter(BUTTER_ORD, 1 / (2 * ratio), 'low')

    X_nc = in_memmap
    n_s, n_ch = X_nc.shape
    n_s2 = n_s // ratio
    Y_mc = out_memmap
    assert Y_mc.shape == (n_s2, n_ch)

    n_out_chunk = 10000
    n_in_chunk = n_out_chunk * ratio

    t_warmup = max(a.size, b.size) * 3

    pbar = ProgressBar(maxval=n_s).start()
    z = np.zeros((BUTTER_ORD, n_ch))
    for i_ch in xrange(n_ch):
        _, z[:, i_ch] = lfilter(b,
                                a,
                                X_nc[t_warmup - 1::-1, i_ch],
                                zi=lfilter_zi(b, a))
    for (i_in, i_out) in zip(xrange(0, n_s, n_in_chunk),
                             xrange(0, n_s2, n_out_chunk)):
        for i_ch in xrange(n_ch):
            Low_nc, z[:, i_ch] = lfilter(b,
                                         a,
                                         X_nc[i_in:i_in + n_in_chunk, i_ch],
                                         zi=z[:, i_ch])
            Y_mc[i_out:i_out + n_out_chunk, i_ch] = Low_nc[::ratio]
        pbar.update(i_in)
    pbar.finish()
Example #3
0
def filter_1way(b, a, in_memmap, out_memmap):

    X_nc = in_memmap
    n_s, n_ch = X_nc.shape
    Y_mc = out_memmap
    assert Y_mc.shape == (n_s, n_ch)

    n_out_chunk = 10000
    n_in_chunk = n_out_chunk

    t_warmup = max(a.size, b.size) * 3

    pbar = ProgressBar(maxval=n_s).start()
    z = np.zeros((max(a.size, b.size) - 1, n_ch))
    for i_ch in xrange(n_ch):
        _, z[:, i_ch] = lfilter(b,
                                a,
                                X_nc[t_warmup - 1::-1, i_ch],
                                zi=lfilter_zi(b, a))
    for i_in, i_out in zip(xrange(0, n_s, n_in_chunk),
                           xrange(0, n_s, n_in_chunk)):
        for i_ch in xrange(n_ch):
            Y_mc[i_out:i_out + n_out_chunk,
                 i_ch], z[:, i_ch] = lfilter(b,
                                             a,
                                             X_nc[i_in:i_in + n_in_chunk,
                                                  i_ch],
                                             zi=z[:, i_ch])
        pbar.update(i_in)
    pbar.finish()
Example #4
0
def downsample_1way(in_memmap,out_memmap,ratio=16):
    b,a = butter(BUTTER_ORD,1/(2*ratio),'low')
    
    X_nc = in_memmap
    n_s, n_ch = X_nc.shape
    n_s2 = n_s//ratio
    Y_mc = out_memmap
    assert Y_mc.shape == (n_s2,n_ch)
    
    n_out_chunk = 10000
    n_in_chunk = n_out_chunk*ratio

    t_warmup = max(a.size,b.size)*3
    
    pbar = ProgressBar(maxval = n_s).start()
    z = np.zeros((BUTTER_ORD,n_ch))
    for i_ch in xrange(n_ch):
        _,z[:,i_ch] = lfilter(b,a,X_nc[t_warmup-1::-1,i_ch],zi=lfilter_zi(b,a))
    for (i_in,i_out) in zip(xrange(0,n_s,n_in_chunk),xrange(0,n_s2,n_out_chunk)):
        for i_ch in xrange(n_ch):
            Low_nc,z[:,i_ch] = lfilter(b,a,X_nc[i_in:i_in+n_in_chunk,i_ch],zi=z[:,i_ch])
            Y_mc[i_out:i_out+n_out_chunk,i_ch] = Low_nc[::ratio]
        pbar.update(i_in)
    pbar.finish()