nemos.basis.BSplineConv.evaluate_on_grid#

BSplineConv.evaluate_on_grid(n_samples)[source]#

Evaluate the 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

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from nemos.basis import BSplineConv
>>> bspline_basis = BSplineConv(n_basis_funcs=4, order=3, window_size=10)
>>> sample_points, basis_values = bspline_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('B-Spline Basis Functions')
Text(0.5, 1.0, '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()