return

Celebratio Mathematica

Ingrid Daubechies

Letter to Yves Meyer, Undated, 1992

[let­ter­head]
AT&T Bell Labor­at­or­ies
600 Moun­tain Av­en­ue
Mur­ray Hill, NJ 07974-2070
201 582-3000


Dear Yves,

You asked me what I’m up to, and what Car­oline is do­ing…

Car­oline is al­most walk­ing: she can stand up, without sup­port, for 10 or 15 seconds, and when she has a sup­port (our hands, or a piece of fur­niture) she takes little steps. She’s al­ways happy and is a real joy… ex­cept at night, when she still wakes up very of­ten and asks for mommy.

As to the mommy, she has been con­sid­er­ing the curi­ous setup I’m go­ing to de­scribe to you.

Jim John­ston (who Al­bert knows well) told us long ago (a year) that he’d like to have a setup to pro­duce wave­let pack­ets, but where he’d be able to change mid­stream the base be­ing used. When we ob­tained bases on the in­ter­val with an equal num­ber of scale func­tions and wave­lets for each res­ol­u­tion, we told him that we had de­vised something that did ex­actly what he wanted: you could chop it in­to pieces, and cre­ate op­tim­al pack­ets for each piece.

(In par­en­theses: When I learned the con­struc­tion of “loc­al­ized sine” bases — in con­nec­tion with which, so the en­gin­eer­ing folks tell me, I should cite not only Mal­var, but also Prinsen and Brad­ley, who were cited in Mal­var’s art­icle and had already come up with some of the ideas — I poin­ted it out to John­ston right away as a solu­tion. But he prefers wave­let pack­ets, be­cause they al­low the use of dif­fer­ent res­ol­u­tions at once. That is, if you have a low-fre­quency sig­nal from t0 to t1, but also little ke­bab bites of high fre­quency from t2 to t3 and from t4 to t5, where t0<t2<t3<t4<t5<t1, then with wave­lets you can mod­el the low fre­quen­cies throughout the whole win­dow t0t1, while us­ing the little win­dows for the high fre­quen­cies. With a setup such as Mal­var’s, you’d have to cut everything in­to pieces, even for the low fre­quen­cies. Ap­par­ently, that’s a real prob­lem for chunks of mu­sic with mul­tiple in­stru­ments, ac­cord­ing to John­ston (who tried to im­ple­ment Prinsen and Brad­ley).)

But he didn’t like that reply! Even though we were cut­ting things in a way that did not ru­in the reg­u­lar­ity! Us­ing an ar­gu­ment of Al­bert’s, I ex­plained to him that it’s as if we were ex­tend­ing the func­tion smoothly and then de­com­pos­ing that ex­ten­sion. The reas­on he re­jec­ted it is this: sup­pose that you re­con­struct the sig­nal after round-off, or quant­iz­a­tion, or some oth­er pro­cess that adds noise to the coef­fi­cients. Then, from the very fact that the wave­lets on the in­ter­val have an ab­rupt edge at the end of the in­ter­val, the re­con­struc­tion after noise will have dis­con­tinu­it­ies. Worse yet: er­rors in the coef­fi­cients cor­res­pond­ing to very low fre­quen­cies can lead to such dis­con­tinu­it­ies, which is to say, to high-fre­quency er­rors. Veeerry bad, says J.J.

So, I’ve thought up the fol­low­ing hy­brid scheme:

• Sup­pose we want blocks of size T, with a dif­fer­ent basis of wave­let pack­ets on each block.

• We start by de­com­pos­ing, and ap­ply­ing all pos­sible fil­ters to, all the data between 0 and T+ΔT, where ΔT is chosen so that, even at the coarsest res­ol­u­tion, no func­tion has sup­port great­er than ΔT.

(I’m as­sum­ing that we have de­cided a pri­ori not to go bey­ond a fixed num­ber of con­sec­ut­ive fil­ters.) It doesn’t much mat­ter what we do at the edge T+ΔT. (In prac­tice, I think it’s best to use your wave­lets on the in­ter­val for this edge, for the time be­ing.)

• We now de­cide which, among all pos­sible bases, is the op­tim­al one. (That is, we de­cide about the op­tim­al tiling for this chunk of sig­nal. Since we are us­ing the in­ter­val 0T+ΔT for that de­cision, where­as later on we will re­strict to 0T, the de­cision might not in fact be op­tim­al, but I don’t know how to fix this.)

• This de­cision taken, we take a step back. The goal, for this chunk 0T, is to use only func­tions whose sup­port have non­trivi­al in­ter­sec­tion with [0,T]. In fact, the an­swer is giv­en by your con­struc­tion, but I’m go­ing to choose not to or­thonor­mal­ize at the end (for reas­ons I’ll ex­plain be­low). I want the chosen su­per­pos­i­tion to re­pro­duce ex­actly the sig­nal on [0,T], and I will use only wave­let pack­ets that are not mod­i­fied at the end. Some of them will have a tail go­ing bey­ond T — and those tails will be very im­port­ant, but I don’t want to dis­tin­guish them ex­cept for the part con­tained in [0,T]. This means I should elim­in­ate cer­tain pack­ets: every time I use a split­ting with m0 and m1, the fil­ters at the very end us­ing m1 only yield lin­ear com­bin­a­tions of what’s giv­en by hav­ing m0 at the end. (It was you who ob­served that the ψj,k|[0,T] that have less than half their sup­port in the in­teri­or of [0,1] are in fact lin­ear com­bin­a­tions of the φj,k|[0,1].) More con­cretely: ψ(x)=n=0N2anφ(xn)+Q(x) support tail,[0,2N1]having support [N1,2N1] where a0=h2N1h0,an=h2N12nh2nan1h0. A com­pletely ana­log­ous for­mula holds for m1(ξ),m0(ξ). So, each time that I do a split­ting at en­d­point T, I trans­fer the N1 coef­fi­cients from the end of the m1 band to the m0 band (us­ing the for­mula above), and I drop the N1 cor­res­pond­ing taps in the m1 band.

The res­ult is in­deed a rep­res­ent­a­tion of f by wave­let pack­ets, which re­pro­duces f ex­actly in [0,T] and where each edge pack­et has a tail ex­tend­ing bey­ond T of a size match­ing its res­ol­u­tion.

(Those tails are the reas­on why I haven’t used your setup dir­ectly: if I use the coef­fi­cients res­ult­ing from or­thonor­mal­iz­a­tion, I’m able to write down a nice tail for ψ, but for wave­let pack­ets in­cor­por­at­ing sev­er­al m1’s, my tails be­come ever short­er, which is not the de­sired ef­fect. Moreover, the pro­ced­ure here is sim­pler down the line.)

• Now we move on to the next block. I start by tak­ing the dif­fer­ence between f|[T,] and the “tails” of the pre­vi­ous block. That is, f|[0,T](x)=αcα0φα(x)|[0,T](φα being wavelet packets)=inner αcα0φα(x)+edge αcα0φα(x)|[0,T] fdiff|[T,)(x)=f|[T,)(x)edge αcα0φα(x)|[T,). This dif­fer­ence fdiff(x) equals zero at T, to­geth­er with all its de­riv­at­ives up to or­der n, if ψCn+ε. There­fore, at edge T, it can be de­com­posed per­fectly via the in­ter­val con­struc­tion that you and S. Jaf­fard in­tro­duced some years ago, us­ing only φj,k’s with sup­port con­tained in the in­ter­val (or the half-line, since I’m only con­sid­er­ing one edge), and some sup­ple­ment­ary ψj,k’s (N1 of them to be ex­act).

• At the oth­er edge, 2T, I do the same thing as be­fore. (For sim­pli­city, let’s sup­pose that T>ΔT, so the tails of [0,T] don’t go bey­ond 2T.) That is, I first look at [T,2T+ΔT] to de­cide what tiling to choose in the time-fre­quency do­main, and I per­form the de­com­pos­i­tion suit­able to the edge 2T, re­dis­trib­ut­ing the num­bers for the last N1 taps of each m1 over the cor­res­pond­ing m0.

The whole amounts to a vari­ation on a con­struc­tion where one uses “too few” scale func­tions at left edges and “too many” scale func­tions at right edges; the res­ult­ing con­struc­tion, too, has as many scale func­tions as wave­lets at each res­ol­u­tion. Moreover, this con­struc­tion has the ad­vant­age that if noise is in­tro­duced near the edges, it won’t lead to dis­con­tinu­it­ies. So long as one uses only a fixed num­ber J of res­ol­u­tion levels, the func­tions used in the de­com­pos­i­tion al­ways form a Riesz basis. If I de­note the coef­fi­cients ob­tained by cn,α, where n is for the block [nT,(n+1)T] and α is the wave pack­et in­dex, I find f22n,α|cn,α|2 (be­cause the φn,α are or­tho­gon­al for fixed n, and the φn,α and φn+k,β have dis­joint sup­ports if k2).

What’s more, the ef­fect de­scribed above of “re­dis­trib­ut­ing” the coef­fi­cients at the edges leads to a bound of the type σ|cn,α|2 C2Jα|f|[nT,(n+2)T],φn,α|2depends on thechoice of m0,m1 n,α|cn,α|22C2Jf2. If J is large, the con­di­tion­ing con­stant giv­en by those bounds is really small…

J. John­ston is very en­thu­si­ast­ic about this con­struc­tion be­cause he loves this idea of blocks that in­ter­pen­et­rate over a dis­tance pre­scribed by the res­ol­u­tion at each level. We shall see what that gives in prac­tice.

And that’s what I’ve been up to! (Apart from teach­ing, and writ­ing the art­icle with Al­bert and Pierre Vi­al about wave­lets on the in­ter­val.)

Hearty greet­ings to Thi­erry and Al­bert! Hugs and kisses,

In­grid

Cher Yves,

Tu me de­mandes ce que je fais, et ce que fait Car­oline…

Car­oline marche pr­esque: elle se tient de­bout, sans ap­pui, pendant 10 à 15 secondes, et quand elle a un ap­pui (nos mains, ou un meuble), elle fait des petits pas. Elle est tou­jours gaie et une vraie joie… sauf la nu­it, où elle se réveille en­core très souvent et de­mande sa ma­man.

Quant à sa ma­man, elle a re­gardé la drôle de schéma que je vais te décri­re ici.

Jim John­ston (qu’Al­bert connaît bi­en) nous avait dit depuis longtemps (un an) qu’il aim­erait bi­en un schéma où il pour­rait faire des paquets d’ondelettes, mais où il pour­rait changer le choix de la base à util­iser en cours de route. Quand nous avons ob­tenu les bases sur l’in­ter­valle avec nombre égal de fonc­tions échelle et ondelettes à chaque résolu­tion, nous lui avons an­noncé que nous avi­ons une réponse que faisait ex­acte­ment ce qu’il faisait: on pour­rait découper en mor­ceaux, et faire des paquets op­timaux sur chaque mor­ceau.

(Entre par­enthèses: quand j’avais ap­pris la con­struc­tion des bases “si­nus local­isés” — pour lesquelles, me dis­ent les ingénieurs, il faudrait citer non seule­ment Mal­var, mais aus­si Prinsen and Brad­ley, cités dans l’art­icle de Mal­var, et qui avaient déjà eu une partie des idées — je l’ai aus­sitôt in­diquée à John­son comme une solu­tion. Mais il aime mieux les paquets d’ondelettes, parce qu’ils per­mettent d’avoir des résolu­tions différents en même temps. C.à.d., si tu as un sig­nal de basse fréquence de t0 à t1, mais aus­si des petits chouïas de haute fréq. de t2 à t3, et de t4 à t5, où t0<t2<t3<t4<t5<t1, al­ors tu peux, avec les ondelettes, ut­liliser toute la fenêtre t0t1 pour la basse fréq., et en même temps de petites fenêtres pour les hautes fréq. Avec un schéma à la Mal­var, tu découper­ais en mor­ceaux, même pour les basses fréq. Ap­par­em­ment, c’est un réel problème pour les mor­ceaux de mu­sique avec plusieurs in­stru­ments, me dit John­ston (qui a es­sayé d’im­plémenter Prinsen et Brad­ley.)

Mail il n’ai­mait pas cette réponse! Mal­gré le fait que nous cou­pi­ons de façon à ne pas déranger la reg­u­lar­ité! En util­is­ant un ar­gu­ment d’Al­bert, je lui ex­pli­quais que c’était comme si on pro­longeait la fonc­tion de manière douce et qu’on décom­po­sa­it al­ors cette ex­ten­sion. La rais­on pour laquelle il n’en voulait pas est la suivante: sup­po­sons qu’on re­con­stru­ise apès ar­rondi, ou quan­ti­fic­a­tion, ou un autre procédé qui a su­per­posé un bruit aux coef­fi­cients. Al­ors, par le fait même que les ondelettes sur l’in­ter­valle ont un bord ab­rupt à la fin de l’in­ter­valle, la re­con­struc­tion, après er­reurs, aura des dis­con­tinu­ités…Pire: des er­reurs sur des coef­fi­cients cor­res­pond­ant à de très basses fréquences peuvent men­er à ces dis­con­tinu­ités, c.à.d. des er­reurs de haute fréquence. Trrrrès mauvais, d’après J.J.

Al­ors j’ai pensé au schéma hy­bride suivant:

• Sup­po­sons qu’on veuille des blocs de taille T, avec une base différente de paquets d’ondelettes sur chaque block.

• Com­mençons par décom­poser, en fais­ant tous les fil­trages pos­sibles, toutes les données entre 0 et T+ΔT, où ΔT est choisi de façon telle que, même à la résolu­tion la plus grossière, aucune fonc­tion n’a un sup­port plus grand que ΔT.

(Je sup­pose qu’on a a pri­ori décidé de ne pas al­ler au-delà d’un nombre fixe de fil­trages suc­ces­sifs). Peu im­porte ce qu’on fait au bord T+ΔT. (En pratique, je crois que le mieux est d’util­iser tes ondelettes sur l’in­ter­valle pour ce bord-ci, pro­vis­oire.)

• Décidons al­ors quelle est, parmi toutes les bases pos­sibles, la base op­ti­male. (C.à.d., on décide du pav­age op­tim­al, pour ce bout de sig­nal. Comme on util­ise 0T+ΔT pour cette décision, al­ors qu’on va se re­streindre à 0T plus loin, la décision pour­rait bi­en ne pas être tout à fait op­ti­male, mais je ne sais pas com­ment y remédi­er.)

• Cette décision prise, re­tournons en arrière. Le but est de n’util­iser, pour ce mor­ceau 0T, que des fonc­tions dont le sup­port a une in­ter­sec­tion non triviale avec [0,T]. En fait, la réponse est donnée par ta con­struc­tion, mais je vais choisir de ne pas or­thonor­m­al­iser au bout (pour des rais­ons que j’ex­plique plus loin). Je veux que la su­per­pos­i­tion chois­ie re­produise ex­acte­ment le sig­nal sur [0,T], et je n’util­iserai que des paquets d’ondelettes non modi­fiés au bout. Cer­tains d’entre eux auront une queue que dépasse T — et ces queues seront très im­port­antes mais je ne veux les dis­tinguer que par la partie con­tenue dans [0,T]. Ceci veut dire que je dev­rai éliminer cer­tains paquets: chaque fois que j’util­ise un “split­ting” avec m0 et m1, les fil­tres tout au bout util­is­ant m1 ne donnent que des com­binais­ons linéaires de ce que les m0 au bout donnent. (C’est ton ob­ser­va­tion que les ψj,k|[0,T] qui ont moins de la moitié de leur sup­port à l’intérieur de [0,1] sont en fait des com­binais­ons linéaires des φj,k|[0,1].) Con­crètement: ψ(x)=n=0N2anφ(xn)+Q(x) support queue[0,2N1]qui a support [N1,2N1]a0=h2N1h0,an=h2N12nh2nan1h0. Une for­mule tout à fait ana­logue tient pour m1(ξ),m0(ξ). Al­ors à chaque fois que je fais un “split­ting” au bout T, je re­porte les N1 coeff. du bout de la bande m1 dans la bande m0 (util­is­ant la for­mule ci-des­sus), et je laisse tomber les N1 taps cor­res­pond­ants dans la bande m1.

Le résul­tat est bi­en une re­présen­t­a­tion de f par des paquets d’ondelettes, qui re­produit f ex­acte­ment dans [0,T] et où tous les paquets du bord ont des queues de la taille cor­res­pond­ant à leur résolu­tion, dépassant T.

(Ces queues ont la rais­on pour laquelle je n’ai pas util­isé ton schéma dir­ecte­ment: si j’util­ise les coeffs. résul­t­ant d’une or­thonor­m­al­isa­tion, j’ar­rive à écri­re une jolie queue pour ψ, mais pour des paquets d’ondelettes in­cor­por­ant plusieurs m1, mes queues devi­ennent de plus en plus cour­tes, ce qui n’est pas l’ef­fet désiré. En plus, ce schéma-ci est plus simple pour la suite).

• Procédons main­ten­ant au bloc suivant. Je com­mence par faire la différence entre f|[T,] et les “queues” du bloc précédent. C.à.d. f|[0,T](x)=αcα0φα(x)|[0,T]φα paquets d’odelettes=α intérieurescα0φα(x)+α bordcα0φα(x)|[0,T] fdiff|[T,)(x)=f|[T,)(x)α bordcα0φα(x)|[T,). Cette différence fdiff(x) est égale à zéro en T, ain­si que toutes des dérivées jusqu’à l’or­dre n, si ψCn+ε.

Au bord T, elle peut donc être décom­posée à mer­veille avec le schéma sur l’in­ter­valle que S. Jaf­fard et toi avaient con­stru­it il y a quelques années, n’util­is­ant que les φj,k avec sup­ports con­tenus dans l’in­ter­valle (ou la demi-droite, puisque je ne re­garde qu’un seul bord), et quelques ψj,k sup­plémen­taires (ex­acte­ment N1).

• A l’autre bout, 2T, je fais la même chose qu’av­ant. (Pour plus de sim­pli­cité, sup­po­sons T>ΔT, de façon à ce que les queues de [0,T] ne dépas­sent pas 2T.) C.à.d. je re­garde d’abord [T,2T+ΔT] pour décider quel dallage choisir en temps-fréquence, et je fais la décom­pos­i­tion ad­aptée au bord 2T, en re­dis­tribuant les nombres pour les derniers N1 taps de chaque m1 sur le m0 cor­res­pond­ant.

Le tout cor­res­pond à une vari­ation sur un schéma où on util­iserait “trop peu” de fonc­tions échelle aux bords gauches et “trop” de fonc­tions échelle aux bords droits; le résul­tat est aus­si un schéma avec autant de fonc­tions échelle que d’ondelettes à chaque résolu­tion; en plus, ce schéma a l’av­ant­age que si on in­jecte du bruit près des bords, il ne don­nera pas lieu à des dis­con­tinu­ités. Aus­si longtemps qu’on n’util­ise qu’un nombre fixe J de niveaux de résolu­tion, les fonc­tions util­isées dans la décom­pos­i­tion con­stitu­ent tou­jours une base de Riesz. Si je dénote les coeffs ob­tenus par cn,α, n pour le bloc [nT,(n+1)T],  α pour l’in­dice du paquet d’onde, al­ors je trouve f22n,α|cn,α|2 (parce que les φn,α sont or­tho­gonaux pour n fixe, et les φn,α et φn+k,β ont des sup­ports dis­joints si k2).

D’autre part, l’ef­fet de “re­dis­tri­bu­tion” des coeffs aux bords, décrit plus haut, mène à une borne du type σ|cn,α|2 C2Jα|f|[nT,(n+2)T],φn,α|2dépendantdes m0,m1 choisis n,α|cn,α|22C2Jf2. Si J est grand, la con­stante de con­di­tion­nement donnée par ces bornes est fort petite…

J. John­ston est très en­th­ousi­aste pour ce schéma parce qu’il aime bi­en cette idée d’in­terpénétra­tion des blocs sur une dis­tance dictée par la résolu­tion de chaque niveau. Nous al­lons voir main­ten­ant ce que cela donne en pratique.

Et voilà ce que je fais! (A part en­sei­gn­er, et rédi­ger l’art­icle avec Al­bert et Pierre Vi­al, sur les ondelettes sur l’in­ter­valle).

Un grand bon­jour à Thi­erry et Al­bert! Je t’em­brasse,

In­grid