nemos.basis.CyclicBSplineConv.evaluate_on_grid#
- CyclicBSplineConv.evaluate_on_grid(n_samples)[source]#
Evaluate the Cyclic B-spline basis set on a grid of equi-spaced sample points.
- Parameters:
n_samples (
int
) – The number of points in the uniformly spaced grid. A higher number of samples will result in a more detailed visualization of the basis functions.- Return type:
Tuple
[NDArray, NDArray]- Returns:
X – Array of shape
(n_samples,)
containing the equi-spaced sample points where we’ve evaluated the basis.basis_funcs – Raised cosine basis functions, shape
(n_samples, n_basis_funcs)
Notes
The evaluation is performed by looping over each element and using
splev
from SciPy to compute the basis values.Examples
Evaluate and visualize 4 Cyclic B-spline basis functions of order 3:
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from nemos.basis import CyclicBSplineConv >>> cbspline_basis = CyclicBSplineConv(n_basis_funcs=4, order=3, window_size=10) >>> sample_points, basis_values = cbspline_basis.evaluate_on_grid(100) >>> for i in range(4): ... p = plt.plot(sample_points, basis_values[:, i], label=f'Function {i+1}') >>> plt.title('Cyclic B-Spline Basis Functions') Text(0.5, 1.0, 'Cyclic B-Spline Basis Functions') >>> plt.xlabel('Domain') Text(0.5, 0, 'Domain') >>> plt.ylabel('Basis Function Value') Text(0, 0.5, 'Basis Function Value') >>> l = plt.legend()