In case of continuous wavelet transform (CWT), the wavelets are generated from the mother wavelet by scaling and translation. To achieve energy normalization and to ensure that all wavelets have the same energy regardless of their scales, each wavelet is divided by the square root of the the scale S. In case of discrete wavelet transform, as shown in the attached figure, the energy of the wavelet having 4B bandwidth at the first scale is twice the energy of the wavelet having a bandwidth 2B at the second scale, and so on. Thus, the energy is not equal at different scales. How energy is normalized at different scales in case of DWT?enter image description here


It's just the same like in CWT:

multiply with one over square-root of the scale.

Here is why

The energy is defined as:

E = Sum(abs(x0(t))^2)  

see https://en.wikipedia.org/wiki/Energy_(signal_processing)

Be x0(t,B) a discrete wavelet function as you defined above that doubles the energy for doubling the B.

Choosing a fixed B and try to change function x0(t,B) to a new function x(t,B) that has the same Energy as x0(t,B) at B=1:

E(B=1) = Sum(abs(x0(t,B))^2) = Econst

As stated by you energy increases linear with increase of B:

E(B) = B * Econst = B * Sum(abs(x0(t,B0))^2)

To get E independent of B introduce a compensation factor a(B):

E(B) = Econst = B * Econst * a(B)

obviously a(B) = 1/B

This can be transformed to:

Econst = B * 1/B * Sum(abs(x0(t,B))^2)  
= B * Sum(1/B * abs(x0(t,B))^2)


1/B = (1/sqrt(B))^2

Pulling the term in to the square:

Econst = B * Sum( abs(1/sqrt(B)*x0(t,B))^2 )

Therefore the new energy-normalized function x(t,B) is:

x(t,B) = 1/sqrt(B) * x0(t,B)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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