Representing lower order B-Splines as higher order B-splines I have tried to figure out how B-splines of degree $p - 1$ can be represented as linear combinations of B-splines of degree $p$.
Definitions:


*

*Given a set of increasing real values $t = (t_i)_{i = 1}^{p+n+1}$, the $i$th B-spline of degree $p$ is defined as


$$ 
B_{i, p, t}(x) = \frac{x - t_i}{t_{i+p} - t_i}B_{i, p-1, t}(x) + \frac{t_{i+p+1} - x}{t_{i+p+1} - t_{i+1}}B_{i, p-1, t}(x)
$$
where $B_{i, 0, t}$ is defined as
$$
B_{i, 0, t}(x) = \begin{cases}
1, & x \in [t_i, t_{i+1}), \\
0, & \text{else}.
\end{cases}
$$


*

*We call the vector $t$ of real values $p + 1$-regular if the first $p+1$ values coincide, and the last $p+1$ values coincide. I.e.,
$$
t_1 = t_2 = \dots = t_{p+1} \\
t_{n+1} = t_{n+2} = \dots = t_{n + p + 1}
$$


Linear independence
If $t$ is a $p+1$regular knot vector, then the B-splines $B_{i, p, t}$ are linearly independent on the interval $[t_{p+1}, t_{n+1})$.
Question:
How can I represent the B-spline $B_{i, p-1, t}$ as a linear combination B-splines of a higher degree, provided that $t$ is $p+1$ regular? I.e.,
$$
B_{i, p-1, t}(x) = \sum_{j = 1, n}c_jB_{j, p, t}(x).
$$
How to determine the coefficients $c_j$?
 A: In general the Degree Elevation Algorithm can express a spline $S=\sum \limits _{j} c_{j} B_{j,p}$ in terms of B-Splines of order $p+1$, i.e. computes the coefficients $c^*_{i} $ such that $S=\sum \limits _{j} c_{j} B_{j,p}=\sum \limits _{i} c^*_{i} B_{i,p+1}$. You can find the details of the algorithm for example in "The NURBS Book" http://www.springer.com/gp/book/9783642973857.
In your case, $S=B_{k,p}$ for some $k$, and it can be considered as a special case of the general procedure.
Moreover, since the algorithm performs linear operations, in general you can write $\boldsymbol{c}^* =\boldsymbol{M} \boldsymbol{c}$ for some rectangular real matrix $M$ that produces the operations of the algorithm. In your case you are interested in the $k$-th column of $\boldsymbol{M}$. 
A: One simple approach is the one given by Liu:
Wayne Liu
A simple, efficient degree raising algorithm for B-spline curves
Computer Aided Geometric Design
Volume 14, Issue 7, September 1997, Pages 693-698   
His paper also discusses several other available methods, for comparison.
If you already have a B-spline interpolation function written, there is an easy approach. Let's just consider one basis function.
(1) Construct a new knot sequence $\mathbf{t}^*$ by adding another repetition of each knot in the original knot sequence. In other words, take the original knot sequence, and increase the multiplicity of each knot by $1$. Suppose $\mathbf{t}^*$ has $r$ entries.
(2) Calculate a $r-p-1$ values of the original basis function of degree $p-1$
(3) Interpolate those values with a b-spline function of degree $p$ having knots $\mathbf{t}^*$.
In step #2, you have to be a bit careful how you distribute the values, or else the interpolation problem in step #3 won't be solvable. For more details, look up the Schoenberg-Whitney condition.
