# Coiflet

Coiflets are discrete wavelets designed by Ingrid Daubechies, at the request of Ronald Coifman, to have scaling functions with vanishing moments. The wavelet is near symmetric, their wavelet functions have $N/3$ vanishing moments and scaling functions $N/3-1$, and has been used in many applications using Calderón–Zygmund operators.

## Theory

Some theorems about Coiflets:

### Theorem 1

For a wavelet system $\{\phi ,{\tilde {\phi }},\psi ,{\tilde {\psi }},h,{\tilde {h}},g,{\tilde {g}}\}$, the following three equations are equivalent:
    ${\begin{array}{lcl}{\mathcal {M_{\tilde {\psi }}}}(0,l]=0&{\text{for }}l=0,1,\ldots ,L-1\\\sum _{n}(-1)^{n}n^{l}h[n]=0&{\text{for }}l=0,1,\ldots ,L-1\\H^{(l)}(\pi )=0&{\text{for }}l=0,1,\ldots ,L-1\end{array}}$
and similar equivalence holds between $\psi$ and ${\tilde {h}}$

### Theorem 2

For a wavelet system $\{\phi ,{\tilde {\phi }},\psi ,{\tilde {\psi }},h,{\tilde {h}},g,{\tilde {g}}\}$, the following six equations are equivalent:
    ${\begin{array}{lcl}{\mathcal {M_{\tilde {\phi }}}}(t_{0},l]=\delta [l]&{\text{for }}l=0,1,\ldots ,L-1\\{\mathcal {M_{\tilde {\phi }}}}(0,l]=t_{0}^{l}&{\text{for }}l=0,1,\ldots ,L-1\\{\hat {\phi }}^{l)(0)=(-jt_{0})^{t}&{\text{for }}l=0,1,\ldots ,L-1\\\sum _{n}(n-t_{0})^{l}h[n]=\delta [l]&{\text{for }}l=0,1,\ldots ,L-1\\\sum _{n}n^{l}h[n]=t_{0}^{l}&{\text{for }}l=0,1,\ldots ,L-1\\H^{(l)}(0)=(-jt_{0})^{t}&{\text{for }}l=0,1,\ldots ,L-1\\\end{array}}$
and similar equivalence holds between ${\tilde {\psi }}$ and ${\tilde {h}}$

### Theorem 3

For a biorthogonal wavelet system $\{\phi ,\psi ,{\tilde {\phi }},{\tilde {\psi }}\}$, if either ${\tilde {\psi }}$ or $\psi$ possesses a degree L of vanishing moments, then the following two equations are equivalent:
    ${\begin{array}{lcl}{\mathcal {M_{\tilde {\psi }}}}(t_{0},l]=\delta [l]&{\text{for }}l=0,1,\ldots ,{\bar {L}}-1\\{\mathcal {M_{\psi }}}(t_{0},l]=\delta [l]&{\text{for }}l=0,1,\ldots ,{\bar {L}}-1\\\end{array}}$
for any ${\bar {L}}$ such that ${\bar {L}}\ll L$

## Coiflet coefficients

Both the scaling function (low-pass filter) and the wavelet function (high-pass filter) must be normalised by a factor $1/{\sqrt {2}}$. Below are the coefficients for the scaling functions for C6–30. The wavelet coefficients are derived by reversing the order of the scaling function coefficients and then reversing the sign of every second one (i.e. C6 wavelet = {−0.022140543057, 0.102859456942, 0.544281086116, −1.205718913884, 0.477859456942, 0.102859456942}).
Mathematically, this looks like $B_{k}=(-1)^{k}C_{N-1-k}$, where k is the coefficient index, B is a wavelet coefficient, and C a scaling function coefficient. N is the wavelet index, i.e. 6 for C6.
Coiflets coefficients (normalized to have sum 2) :
| k | C6 | C12 | C18 | C24 | C30 |
| −10 | | | | | −0.0002999290456692 |
| −9 | | | | | 0.0005071055047161 |
| −8 | | | | 0.0012619224228619 | 0.0030805734519904 |
| −7 | | | | −0.0023044502875399 | −0.0058821563280714 |
| −6 | | | −0.0053648373418441 | −0.0103890503269406 | −0.0143282246988201 |
| −5 | | | 0.0110062534156628 | 0.0227249229665297 | 0.0331043666129858 |
| −4 | | 0.0231751934774337 | 0.0331671209583407 | 0.0377344771391261 | 0.0398380343959686 |
| −3 | | −0.0586402759669371 | −0.0930155289574539 | −0.1149284838038540 | −0.1299967565094460 |
| −2 | −0.1028594569415370 | −0.0952791806220162 | −0.0864415271204239 | −0.0793053059248983 | −0.0736051069489375 |
| −1 | 0.4778594569415370 | 0.5460420930695330 | 0.5730066705472950 | 0.5873348100322010 | 0.5961918029174380 |
| 0 | 1.2057189138830700 | 1.1493647877137300 | 1.1225705137406600 | 1.1062529100791000 | 1.0950165427080700 |
| 1 | 0.5442810861169260 | 0.5897343873912380 | 0.6059671435456480 | 0.6143146193357710 | 0.6194005181568410 |
| 2 | −0.1028594569415370 | −0.1081712141834230 | −0.1015402815097780 | −0.0942254750477914 | −0.0877346296564723 |
| 3 | −0.0221405430584631 | −0.0840529609215432 | −0.1163925015231710 | −0.1360762293560410 | −0.1492888402656790 |
| 4 | | 0.0334888203265590 | 0.0488681886423339 | 0.0556272739169390 | 0.0583893855505615 |
| 5 | | 0.0079357672259240 | 0.0224584819240757 | 0.0354716628454062 | 0.0462091445541337 |
| 6 | | −0.0025784067122813 | −0.0127392020220977 | −0.0215126323101745 | −0.0279425853727641 |
| 7 | | −0.0010190107982153 | −0.0036409178311325 | −0.0080020216899011 | −0.0129534995030117 |
| 8 | | | 0.0015804102019152 | 0.0053053298270610 | 0.0095622335982613 |
| 9 | | | 0.0006593303475864 | 0.0017911878553906 | 0.0034387669687710 |
| 10 | | | −0.0001003855491065 | −0.0008330003901883 | −0.0023498958688271 |
| 11 | | | −0.0000489314685106 | −0.0003676592334273 | −0.0009016444801393 |
| 12 | | | | 0.0000881604532320 | 0.0004268915950172 |
| 13 | | | | 0.0000441656938246 | 0.0001984938227975 |
| 14 | | | | −0.0000046098383254 | −0.0000582936877724 |
| 15 | | | | −0.0000025243583600 | −0.0000300806359640 |
| 16 | | | | | 0.0000052336193200 |
| 17 | | | | | 0.0000029150058427 |
| 18 | | | | | -0.0000002296399300 |
| 19 | | | | | −0.0000001358212135 |

## Matlab function

F = coifwavf(W) returns the scaling filter associated with the Coiflet wavelet specified by the string W where W = "coifN". Possible values for N are 1, 2, 3, 4, or 5.