Python numpy.sinc() Examples
The following are 30 code examples for showing how to use numpy.sinc(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.
You may check out the related API usage on the sidebar.
You may also want to check out all available functions/classes of the module
numpy
, or try the search function
.
Example 1
Project: scarlet Author: pmelchior File: interpolation.py License: MIT License | 6 votes |
def lanczos(dx, a=3): """Lanczos kernel Parameters ---------- dx: float amount to shift image a: int Lanczos window size parameter Returns ------- result: array-like 1D Lanczos kernel """ if np.abs(dx) > 1: raise ValueError("The fractional shift dx must be between -1 and 1") window = np.arange(-a + 1, a + 1) + np.floor(dx) y = np.sinc(dx - window) * np.sinc((dx - window) / a) return y, window.astype(int)
Example 2
Project: RoBO Author: automl File: test_incumbent_estimation.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_projected_incumbent_estimation(self): X = np.random.randn(20, 10) y = np.sinc(X).sum(axis=1) class DemoModel(object): def train(self, X, y): self.X = X self.y = y def predict(self, X): return self.y, np.ones(self.y.shape[0]) model = DemoModel() model.train(X, y) inc, inc_val = incumbent_estimation.projected_incumbent_estimation(model, X, proj_value=1) b = np.argmin(y) assert inc[-1] == 1 assert np.all(inc[:-1] == X[b]) assert inc_val == y[b]
Example 3
Project: RoBO Author: automl File: test_wrapper_bohamiann.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def setUp(self): X_task_1 = np.random.rand(10, 2) y_task_1 = np.sinc(X_task_1 * 10 - 5).sum(axis=1) X_task_1 = np.concatenate((X_task_1, np.zeros([10, 1])), axis=1) X_task_2 = np.random.rand(10, 2) y_task_2 = np.sinc(X_task_2 * 2 - 4).sum(axis=1) X_task_2 = np.concatenate((X_task_2, np.ones([10, 1])), axis=1) X_task_3 = np.random.rand(10, 2) y_task_3 = np.sinc(X_task_3 * 8 - 6).sum(axis=1) X_task_3 = np.concatenate((X_task_3, 2 * np.ones([10, 1])), axis=1) self.X = np.concatenate((X_task_1, X_task_2, X_task_3), axis=0) self.y = np.concatenate((y_task_1, y_task_2, y_task_3), axis=0) self.model = WrapperBohamiann() self.model.train(self.X, self.y)
Example 4
Project: RelativePose Author: zhenpeiyang File: quaternion.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def expmap_to_quaternion(e): """ Convert axis-angle rotations (aka exponential maps) to quaternions. Stable formula from "Practical Parameterization of Rotations Using the Exponential Map". Expects a tensor of shape (*, 3), where * denotes any number of dimensions. Returns a tensor of shape (*, 4). """ assert e.shape[-1] == 3 original_shape = list(e.shape) original_shape[-1] = 4 e = e.reshape(-1, 3) theta = np.linalg.norm(e, axis=1).reshape(-1, 1) w = np.cos(0.5*theta).reshape(-1, 1) xyz = 0.5*np.sinc(0.5*theta/np.pi)*e return np.concatenate((w, xyz), axis=1).reshape(original_shape)
Example 5
Project: parametric_modeling Author: awesomebytes File: prony.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def main(): """Test driver""" # From pp. 149-150 x = np.ones(21) p = q = 1 print('x: {}\np: {}\nq: {}'.format(x,p,q)) b,a,err = prony(x, p, q) print('a: {}\nb: {}\nerr: {}'.format(a,b,err)) # From pp. 152-153 # Note that these results don't match the book, but they do match the # MATLAB version. So I'm either setting things up wrong or this is an # errata in the book. p = q = 5 nd = 5 n = np.arange(11) i = np.sinc((n-nd)/2)/2 b,a,err = prony(i, p, q) print('a: {}\nb: {}\nerr: {}'.format(a,b,err))
Example 6
Project: hcipy Author: ehpor File: test_propagation.py License: MIT License | 6 votes |
def test_fraunhofer_propagation_rectangular(): for num_pix in [512, 1024]: pupil_grid = make_pupil_grid(num_pix) focal_grid = make_focal_grid(16, 8) for size in [[1,1], [0.75,1], [0.75,0.75]]: aperture = evaluate_supersampled(rectangular_aperture(size), pupil_grid, 8) for focal_length in [1, 1.3]: prop = FraunhoferPropagator(pupil_grid, focal_grid, focal_length=focal_length) for wavelength in [1, 0.8]: wf = Wavefront(aperture, wavelength) img = prop(wf).electric_field img /= img[np.argmax(np.abs(img))] k_x, k_y = np.array(size) / wavelength / focal_length reference = (np.sinc(k_x * focal_grid.x) * np.sinc(k_y * focal_grid.y)) if num_pix == 512: assert np.abs(img - reference).max() < 5e-5 elif num_pix == 1024: assert np.abs(img - reference).max() < 2e-5 else: assert False # This should never happen.
Example 7
Project: nbodykit Author: bccp File: catalog.py License: GNU General Public License v3.0 | 6 votes |
def CompensateTSC(w, v): """ Return the Fourier-space kernel that accounts for the convolution of the gridded field with the TSC window function in configuration space. .. note:: see equation 18 (with p=3) of `Jing et al 2005 <https://arxiv.org/abs/astro-ph/0409240>`_ Parameters ---------- w : list of arrays the list of "circular" coordinate arrays, ranging from :math:`[-\pi, \pi)`. v : array_like the field array """ for i in range(3): wi = w[i] tmp = (numpy.sinc(0.5 * wi / numpy.pi) ) ** 3 v = v / tmp return v
Example 8
Project: nbodykit Author: bccp File: catalog.py License: GNU General Public License v3.0 | 6 votes |
def CompensatePCS(w, v): """ Return the Fourier-space kernel that accounts for the convolution of the gridded field with the PCS window function in configuration space. .. note:: see equation 18 (with p=4) of `Jing et al 2005 <https://arxiv.org/abs/astro-ph/0409240>`_ Parameters ---------- w : list of arrays the list of "circular" coordinate arrays, ranging from :math:`[-\pi, \pi)`. v : array_like the field array """ for i in range(3): wi = w[i] tmp = (numpy.sinc(0.5 * wi / numpy.pi) ) ** 4 v = v / tmp return v
Example 9
Project: nbodykit Author: bccp File: catalog.py License: GNU General Public License v3.0 | 6 votes |
def CompensateCIC(w, v): """ Return the Fourier-space kernel that accounts for the convolution of the gridded field with the CIC window function in configuration space .. note:: see equation 18 (with p=2) of `Jing et al 2005 <https://arxiv.org/abs/astro-ph/0409240>`_ Parameters ---------- w : list of arrays the list of "circular" coordinate arrays, ranging from :math:`[-\pi, \pi)`. v : array_like the field array """ for i in range(3): wi = w[i] tmp = (numpy.sinc(0.5 * wi / numpy.pi) ) ** 2 tmp[wi == 0.] = 1. v = v / tmp return v
Example 10
Project: ASP Author: TUIlmenauAMS File: TFMethods.py License: GNU General Public License v3.0 | 6 votes |
def sincinterp(x): """ Sinc interpolation for computation of fractional transformations. As appears in : -https://github.com/audiolabs/frft/ ---------- Args: f : (array) Complex valued input array a : (float) Alpha factor Returns: ret : (array) Real valued synthesised data """ N = len(x) y = np.zeros(2 * N - 1, dtype=x.dtype) y[:2 * N:2] = x xint = fftconvolve( y[:2 * N], np.sinc(np.arange(-(2 * N - 3), (2 * N - 2)).T / 2),) return xint[2 * N - 3: -2 * N + 3]
Example 11
Project: pyroomacoustics Author: LCAV File: utilities.py License: MIT License | 6 votes |
def fractional_delay(t0): """ Creates a fractional delay filter using a windowed sinc function. The length of the filter is fixed by the module wide constant `frac_delay_length` (default 81). Parameters ---------- t0: float The delay in fraction of sample. Typically between -1 and 1. Returns ------- numpy array A fractional delay filter with specified delay. """ N = constants.get("frac_delay_length") return np.hanning(N) * np.sinc(np.arange(N) - (N - 1) / 2 - t0)
Example 12
Project: spectral_connectivity Author: Eden-Kramer-Lab File: transforms.py License: GNU General Public License v3.0 | 6 votes |
def _get_taper_eigenvalues(tapers, half_bandwidth, time_index): '''Finds the eigenvalues of the original spectral concentration problem using the autocorr sequence technique from Percival and Walden, 1993 pg 390 Parameters ---------- tapers : array, shape (n_tapers, n_time_samples_per_window) half_bandwidth : float time_index : array, (n_time_samples_per_window,) Returns ------- eigenvalues : array, shape (n_tapers,) ''' ideal_filter = 4 * half_bandwidth * np.sinc( 2 * half_bandwidth * time_index) ideal_filter[0] = 2 * half_bandwidth n_time_samples_per_window = len(time_index) return np.dot( _auto_correlation(tapers)[:, :n_time_samples_per_window], ideal_filter)
Example 13
Project: clifford Author: pygae File: rotor_parameterisation.py License: BSD 3-Clause "New" or "Revised" License | 6 votes |
def val_exp(B_val): """ Fast implementation of the translation and rotation specific exp function """ t_val = imt_func(B_val, no.value) phiP_val = B_val - mult_with_ninf(t_val) phi = np.sqrt(-float(gmt_func(phiP_val, phiP_val)[0])) P_val = phiP_val / phi P_n_val = gmt_func(P_val, I3.value) t_nor_val = gmt_func(imt_func(t_val, P_n_val), P_n_val) t_par_val = t_val - t_nor_val coef_val = np.sin(phi) * P_val coef_val[0] += np.cos(phi) R_val = coef_val + gmt_func(coef_val, mult_with_ninf(t_nor_val)) + \ np.sinc(phi/np.pi) * mult_with_ninf(t_par_val) return R_val
Example 14
Project: xrayutilities Author: dkriegner File: powder.py License: GNU General Public License v2.0 | 6 votes |
def conv_receiver_slit(self): """ compute the rectangular convolution for the receiver slit or SiPSD pixel size Returns ------- array-like the convolver """ me = self.get_function_name() # the name of the convolver, as a string # The receiver slit convolution is a top-hat of angular half-width # a=(slit_width/2)/diffractometer_radius # which has Fourier transform of sin(a omega)/(a omega) # NOTE! numpy's sinc(x) is sin(pi x)/(pi x), not sin(x)/x if self.param_dicts[me].get("slit_width", None) is None: return None epsr = (self.param_dicts["conv_receiver_slit"]["slit_width"] / self.param_dicts["conv_global"]["diffractometer_radius"]) return self.general_tophat(me, epsr)
Example 15
Project: urh Author: jopohl File: Filter.py License: GNU General Public License v3.0 | 6 votes |
def design_windowed_sinc_lpf(fc, bw): N = Filter.get_filter_length_from_bandwidth(bw) # Compute sinc filter impulse response h = np.sinc(2 * fc * (np.arange(N) - (N - 1) / 2.)) # We use blackman window function w = np.blackman(N) # Multiply sinc filter with window function h = h * w # Normalize to get unity gain h_unity = h / np.sum(h) return h_unity
Example 16
Project: setk Author: funcwj File: beamformer.py License: Apache License 2.0 | 6 votes |
def diffuse_covar(num_bins, dist_mat, sr=16000, c=340, diag_eps=0.1): """ Compute covarance matrices of the spherically isotropic noise field Gamma(omega)_{ij} = sinc(omega * tau_{ij}) = sinc(2 * pi * f * tau_{ij}) Arguments: num_bins: number of the FFT points dist_mat: distance matrix sr: sample rate c: sound of the speed Return: covar: covariance matrix, F x N x N """ N, _ = dist_mat.shape eps = np.eye(N) * diag_eps covar = np.zeros([num_bins, N, N]) for f in range(num_bins): omega = np.pi * f * sr / (num_bins - 1) covar[f] = np.sinc(dist_mat * omega / c) + eps return covar
Example 17
Project: odl Author: odlgroup File: fourier_test.py License: Mozilla Public License 2.0 | 6 votes |
def test_fourier_trafo_charfun_1d(): # Characteristic function of [0, 1], its Fourier transform is # given by exp(-1j * y / 2) * sinc(y/2) def char_interval(x): return (x >= 0) & (x <= 1) def char_interval_ft(x): return np.exp(-1j * x / 2) * sinc(x / 2) / np.sqrt(2 * np.pi) # Base version discr = odl.uniform_discr(-2, 2, 40, impl='numpy') dft_base = FourierTransform(discr) # Complex version, should be as good discr = odl.uniform_discr(-2, 2, 40, impl='numpy', dtype='complex64') dft_complex = FourierTransform(discr) # Without shift discr = odl.uniform_discr(-2, 2, 40, impl='numpy', dtype='complex64') dft_complex_shift = FourierTransform(discr, shift=False) for dft in [dft_base, dft_complex, dft_complex_shift]: func_true_ft = dft.range.element(char_interval_ft) func_dft = dft(char_interval) assert (func_dft - func_true_ft).norm() < 5e-6
Example 18
Project: odl Author: odlgroup File: fourier_test.py License: Mozilla Public License 2.0 | 6 votes |
def test_fourier_trafo_scaling(): # Test if the FT scales correctly # Characteristic function of [0, 1], its Fourier transform is # given by exp(-1j * y / 2) * sinc(y/2) def char_interval(x): return (x >= 0) & (x <= 1) def char_interval_ft(x): return np.exp(-1j * x / 2) * sinc(x / 2) / np.sqrt(2 * np.pi) discr = odl.uniform_discr(-2, 2, 40, impl='numpy', dtype='complex128') dft = FourierTransform(discr) for factor in (2, 1j, -2.5j, 1 - 4j): func_true_ft = factor * dft.range.element(char_interval_ft) func_dft = dft(factor * discr.element(char_interval)) assert (func_dft - func_true_ft).norm() < 1e-6
Example 19
Project: odl Author: odlgroup File: fourier_test.py License: Mozilla Public License 2.0 | 6 votes |
def test_fourier_trafo_freq_shifted_charfun_1d(): # Frequency-shifted characteristic function: mult. with # exp(-1j * b * x) corresponds to shifting the FT by b. def fshift_char_interval(x): return np.exp(-1j * x * np.pi) * ((x >= -0.5) & (x <= 0.5)) def fshift_char_interval_ft(x): return sinc((x + np.pi) / 2) / np.sqrt(2 * np.pi) # Number of points is very important here (aliasing) discr = odl.uniform_discr(-2, 2, 400, impl='numpy', dtype='complex64') dft = FourierTransform(discr) func_true_ft = dft.range.element(fshift_char_interval_ft) func_dft = dft(fshift_char_interval) assert (func_dft - func_true_ft).norm() < 0.001
Example 20
Project: odl Author: odlgroup File: fourier_test.py License: Mozilla Public License 2.0 | 6 votes |
def test_dft_with_known_pairs_2d(): # Frequency-shifted product of characteristic functions def fshift_char_rect(x): # Characteristic function of the cuboid # [-1, 1] x [1, 2] return (x[0] >= -1) & (x[0] <= 1) & (x[1] >= 1) & (x[1] <= 2) def fshift_char_rect_ft(x): # FT is a product of shifted and frequency-shifted sinc functions # 1st comp.: 2 * sinc(y) # 2nd comp.: exp(-1j * y * 3/2) * sinc(y/2) # Overall factor: (2 * pi)^(-1) return ( 2 * sinc(x[0]) * np.exp(-1j * x[1] * 3 / 2) * sinc(x[1] / 2) / (2 * np.pi) ) discr = odl.uniform_discr([-2] * 2, [2] * 2, (100, 400), impl='numpy', dtype='complex64') dft = FourierTransform(discr) func_true_ft = dft.range.element(fshift_char_rect_ft) func_dft = dft(fshift_char_rect) assert (func_dft - func_true_ft).norm() < 0.001
Example 21
Project: scarlet Author: pmelchior File: interpolation.py License: MIT License | 5 votes |
def sinc2D(y, x): """ 2-D sinc function based on the product of 2 1-D sincs Parameters ---------- x, y: arrays Coordinates where to evaluate the 2-D sinc Returns ------- result: array 2-D sinc evaluated in x and y """ return np.dot(np.sinc(y), np.sinc(x))
Example 22
Project: pylops Author: equinor File: Seislet.py License: GNU Lesser General Public License v3.0 | 5 votes |
def _predict_trace(trace, t, dt, dx, slope, adj=False): r"""Slope-based trace prediction. Resample a trace to a new time axis defined by the local slopes along the trace. Slopes do implicitly represent a time-varying time delay :math:`\Delta t (t) = dx*s(t)`. The input trace is interpolated using sinc-interpolation to a new time axis given by the following formula: :math:`t_{new} = t + dx*s(t)`. Parameters ---------- trace : :obj:`numpy.ndarray` Trace t : :obj:`numpy.ndarray` Time axis dt : :obj:`float` Time axis sampling dx : :obj:`float` Spatial axis sampling slope : :obj:`numpy.ndarray` Slope field adj : :obj:`bool`, optional Perform forward (``False``) or adjoint (``True``) operation Returns ------- tracenew : :obj:`numpy.ndarray` Resampled trace """ newt = t - dx * slope sinc = np.tile(newt, (len(newt), 1)) - \ np.tile(t[:, np.newaxis], (1, len(newt))) if adj: tracenew = np.dot(trace, np.sinc(sinc / dt).T) else: tracenew = np.dot(trace, np.sinc(sinc / dt)) return tracenew
Example 23
Project: pylops Author: equinor File: Interp.py License: GNU Lesser General Public License v3.0 | 5 votes |
def _sincinterp(M, iava, dims=None, dir=0, dtype='float64'): """Sinc interpolation. """ _checkunique(iava) # create sinc interpolation matrix nreg = M if dims is None else dims[dir] ireg = np.arange(nreg) sinc = np.tile(iava[:, np.newaxis], (1, nreg)) - \ np.tile(ireg, (len(iava), 1)) sinc = np.sinc(sinc) # identify additional dimensions and create MatrixMult operator otherdims = None if dims is not None: otherdims = np.array(dims) otherdims = np.roll(otherdims, -dir) otherdims = otherdims[1:] print('dims', dims) print('otherdims', otherdims) Op = MatrixMult(sinc, dims=otherdims, dtype=dtype) # create Transpose operator that brings dir to first dimension if dir > 0: axes = np.arange(len(dims), dtype=np.int) axes = np.roll(axes, -dir) dimsd = list(dims) dimsd[dir] = len(iava) Top = Transpose(dims, axes=axes, dtype=dtype) T1op = Transpose(dimsd, axes=axes, dtype=dtype) Op = T1op.H * Op * Top return Op
Example 24
Project: RoBO Author: automl File: test_lcb.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.model = DemoModel() self.model.train(self.X, self.y)
Example 25
Project: RoBO Author: automl File: test_ei.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.model = DemoModel() self.model.train(self.X, self.y)
Example 26
Project: RoBO Author: automl File: test_pi.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.model = DemoModel() self.model.train(self.X, self.y)
Example 27
Project: RoBO Author: automl File: test_log_ei.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.model = DemoModel() self.model.train(self.X, self.y)
Example 28
Project: RoBO Author: automl File: test_information_gain_per_unit_cost.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.c = np.exp(self.X[:, 1]) self.n_dims = 2 self.lower = np.zeros(self.n_dims) self.upper = np.ones(self.n_dims) self.is_env = np.array([0, 1]) kernel = george.kernels.Matern52Kernel(np.array([0.1, 0.1]), ndim=2) self.model = GaussianProcess(kernel) self.model.train(self.X, self.y) kernel = george.kernels.Matern52Kernel(np.ones([self.n_dims]) * 0.01, ndim=self.n_dims) kernel = 3000 * kernel prior = default_priors.TophatPrior(-2, 2) model = GaussianProcess(kernel, prior=prior) cost_kernel = george.kernels.Matern52Kernel(np.ones([self.n_dims]) * 0.01, ndim=self.n_dims) cost_kernel = 3000 * cost_kernel prior = default_priors.TophatPrior(-2, 2) cost_model = GaussianProcess(cost_kernel, prior=prior) model.train(self.X, self.y, do_optimize=False) cost_model.train(self.X, self.c, do_optimize=False) self.acquisition_func = InformationGainPerUnitCost(model, cost_model, self.lower, self.upper, self.is_env) self.acquisition_func.update(model, cost_model)
Example 29
Project: RoBO Author: automl File: test_marginalization.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.rand(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) self.model = DemoModelMCMC() self.model.train(self.X, self.y)
Example 30
Project: RoBO Author: automl File: test_gaussian_process_mcmc.py License: BSD 3-Clause "New" or "Revised" License | 5 votes |
def setUp(self): self.X = np.random.randn(10, 2) self.y = np.sinc(self.X * 10 - 5).sum(axis=1) kernel = george.kernels.Matern52Kernel(np.ones(self.X.shape[1]), ndim=self.X.shape[1]) self.model = GaussianProcessMCMC(kernel, n_hypers=6, burnin_steps=100, chain_length=200) self.model.train(self.X, self.y, do_optimize=True)