Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm looking into different methods for defining uniform B-spline basis functions. One of those methods is using convolution. In the course notes of Dennis Zorin ("Bézier Curves and B-splines, Blossoming") I found this:

$$ \begin{align*} Box(t) = \begin{cases}1 \qquad 0 \le t \lt 1 \\ 0 \qquad otherwise \end{cases} \end{align*} $$

Convolution is defined as

$$ \begin{align*} (f \star g)(t) = \int_{-\infty}^{\infty}f(s)g(t-s)\;ds \end{align*} $$

So in order to define the degree-1 basis function, use

$$ \begin{align*} (Box \star Box)(t) = \int_{-\infty}^{\infty}Box(s)Box(t-s)\;ds \end{align*} $$

But I don't know how to solve this integral. Therefore I searched some more and found Kenneth Joy's lecture notes "The uniform B-spline blending function".

He says that you can split the integral into two pieces (sounds logical because the degree-1 basis function is a "hat" function). But I don't understand where the integration limits (from $0$ to $t$ and from $t-1$ to $1$) are coming from. There is also a solution for the degree-2 curve, but I think there are some mistakes in this part (regarding the integration limits), because the integrals don't match with my calculations.

I would be very glad if somebody could help me with this (or refer to an article or book where they show the reader how to solve it). Finally, are there (except for convolution, divided differences, and the Cox-DeBoor relation) other methods to deduce these basis functions?

share|cite|improve this question
Does anyone know other methods to define the uniform B-spline basis functions? – Ailurus Feb 29 '12 at 16:36
up vote 1 down vote accepted

The integral

\begin{align*} (Box \star Box)(t) = \int_{-\infty}^{\infty}Box(s)Box(t-s)\;ds \end{align*}

is equal to the integral

\begin{align*} (Box \star Box)(t) = \int_{0}^{1}Box(s)Box(t-s)\;ds \end{align*}

since $Box(s)$ is only non-zero on the interval $[0,1)$. On the other hand $Box(t-s)$ will be non-zero when $t-s \in [0,1[$ or $s \in ]t-1,t]$ which depends on the value of $t$. If $t>2$ or $t<0$ there is no overlap between the intervals $[0,1[$ and $]t-1,t]$ and therefore the integral is zero. If $t<1$ the overlap will be $[0,t]$, if $t\geq 1$ the overlap will be $(t-1,1)$. In these cases the integral will simply be the length of the overlap.


$$(Box \star Box)(t) = \begin{cases} \int_{0}^{1}Box(s)Box(t-s)\;ds = \int_{0}^{1} 0 \;ds = 0 & \text{ if } t<0 \; , \\ \int_{0}^{t}Box(s)Box(t-s)\;ds = \int_{0}^{t} 1 \;ds = t & \text{ if } 0\leq t<1 \; ,\\ \int_{t-1}^{1}Box(s)Box(t-s)\;ds = \int_{t-1}^{1} 1 \;ds = 2-t & \text{ if } 1\leq t<2 \; , \\ \int_{0}^{1}Box(s)Box(t-s)\;ds = \int_{0}^{1} 0\;ds = 0 & \text{ if } 2\leq t \; . \end{cases} $$

share|cite|improve this answer
Thanks, your explanation makes it very clear. The only hard part is determining the overlap for the different intervals, but once you got these overlaps, it's easy. Edit: Just calculated the degree-2 and degree-3 basis functions, this is quite a nice method (although it requires some work to write out the integrals). – Ailurus Feb 29 '12 at 16:32

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.