Help - Search - Members - Calendar
Full Version: Interpretation of complex output from QMF filter?
Hydrogenaudio Forums > Hydrogenaudio Forum > Scientific Discussion
34din
Hi everybody!

I just started to work on audio coding. Currently looking at HE-AAC + Parametric stereo codec reference software from 3GPP standard..

In the encoder, a QMF analysis filtering is performed, which divides the input signal into 64 subband. The input is 2048 samples, and the output of the filter is 32 complex samples per subband.

Can anyone explain to me, how to interprete the complex samples?

From my understanding, each subband's output contains time domain components (waveform) within that particular subband's frequency range. But with complex output samples, which components is the actual time domain sample? Is it the magnitude of the complex samples? If so, what does the phase means?

Please help.
Thankyou and regards,

Sam.
menno
QUOTE(34din @ Oct 22 2004, 12:47 PM)
Can anyone explain to me, how to interprete the complex samples?
*


You can't turn a complex sample into a real sample without losing some of the properties. So in fact you should look at the complex sample as being the time domain sample. You can calculate a magnitude and a phase and do all the well known complex math on these samples.
After processing, the complex time domain samples are converted to real data again using another complex QMF filterbank.

A complex QMF is used in SBR because there is no aliasing introduced in this filterbank. A downside to this is that it is oversampled by a factor 2 making it unusable in codecs like MP3. This is no problem for SBR because both analysis and synthesis are done in the decoder.

Menno
wkwai
QUOTE(34din @ Oct 22 2004, 03:47 AM)
Hi everybody!

I just started to work on audio coding. Currently looking at HE-AAC + Parametric stereo codec reference software from 3GPP standard..

*


I have looked into the 3GPP reference code, but I couldn't find any Parametric Stereo modules in it? It seemed to be that it contains the usual MS and Intensity Stereo.. unsure.gif


wkwai
wkwai
QUOTE(menno @ Oct 22 2004, 07:11 AM)
QUOTE(34din @ Oct 22 2004, 12:47 PM)
Can anyone explain to me, how to interprete the complex samples?
*


You can't turn a complex sample into a real sample without losing some of the properties. So in fact you should look at the complex sample as being the time domain sample. You can calculate a magnitude and a phase and do all the well known complex math on these samples.
After processing, the complex time domain samples are converted to real data again using another complex QMF filterbank.

A complex QMF is used in SBR because there is no aliasing introduced in this filterbank. A downside to this is that it is oversampled by a factor 2 making it unusable in codecs like MP3. This is no problem for SBR because both analysis and synthesis are done in the decoder.

Menno
*


Do you mean that the input to the complex QMF filterbank is actually a mono channel ?? or is it stereo channel ?? unsure.gif

From my understanding of the complex filterbank, it is possible to represent the stereo inputs as a pair of complex channels.. that is the L channel is real whereas the R channel is imaginary.. and thus it is also critically sampled.. unsure.gif

wkwai
menno
QUOTE(wkwai @ Oct 23 2004, 07:08 AM)
Do you mean that the input to the complex QMF filterbank is actually a mono channel ?? or is it stereo channel ??  unsure.gif

From my understanding of the complex filterbank, it is possible to represent the stereo inputs as a pair of complex channels.. that is the L channel is real whereas the R channel is imaginary.. and thus it is also critically sampled..  unsure.gif

wkwai
*


The input and output are both mono, and because the output is complex it is not critically sampled.
Maybe what you're saying is also possible, but I have never seen that. And I don't think a critically sampled filterbank can be alias free?

Menno
wkwai
QUOTE(menno @ Oct 23 2004, 12:12 AM)
The input and output are both mono, and because the output is complex it is not critically sampled.
Maybe what you're saying is also possible, but I have never seen that. And I don't think a critically sampled filterbank can be alias free?

Menno
*



Hey.. I really don't know ohmy.gif in audio coding..
but in DSP filtering techniques, a complex input is alright.

Perhaps, much of the complication is in the real world interpretation of the meaning of the complex output such as temporal information etc-etc ??

wkwai
34din
Hi!!

Thanks for the reply and explanation.

The code from 3GPP is on Enhanced aacPlus General Audio Codec (3GPP TS 26.401 etc..).

The input to the QMF filterbank is mono channel, and the output is a set of complex value. I'm still confused as how to check the correctness of the complex output (as I'm trying to 'transfer' the code to MATLAB).

Let say I input a 1 kHz sinusoid with 32 kHz sampling frequency into the filter. Bandwidth of each subband is 16kHz/64 = 250 Hz (am I correct on this?). So the 1 kHz sinusoid lies in approximately 4th or 5th subband. How can I check this? Can I take the complex FFT at each subband, and safely say that there will be a spectral peak at 4th or 5th subband and none at other subbands?

Thank you in advance.
Sam.
menno
QUOTE(34din @ Oct 25 2004, 02:26 AM)
Hi!!

Thanks for the reply and explanation.

The code from 3GPP is on Enhanced aacPlus General Audio Codec (3GPP TS 26.401 etc..).

The input to the QMF filterbank is mono channel, and the output is a set of complex value. I'm still confused as how to check the correctness of the complex output (as I'm trying to 'transfer' the code to MATLAB).

Let say I input a 1 kHz sinusoid with 32 kHz sampling frequency into the filter. Bandwidth of each subband is 16kHz/64 = 250 Hz (am I correct on this?). So the 1 kHz sinusoid lies in approximately 4th or 5th subband. How can I check this? Can I take the complex FFT at each subband, and safely say that there will be a spectral peak at 4th or 5th subband and none at other subbands?

Thank you in advance.
Sam.
*


I think taking the FFT is ok, just remember that the frequencies are reversed in the odd subbands.

If you're doing this filterbank in Matlab it might be easier to take the direct implementation instead of looking at this source code. Look at the HE AAC specification for a block diagram.

Menno
SebastianG
QUOTE(menno @ Oct 24 2004, 10:54 PM)
If you're doing this filterbank in Matlab it might be easier to take the direct implementation instead of looking at this source code. Look at the HE AAC specification for a block diagram.
*


Just out of curiosity:
Does someone know if there's a freely downloadable final draft of the HE-spec available like it's the case for ISO 14496-3 ? I'm actually not a fan of digging in C code.
Thanks.

SebastianG
34din
QUOTE(menno @ Oct 25 2004, 02:54 PM)
I think taking the FFT is ok, just remember that the frequencies are reversed in the odd subbands.


Menno
*


Thanks, I tried taking the FFT and the peak at corresponding subband match the frequency of the sinewave that I input, and that the frequency are reversed (mirrored) in odd subbands.

By the way, do you have any recommendation on books or website for QMF theory? I am a beginner and I find it difficult to grab the concept (eg. aliasing, complex QMF, etc..) because most of the books that I look at are very mathematical.

Regards,
Sam.
34din
QUOTE(menno @ Oct 25 2004, 02:54 PM)

I think taking the FFT is ok, just remember that the frequencies are reversed in the odd subbands.

*


Hi!
Just to clear some doubt. Why is the frequencies are reversed in the odd subbands? Is it due to the filter or the complex representation?

Thanks and regards,
Sam.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.