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()