DSPRelated.com
Forums

Trying to follow the math behind wavelets

Started by Frnak McKenney August 22, 2008
Hi.  I'm trying to understand wavelet theory, and the CWT in
particular, and I'm running into some rough spots.  If anyone has a
few minutes to comment, or point me at a better place to ask these
questions, it would be greatly appreciated.

After scanning a few 'web pages and online articles, it appeared
that wavelets would be a good way of decomposing a complex, coded
data stream like the (demodulated) audio from NIST's WWV 10MHz
transmitter.  Given a collection of WAV files and the signal
description from:

  NIST Time and Frequency Services, Pub. 432
  http://tf.nist.gov/timefreq/general/pdf/1383.pdf

all I'd have to do would be feed the sampled signal int A Wavelet
and, Hey!  Presto!  I'd have a 2D array telling me the exact pattern
of the 100Hz "subcarrier" carrying the digital timecode. <grin!>

Then I started reading the math in more detail, and trying to
"unpack" the notation into small steps that I could understand.

Here's the definition of the CWT that I found easiest to follow 
(sorry about the notation):

  For a given wavelet psi() and function f(), the CWT of "tau" (an
  offset value in the domain of f()) and "s" (a scaling factor) is
  given by:

  CWT(psi, f, tau, s) =  (1/sqrt(abs(s))) *

        Integral(-inf,+inf, du,
 
             ( f(u) * Conjugate( psi( (u-tau)/s ) ) )     )

(I hope that's clear.)

First question:  The CWT for any specific value of "s", that is, for
any single "horizontal" evaluation, this formula looks a lot like
the formula for a cross-correlation between f() and psi().  If so,
this would mean that the CWT could be described in terms of multiple
cross-correlations between a given signal and one's chosen "mother"
wavelet.

This was puzzling, since none of the wavelet papers I have scanned
mentioned this way of looking at wavelets.  Is it simply considered
so obvious that no-one bothers mentioning it?  Or did I lose a
symbol or something along the way?

Second question:  I can "see" how the CWT transforms a time-based
signal into a time-scale plane, but I'm having trouble seeing how
one goes from that to a more useful -- to me, anyway <grin!> --
time-frequency plane.  What I've read suggests that the relationship
between 'scale' and 'frequency' depends on the specific choice of
the wavelet function psi(), but other than using the Matlab magic
'scal2freq' function it's not clear to me how I would go about doing
it in practice.

Third question:  The theory I've read so far offers ways of deciding
whether or not a given possibility for a wavelet function psi() is
acceptable or not, and there seem to be a _lot_ <grin!> of
acceptable functions.  However, one that would seem like an obvious
choice never seems to be mentioned:  a sine-singlet, e.g.

    f(t) = { sin(t) for 0 <= t < 2*%pi, and 0 otherwise }

There may well be a simple reason why this is an unsuitable -- or
perhaps just un-useful -- wavelet function.  I just haven't stumbled
onto the reason yet.

Ah, well.  That should pretty well expose the level of my ignorance
in this area.  I found a few hints by searching the fora at
www.DSPRelated.com, but they're hard to read; this may be related,
perhaps, to my attempting to view them in 24-point type.  <grin!>

Any hints, clues, or re-routings will be appreciated.


Frank McKenney
--
   "A foolish consistency is the hobgoblin of little minds,
    Adored by little statesmen and philosophers and divines."
                             -- Ralph Waldo Emerson
--
Frank McKenney, McKenney Associates
Richmond, Virginia / (804) 320-4887
Munged E-mail: frank uscore mckenney ayut mined spring dawt cahm (y'all)
about a decade ago, when i lived in NJ, i took a 3-day seminar taught
by Strang and Truong that was held at Wellesley College (using their
then new book, "Wavelets and Filter Banks").  Randy Yates was with me
for that seminar.

i had trouble connecting the discrete wavelet stuff to the continuous
wavelet transform, too.  mathematically, the only way i was able to
understand the CWT *and* the reconstruction formula was by use of the
Short-Time Fourier Transform (and its inverse).  then, for me, the
only mother wavelet that worked was a windowed complex sinusoid.  i
never understood how the reconstruction of the original signal from
the wavelet transformed data could be proven for other mother
wavelets.  it's hard for me to accept some of the theorems if i don't
even know how to reassemble the original x(t) from the wavelets that
it was disassembled into.

r b-j

On 22 Aug, 16:30, Frnak McKenney
<fr...@far.from.the.madding.crowd.com> wrote:
...
> Here's the definition of the CWT that I found easiest to follow > (sorry about the notation): > > &#4294967295; For a given wavelet psi() and function f(), the CWT of "tau" (an > &#4294967295; offset value in the domain of f()) and "s" (a scaling factor) is > &#4294967295; given by: > > &#4294967295; CWT(psi, f, tau, s) = &#4294967295;(1/sqrt(abs(s))) * > > &#4294967295; &#4294967295; &#4294967295; &#4294967295; Integral(-inf,+inf, du, > > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;( f(u) * Conjugate( psi( (u-tau)/s ) ) ) &#4294967295; &#4294967295; ) > > (I hope that's clear.) > > First question: &#4294967295;The CWT for any specific value of "s", that is, for > any single "horizontal" evaluation, this formula looks a lot like > the formula for a cross-correlation between f() and psi(). &#4294967295;If so, > this would mean that the CWT could be described in terms of multiple > cross-correlations between a given signal and one's chosen "mother" > wavelet.
Well, yes. This has been debated here in the past, and my position is that it is better to use the term 'inner product' about the formula above, than 'cross correlation.'
> This was puzzling, since none of the wavelet papers I have scanned > mentioned this way of looking at wavelets. &#4294967295;Is it simply considered > so obvious that no-one bothers mentioning it? &#4294967295;Or did I lose a > symbol or something along the way?
The texts don't use 'cross correlation' because it would be positively misleading. Correlation is a concept that is used in statistics. Wavelets is a decomposition technique which is analyzed by maths. Real Analysis.
> Second question: &#4294967295;I can "see" how the CWT transforms a time-based > signal into a time-scale plane, but I'm having trouble seeing how > one goes from that to a more useful -- to me, anyway <grin!> -- > time-frequency plane.
That's because the term 'frequency' doesn't apply to wavelets wheras 'scale' does.
>&#4294967295;What I've read suggests that the relationship > between 'scale' and 'frequency' depends on the specific choice of > the wavelet function psi(),
The relation depends on both the wavelet function as such and the scale from the mother wavelet.
> but other than using the Matlab magic > 'scal2freq' function it's not clear to me how I would go about doing > it in practice.
There's lots of stuff going on in matlab that you should be very, very catious about.
> Third question: &#4294967295;The theory I've read so far offers ways of deciding > whether or not a given possibility for a wavelet function psi() is > acceptable or not, and there seem to be a _lot_ <grin!> of > acceptable functions.
There are. The deciding property is whether the functions approach the Heissenberg inequality and are mutually orthogonal. Not very intuitive or obvious, any of it.
>&#4294967295;However, one that would seem like an obvious > choice never seems to be mentioned: &#4294967295;a sine-singlet, e.g. > > &#4294967295; &#4294967295; f(t) = { sin(t) for 0 <= t < 2*%pi, and 0 otherwise } > > There may well be a simple reason why this is an unsuitable -- or > perhaps just un-useful -- wavelet function. &#4294967295;I just haven't stumbled > onto the reason yet.
One is that what you write is not scalable.
> Ah, well. &#4294967295;That should pretty well expose the level of my ignorance > in this area. &#4294967295;I found a few hints by searching the fora atwww.DSPRelated.com, but they're hard to read; this may be related, > perhaps, to my attempting to view them in 24-point type. &#4294967295;<grin!> > > Any hints, clues, or re-routings will be appreciated.
There was a tutorial out in IEEE Signal Processing Magazine around 1990 (1991?) by Rioul and Vetterli. You might find it useful. Rune
Frnak McKenney wrote:

> CWT(psi, f, tau, s) = (1/sqrt(abs(s))) * > Integral(-inf,+inf, du, > ( f(u) * Conjugate( psi( (u-tau)/s ) ) ) )
> First question: The CWT for any specific value of "s", that is, > for any single "horizontal" evaluation, this formula looks a lot > like the formula for a cross-correlation between f() and psi(). > If so, this would mean that the CWT could be described in terms > of multiple cross-correlations between a given signal and one's > chosen "mother" wavelet.
Like any integral transform, this is basically linear algebra. The class of functions f whose CWT converges is a vector space, and you project (inner product) f onto each of a one-parameter set B of vectors. That parameter is s; and psi is supposed to make B a basis for functions f. Compare Fourier theory: frequency is the parameter and the complex sinusoids do form an (orthonormal) basis of L2(R).
> This was puzzling, since none of the wavelet papers I have > scanned mentioned this way of looking at wavelets. Is it simply > considered so obvious that no-one bothers mentioning it?
Papers from the mathematical side of the field certainly tend to presume the above understanding, but any book should say as much somewhere. More to the point, you could say that your view leads to the so- called filterbank approach to wavelets. In terms of basis change this means that you make psi some appropriate bandpass filter and usually take the scales s from a discrete set so the representation won't be overcomplete. Which brings us to your third question about sinelike wavelets. You might make a bandpass from a lowpass by modulating the IR with a sinusoid. The classical Gabor analysis uses a Gaussian IR lowpass, for instance. Your "single sinelet" uses a boxcar filter whose slow spectral rolloff leads to bad band separation in the filterbank -- in other words, bad decorrelation between WT coefficients, which matters if you're going to modify and reconstruct.
> Second question: I can "see" how the CWT transforms a > time-based signal into a time-scale plane, but I'm having > trouble seeing how one goes from that to a more useful -- to me, > anyway <grin!> -- time-frequency plane.
In view of my previous paragraph, perhaps you'll understand the scal2frq docs better: it takes all those bandpass filters, finds each of their spectral peaks (which are related by successive time dilation), and calls the result the bands' "pseudo-frequencies". Scale and frequency are similar in intent but different. I don't know the application you mentioned. What appeals to you about wavelets, and in turn about frequency? Martin -- When in danger or in doubt, run in circles, scream and shout!
Hi, Robert. Thanks for replying.

On Fri, 22 Aug 2008 09:26:24 -0700 (PDT), robert bristow-johnson <rbj@audioimagination.com> wrote:
> about a decade ago, when i lived in NJ, i took a 3-day seminar taught > by Strang and Truong that was held at Wellesley College (using their > then new book, "Wavelets and Filter Banks"). Randy Yates was with me > for that seminar.
Ah. I've seen "Strang & Nguyen" mentioned favorably here and elsewhere. I noticed that Amazon.com has it listed for $80, but I can save some money by buying it used for only... $80. <grin!> I admit I'm curious enough about wavelets to invest that kind of money, but only after I've had a chance to spend some time with a physical, hands-on copy.
> i had trouble connecting the discrete wavelet stuff to the > continuous wavelet transform, too.
Oh, I'm still stumbling around with the CWT to try to develop a "feel" for what's going on. My hope (see also: delusion) is that, once I have a good, solid working mental model I can build on that.
> ... mathematically, the only way i > was able to understand the CWT *and* the reconstruction formula was > by use of the Short-Time Fourier Transform (and its inverse). then, > for me, the only mother wavelet that worked was a windowed complex > sinusoid. i never understood how the reconstruction of the original > signal from the wavelet transformed data could be proven for other > mother wavelets. it's hard for me to accept some of the theorems if > i don't even know how to reassemble the original x(t) from the > wavelets that it was disassembled into.
You mean that, after making a mess of little wavelets and scattering them across time and scale, we have to clean them _up_? Ack! Phllbbbt! I won't pretend that I have any idea how to do it, either. About all I can offer is a trust in orthogonality: if one splits something along "independent lines" -- if a wavelet basis is really, truly orthogonal -- then the "disassembly" ought to be unique, and "reassembly" ought to be possible. Or am I missing something? Anyway, wish me luck. <grin!> Frank -- Applying computer technology is simply finding the right wrench to pound in the correct screw. -- Frank McKenney, McKenney Associates Richmond, Virginia / (804) 320-4887 Munged E-mail: frank uscore mckenney ayut mined spring dawt cahm (y'all)
Rune,

Thank you for replying.

On Fri, 22 Aug 2008 12:18:05 -0700 (PDT), Rune Allnor <allnor@tele.ntnu.no> wrote:
> On 22 Aug, 16:30, Frnak McKenney ><fr...@far.from.the.madding.crowd.com> wrote: > ... >> Here's the definition of the CWT that I found easiest to follow >> (sorry about the notation): >> >> For a given wavelet psi() and function f(), the CWT of "tau" (an >> offset value in the domain of f()) and "s" (a scaling factor) is >> given by: >> >> CWT(psi, f, tau, s) = &#4294967295;(1/sqrt(abs(s))) * >> >> Integral(-inf,+inf, du, >> >> ( f(u) * Conjugate( psi( (u-tau)/s ) ) ) &#4294967295; &#4294967295; ) >> >> (I hope that's clear.) >> >> First question: The CWT for any specific value of "s", that is, for >> any single "horizontal" evaluation, this formula looks a lot like >> the formula for a cross-correlation between f() and psi(). &#4294967295;If so, >> this would mean that the CWT could be described in terms of multiple >> cross-correlations between a given signal and one's chosen "mother" >> wavelet. > > Well, yes. This has been debated here in the past, and my position > is that it is better to use the term 'inner product' about the > formula above, than 'cross correlation.'
Okay.
>> This was puzzling, since none of the wavelet papers I have scanned >> mentioned this way of looking at wavelets. Is it simply considered >> so obvious that no-one bothers mentioning it? Or did I lose a >> symbol or something along the way? > > The texts don't use 'cross correlation' because it would be > positively misleading. Correlation is a concept that is used > in statistics. Wavelets is a decomposition technique which > is analyzed by maths. Real Analysis.
I hear the words you're using, but I may not be sufficiently versed in the distinctions you're making to feel that I agree or disagree. I have been interpreting the values "returned" from the CWT at a point (tau,s) as a "degree of match" between my original signal, on the one hand, and the function psi() on the other, at that same point. Are you saying that "correlation" in a bad way of describing this? Or that my model (interpretation) is flawed? Or Something Completely Different? Sorry, but it was a nice model, and it seemed to work. My head is reluctant to surrender it. <grin!>
>> Second question: I can "see" how the CWT transforms a time-based >> signal into a time-scale plane, but I'm having trouble seeing how >> one goes from that to a more useful -- to me, anyway <grin!> -- >> time-frequency plane. > > That's because the term 'frequency' doesn't apply to wavelets > wheras 'scale' does.
I don't think I have any problem with this statement, but it doesn't say that it is impossible -- once one has chosen psi() -- to map a "useful" route from 'scale' to 'frequency', and some of the papers I've read over (as opposed to a claim of "read with comprehension" <grin!>) seem to do this. I'm just curious as to how one might approach this.
>> What I've read suggests that the relationship >> between 'scale' and 'frequency' depends on the specific choice of >> the wavelet function psi(), > > The relation depends on both the wavelet function as such > and the scale from the mother wavelet.
But what would the process look like, in general terms?
>> but other than using the Matlab magic >> 'scal2freq' function it's not clear to me how I would go about doing >> it in practice. > > There's lots of stuff going on in matlab that you > should be very, very catious about.
S'OK. I'll be working with Scilab, so I'll have to be cautious about other things. <grin!>
>> Third question: The theory I've read so far offers ways of deciding >> whether or not a given possibility for a wavelet function psi() is >> acceptable or not, and there seem to be a _lot_ <grin!> of >> acceptable functions. > > There are. The deciding property is whether the functions > approach the Heissenberg inequality and are mutually > orthogonal. Not very intuitive or obvious, any of it. > >>However, one that would seem like an obvious >> choice never seems to be mentioned: &#4294967295;a sine-singlet, e.g. >> >> f(t) = { sin(t) for 0 <= t < 2*%pi, and 0 otherwise } >> >> There may well be a simple reason why this is an unsuitable -- or >> perhaps just un-useful -- wavelet function. I just haven't stumbled >> onto the reason yet. > > One is that what you write is not scalable.
Apologies for my density, and perhaps I wrote it badly. If I have a single cycle of a sine wave, can't I stretch it into a longer-lasting single cycle, or increase its amplitude?
>> Ah, well. That should pretty well expose the level of my ignorance >> in this area. I found a few hints by searching the fora at >> www.DSPRelated.com, but they're hard to read; this may be related, >> perhaps, to my attempting to view them in 24-point type. <grin!> >> >> Any hints, clues, or re-routings will be appreciated. > > There was a tutorial out in IEEE Signal Processing Magazine > around 1990 (1991?) by Rioul and Vetterli. You might find it > useful.
Wavelets and Signal Processing Olivier Rioul and Martin Vetterli IEEE Signal Pricessing October 1991 Found a copy at: http://comelec.enst.fr/~rioul/publis/199007rioulverletti.pdf Thanks. Frank -- A poet is a professional maker of verbal objects. -- W.H. Auden -- Frank McKenney, McKenney Associates Richmond, Virginia / (804) 320-4887 Munged E-mail: frank uscore mckenney ayut mined spring dawt cahm (y'all)
Martin,

Thank you for jumping in.

On 22 Aug 2008 19:46:17 GMT, Martin Eisenberg <martin.eisenberg@udo.edu> wrote:
> Frnak McKenney wrote: > >> CWT(psi, f, tau, s) = (1/sqrt(abs(s))) * >> Integral(-inf,+inf, du, >> ( f(u) * Conjugate( psi( (u-tau)/s ) ) ) ) > >> First question: The CWT for any specific value of "s", that is, >> for any single "horizontal" evaluation, this formula looks a lot >> like the formula for a cross-correlation between f() and psi(). >> If so, this would mean that the CWT could be described in terms >> of multiple cross-correlations between a given signal and one's >> chosen "mother" wavelet. > > Like any integral transform, this is basically linear algebra. The > class of functions f whose CWT converges ...
(Easy for _you_ to say that. <grin!>) Forgive me for breaking this apart, but I'm not at a point where I can absorb it as a single "chunk". (Somewhere the spirit of Bill Smith is waggling a finger at me and reminding me that I should have paid more attention in class. Sorry, Bill. <grin!>) As I've wandered among various descriptions of the CWT I've seen much concern about psi() converging, and the integral of f()*psi() converging, but none about whether one might have to deal with an f() such that the CWT of f() didn't converge for _any_ psi(). Are there such? Or am I reading too much into this wording? (Ignorance provides a solid basis for paranoia; it's not clear whether it is also orthogonal. <grin!>)
> ... is a vector space, and you > project (inner product) f onto each of a one-parameter set B of > vectors. That parameter is s; and psi is supposed to make B a basis > for functions f.
As in: B = { b(s) } for s in (-inf,+inf) ? Or a set of bases B(s) = { b(s,huh?) } ? I'm not trying to be picky; It's just that it has been a while since I worked with those particular terms, and I want to make sure I'm not misunderstanding what you're saying. If I have, the fault is likely mine.
> Compare Fourier theory: frequency is the parameter and the complex > sinusoids do form an (orthonormal) basis of L2(R).
Pause for a bit of research... L2(R): the set of functions which are square-integrable over R. "Functions which, when multiplied by themselves and summed up, don't explode in your face." Or, less formally, "stuff whose effects have limits". Hm? I thought the whole point of Fourier theory was to deal with periodic -- a.k.a. infinite -- functions. Which was why one needed sinusoids (also infinite) as bases. Sorry, I must have dropped something in here somewhere.
>> This was puzzling, since none of the wavelet papers I have >> scanned mentioned this way of looking at wavelets. Is it simply >> considered so obvious that no-one bothers mentioning it? > > Papers from the mathematical side of the field certainly tend to > presume the above understanding, but any book should say as much > somewhere.
Okay. Thanks... I just wanted to make sure my mental model wasn't falling apart.
> More to the point, you could say that your view leads to the so- > called filterbank approach to wavelets. In terms of basis change this > means that you make psi some appropriate bandpass filter and usually > take the scales s from a discrete set so the representation won't be > overcomplete.
"Discrete"? Ack! I'm still working on continuous wavelets. But, yes, I can see that, if I have a way of constructing a series of filters, I can split up the frequency components.
> Which brings us to your third question about sinelike wavelets. You > might make a bandpass from a lowpass by modulating the IR with a > sinusoid. The classical Gabor analysis uses a Gaussian IR lowpass, > for instance. Your "single sinelet" uses a boxcar filter whose slow > spectral rolloff leads to bad band separation in the filterbank -- in > other words, bad decorrelation between WT coefficients, which matters > if you're going to modify and reconstruct.
I think I need to read this over a couple (more) times, and work my way through it in detail. It's helpful in that it gives me some concepts to match against any results I come up with.
>> Second question: I can "see" how the CWT transforms a >> time-based signal into a time-scale plane, but I'm having >> trouble seeing how one goes from that to a more useful -- to me, >> anyway <grin!> -- time-frequency plane. > > In view of my previous paragraph, perhaps you'll understand the > scal2frq docs better: it takes all those bandpass filters, finds each > of their spectral peaks (which are related by successive time > dilation), and calls the result the bands' "pseudo-frequencies".
Which implies that anyone _sane_ who wants to use wavelets should limit his choice of wavelets to those with distinct -- and unique -- spectral peaks (with respect to time). <grin!>
> Scale and frequency are similar in intent but different. I don't know > the application you mentioned. What appeals to you about wavelets, > and in turn about frequency?
The application? Take an audio signal, with embedded 100Hz-modulated digital encoding and magically have the digital stuff pop out. Strictly speaking, I suppose I don't need to _know_ which 'scale' value corresponds to 100Hz; I can just look for "interesting patterns" in the offset/scale plane. Knowing where to start looking seemed useful, hence the desire to find a 'scale' that matched '100Hz'. In a way it's a chicken-or-egg situation. I wanted to understand what wavelets offered, and it's difficult to know what kind of places wavelets fit nicely into without at least a basic understanding of them, so I picked something out of the air that would use data I already have (WWV recordings). My hope is that, by the time I finish beating my head against this particular project, I'll at least know why it might be... um, "perhaps not the most appropriate use of wavelets". <grin!> Frank -- "Give a man a fire, and he's warm for a day. Set him on fire, and he's warm for the rest of his life" -- Terry Pratchett/Jingo -- Frank McKenney, McKenney Associates Richmond, Virginia / (804) 320-4887 Munged E-mail: frank uscore mckenney ayut mined spring dawt cahm (y'all)
On 24 Aug, 22:35, Frnak McKenney
<fr...@far.from.the.madding.crowd.com> wrote:
> On Fri, 22 Aug 2008 12:18:05 -0700 (PDT), Rune Allnor <all...@tele.ntnu.no> wrote: > > On 22 Aug, 16:30, Frnak McKenney > ><fr...@far.from.the.madding.crowd.com> wrote:
...
> > The texts don't use 'cross correlation' because it would be > > positively misleading. Correlation is a concept that is used > > in statistics. Wavelets is a decomposition technique which > > is analyzed by maths. Real Analysis. > > I hear the words you're using, but I may not be sufficiently versed in > the distinctions you're making to feel that I agree or disagree.
As to *why* I make the distinction: Consider a motor. It's basically a device which takes power from some external power source and converts it to rotational energy by making a the drive axel (I don't know if this is the correct technical term in English; please correct me if I'm wrong) spin. Suppose you first study a compustion motor and find the term 'crank shaft' used for the drive axel. Then you study the electric motor and all of a sudden you realize that 'Hey! This thing has a spinning part too! It's just like the crank shaft in the combustion engine!' It would be wrong to use the term 'crank shaft' about the drive axel in the electric motor. First of all, the people who deal with electrical motors would conider you a fool if they heard you. Second, the term 'crank shaft' brings with it a lot of excess luggage like the very close connections with terms like 'piston', 'cylinder', 'piston rod', none of which make sense in the context of electric motors. So instead of saying that 'The electric motor works with a crankshaft which lacks the piston and rods but has something completely different gadget attached', it is far better to cut to the core and say 'the electric motor contains a rotating axle with gadgets attached.' In the case of 'correlation' vs 'inner product' you might not see the difference up front, but 'correlation' brings with it all the excess luggage of statistics (which you only need in the context of statistics) whereas 'inner product' is the distilled generic term of a mathematical operation.
> I have been interpreting the values "returned" from the CWT at a point > (tau,s) as a "degree of match" between my original signal, on the one > hand, and the function psi() on the other, at that same point. Are you > saying that "correlation" in a bad way of describing this? Or that my > model (interpretation) is flawed? Or Something Completely Different? > > Sorry, but it was a nice model, and it seemed to work. My head is > reluctant to surrender it. <grin!>
You were certainly on the right track. I am sorry if I confused you; maybe the explanation above might help you out.
> >> Second question: I can "see" how the CWT transforms a time-based > >> signal into a time-scale plane, but I'm having trouble seeing how > >> one goes from that to a more useful -- to me, anyway <grin!> -- > >> time-frequency plane. > > > That's because the term 'frequency' doesn't apply to wavelets > > wheras 'scale' does. > > I don't think I have any problem with this statement, but it doesn't > say that it is impossible -- once one has chosen psi() -- to map a > "useful" route from 'scale' to 'frequency', and some of the papers > I've read over (as opposed to a claim of "read with comprehension" > <grin!>) seem to do this.
Check out the Rioul & Vetterli tutorial. It was one of the first tutorails on wavelets to be written and unlike later tutorials, which 'popularize' wavelets, this one addresses the professional community and try and do the accurate connections where possible. And more improtantly, it stays away from making connections where none can be made.
> I'm just curious as to how one might approach this. > > >> What I've read suggests that the relationship > >> between 'scale' and 'frequency' depends on the specific choice of > >> the wavelet function psi(), > > > The relation depends on both the wavelet function as such > > and the scale from the mother wavelet. > > But what would the process look like, in general terms?
That's a very technical issue which was treated in the R&V tutorial.
> >> but other than using the Matlab magic > >> 'scal2freq' function it's not clear to me how I would go about doing > >> it in practice. > > > There's lots of stuff going on in matlab that you > > should be very, very catious about. > > S'OK. &#4294967295;I'll be working with Scilab, so I'll have to be cautious about > other things. &#4294967295;<grin!>
Just be cautious. The fact that there is a function for it in *lab doesn't mean it can be done. ...
> > One is that what you write is not scalable. > > Apologies for my density, and perhaps I wrote it badly. &#4294967295;If I have a > single cycle of a sine wave, can't I stretch it into a longer-lasting > single cycle, or increase its amplitude?
You can. But you might certain important key issues with wavelets. One basic limiting condition in signal processing is the Heissenberg inequality. It states that in order to fix a sinusoidal with a certain accuracy in frequency you need a recording of a certain duration in time. Conversely, if you want to locate a spike with a certain accuracy in time you need a spectrum of a certain bandwidth. Heissenberg's inequality inserts the numbers so that you can compute the required bandwidths and durations once your target accuracies are known. Wavelets are an attempt to close in on the Heissenberg limit. That is, the ideal wavelet represents a pulse in time by a spectrum no wider than the Heissenberg limit. So while your windowed sinusoidal at first glance might serve the purpose of a wavelet, it fails completely with this added (or maybe implicit) constraint about wavelets hovering around Heissenberg.
> >> Ah, well. That should pretty well expose the level of my ignorance > >> in this area. I found a few hints by searching the fora at > >>www.DSPRelated.com, but they're hard to read; this may be related, > >> perhaps, to my attempting to view them in 24-point type. <grin!> > > >> Any hints, clues, or re-routings will be appreciated. > > > There was a tutorial out in IEEE Signal Processing Magazine > > around 1990 (1991?) by Rioul and Vetterli. You might find it > > useful. > > &#4294967295; Wavelets and Signal Processing > &#4294967295; Olivier Rioul and Martin Vetterli > &#4294967295; IEEE Signal Pricessing October 1991 > > Found a copy at: > > &#4294967295;http://comelec.enst.fr/~rioul/publis/199007rioulverletti.pdf > > Thanks.
Y're welcome. Rune
Hi Frank,

I think the typo in your name might be deliberate but I'll point it 
out anyway...

Frnak McKenney wrote:

>> Like any integral transform, this is basically linear algebra. >> The class of functions f whose CWT converges ...
> As I've wandered among various descriptions of the CWT I've seen > much concern about psi() converging, and the integral of > f()*psi() converging, but none about whether one might have to > deal with an f() such that the CWT of f() didn't converge for > _any_ psi(). Are there such? Or am I reading too much into > this wording?
Given that psi itself has finite energy, I think the only way for the CWT at particular (s,tau) to diverge would be a non-integrable pole of f inside the support. But in that case, with any psi goes (at least) a finite region in the s-tau plane where the CWT in fact diverges. (Unless a zero of psi happens to align with the pole, of course, so divergence is only "almost everywhere" within the region.)
>> ... is a vector space, and you >> project (inner product) f onto each of a one-parameter set B of >> vectors. That parameter is s; and psi is supposed to make B a >> basis for functions f. > > As in: B = { b(s) } for s in (-inf,+inf) ? > > Or a set of bases B(s) = { b(s,huh?) } ?
I meant the former. I must note that I misunderstood you, though -- for *fixed* s, tau is the parameter and B consists of translates, B_s = {psi((u-tau)/s)/sqrt(|s|), tau in R}. Anyway, it's an inner product ;)
>> Compare Fourier theory: frequency is the parameter and the >> complex sinusoids do form an (orthonormal) basis of L2(R).
> L2(R): the set of functions which are square-integrable over > R.
> Hm? I thought the whole point of Fourier theory was to deal with > periodic -- a.k.a. infinite -- functions. Which was why one > needed sinusoids (also infinite) as bases.
Since the FT drops the time dimension the prototype basis function must catch a blip at any finite lag, so it must have infinite support even within L2. Of course we ususally deal with divergent Fourier integrals using Dirac's delta, but I'm unclear on how wavelets work with distributions.
>> More to the point, you could say that your view leads to the >> so- called filterbank approach to wavelets. In terms of basis >> change this means that you make psi some appropriate bandpass >> filter and usually take the scales s from a discrete set so the >> representation won't be overcomplete. > > "Discrete"? Ack! I'm still working on continuous wavelets.
That's what I'm talking about ;) The DWT discretizes both time and scale. By contrast, the CWT-as-filterbank just "elides" values of s that would yield redundant information, given the bandpass shape of psi. A geometric progression results, i.e., s comes from {s_0*r^n, n in Z}.
>> In view of my previous paragraph, perhaps you'll understand the >> scal2frq docs better: it takes all those bandpass filters, >> finds each of their spectral peaks (which are related by >> successive time dilation), and calls the result the bands' >> "pseudo-frequencies". > > Which implies that anyone _sane_ who wants to use wavelets > should limit his choice of wavelets to those with distinct -- > and unique -- spectral peaks (with respect to time). <grin!>
I don't know what you mean by "spectral peaks re time", but since psi must have finite energy the spectral centroid is always well-defined. Whether it's also appropriate...
> Knowing where to start looking seemed useful, hence the desire > to find a 'scale' that matched '100Hz'.
For an initial guess you can divide the prototype psi's center frequency by your target frequency, like scal2frq does. Martin -- There are two kinds of people -- those who do the work and those who take the credit. Try to be in the first group; there is less competition there. --Indira Gandhi
On Sun, 24 Aug 2008 15:33:35 -0500, Frnak McKenney
<frnak@far.from.the.madding.crowd.com> wrote:

>Hi, Robert. Thanks for replying. > >On Fri, 22 Aug 2008 09:26:24 -0700 (PDT), robert bristow-johnson <rbj@audioimagination.com> wrote: >> about a decade ago, when i lived in NJ, i took a 3-day seminar taught >> by Strang and Truong that was held at Wellesley College (using their >> then new book, "Wavelets and Filter Banks"). Randy Yates was with me >> for that seminar. > >Ah. I've seen "Strang & Nguyen" mentioned favorably here and >elsewhere. I noticed that Amazon.com has it listed for $80, but I >can save some money by buying it used for only... $80. <grin!>
I really should stop telling others where I get books as cheaply as I do as it just adds to the competition among buyers and raises prices, but bookfinder.com finds a less expensive copy on half.com. And I'd be remiss not to mention this copy in which Strang has drawn his own personal wavelet: http://www.biblio.com/books/145751531.html And sorry if I'm not helpful, but this post pretty much exhausts my knowledge of wavelets.