An Observation about the Daubechies Wavelet and PQF

In an earlier posting, I had written about what a wonderful thing Quadrature Mirror Filter was, and that it is better to apply the Daubechies Wavelet than the older Haar Wavelet. But the question remains less obvious, as to how the process can be reversed.

The concept was clear, that an input stream in the Time-Domain could first be passed through a low-pass filter, and then sub-sampled at (1/2) its original sampling rate. Simultaneously, the same stream can be passed through the corresponding band-pass filter, and then sub-sampled again, so that only frequencies above half the Nyquist Frequency are sub-sampled, thereby reversing them to below the new Nyquist Frequency.

A first approximation for how to reverse this might be, to duplicate each sample of the lower sub-band once, before super-sampling them, and to invert each sample of the upper side-band once, after expressing it positively, but we would not want playback-quality to drop to that of a Haar wavelet again ! And so we would apply the same wavelets to recombine the sub-bands. There is a detail to that which I left out.

We might want to multiply each sample of each sub-band by its entire wavelet, but only once for every second output-sample. And then one concern we might have could be, that the output-amplitude might not be constant. I suspect that one of the constraints which each of these wavelets satisfies would be, that their output-amplitude will actually be constant, if they are applied once per second output-sample.

Now, in the case of ‘Polyphase Quadrature Filter’, Engineers reduced the amount of computational effort, by not applying a band-pass filter, but only the low-pass filter. When encoding, the low sub-band is produced as before, but the high sub-band is simply produced as the difference between every second input-sample, and the result that was obtained when applying the low-pass filter. The question about this which is not obvious, is ‘How does one recombine that?’

And the best answer I can think of would be, to apply the low-pass wavelet to the low sub-band, and then to supply the sample from the high sub-band for two operations:

  1. The first sample from the output of the low-pass wavelet, plus the input sample.
  2. The second sample from the output of the low-pass wavelet, minus the same input sample, from the high sub-band.

Continue reading An Observation about the Daubechies Wavelet and PQF

An Update about MP3-Compressed Sound

In many of my earlier postings, I stated what happens in MP3-compressed sound somewhat inaccurately. One reason is the fact that an overview requires that information be combined from numerous sources. While earlier WiKiPedia articles tended to be quite incomplete on this subject, it happens that more-recent WiKi-coverage has become quite complete, yet still requires that users click deeper and deeper, into subjects such as the Type 4 Discrete Cosine Transform, the Modified Discrete Cosine Transform, and Polyphase Quadrature Filters.

What seems to happen with MP3 compression, which is also known as MPEG-2, Layer 3, is that the Discrete Cosine Transform is not applied to the audio directly, but that rather, the audio stream is divided down to 32 sub-bands in fact, and that the MDCT is applied to each sub-band individually.

Actually, after the coefficients are computed, a specific filter is applied to them, to reduce the aliasing that happened, just because of the PQF Filter-bank.

I cannot be sure that this was always how MP3 was implemented, because if we take into account the fact that with PQF, every second sub-band is frequency-inverted, we may be able to obtain equivalent results just by performing the Discrete Cosine Transform which is needed, directly on the audio. But apparently, there is some advantage in subdividing the spectrum into its 32 sub-bands first.

One advantage could be, that doing so reduces the amount of computation required. Another advantage could be the reduction of round-off errors. Computing many smaller Fourier Transforms has generally accomplished both.

Also, if the spectrum is first subdivided in this way, it becomes easier to extract the parameters from each sub-band, that will determine how best to quantize its coefficients, or to cull ones either deemed to be inaudible, or aliased artifacts.

Continue reading An Update about MP3-Compressed Sound

An Elaboration on Quadrature Mirror Filter

This was an earlier posting of mine, in which I wrote about a “Quadrature Mirror Filter”. But the above posting may not make it clear to all readers, why a QMF approach will actually result in two streams, each of which has half the sample-rate of the original stream.

A basic premise which gets used, is the Daubechies Wavelet, according to which there exists a Scaling Function that later gets named ‘H1′, and a corresponding Wavelet which gets named ‘H0′. It could also be thought that H1 is a low-pass filter with a corner frequency of 1/2 the Nyquist Frequency, while H0 is a Band-Pass Filter derived from H1. Also, because the upper cutoff frequency of H0 is the Nyquist Frequency, it is not clear to me either, why we would not just call that a High-Pass Filter. But the WiKi page calls that the Band-Pass Filter.

Alright, So we can start with a stream sampled at 44.1 kHz and derive two output streams, one which contains the lower half of frequencies, and the other of which contains the upper half. How do the sample-rates of either get halved?

The answer is that after we have filtered the original stream both ways, we pick out every second sample of each.

This is also what would get done if we were to use a (more expensive) Half-Band Filter based on ‘the Sinc Function’, to down-sample a stream. In contrast, if we are over-sampling a stream to the highest level of accuracy, we first repeat each sample once, and then apply the (better) low-pass filter.  (It should be noted however, that a 4-coefficient Daubechies Wavelet would be considered ‘deficient’. Those start to become interesting, at maybe 8 coefficients.)

But when it comes to Quadrature Mirror Filters, when we have down-sampled the stream, we have also halved its Nyquist Frequency – both times. But then in the case of ‘H0′ above, original frequency components above the Nyquist Frequency are subject to the phenomenon I mentioned in another posting, according to which they get mirrored back down, from the new, lower Nyquist Frequency, all the way to zero (DC). Hence, the output of H0 gets inverted in frequencies, when it is subsequently down-sampled.

Dirk

Continue reading An Elaboration on Quadrature Mirror Filter