Help - Search - Members - Calendar
Full Version: audio coding
Hydrogenaudio Forums > Hydrogenaudio Forum > Scientific/R&D Discussion
libintr
i am working in audio coding..what r the tools in matlab or in simulink to implement quadrature mirror filterbank??[/color]
Woodinville
QUOTE(libintr @ Feb 13 2008, 21:29) *

i am working in audio coding..what r the tools in matlab or in simulink to implement quadrature mirror filterbank??[/color]



Uh, two band or many band?

I mean, either is not very, um, difficult, really.
libintr
QUOTE(Woodinville @ Feb 15 2008, 01:43) *

QUOTE(libintr @ Feb 13 2008, 21:29) *

i am working in audio coding..what r the tools in matlab or in simulink to implement quadrature mirror filterbank??[/color]



Uh, two band or many band?

I mean, either is not very, um, difficult, really.

2 band for now...but i need many bad implementation also....
libintr
QUOTE(libintr @ Feb 15 2008, 13:20) *

QUOTE(Woodinville @ Feb 15 2008, 01:43) *

QUOTE(libintr @ Feb 13 2008, 21:29) *

i am working in audio coding..what r the tools in matlab or in simulink to implement quadrature mirror filterbank??[/color]



Uh, two band or many band?

I mean, either is not very, um, difficult, really.

2 band for now...but i need many band implementation also....
SebastianG
QUOTE(libintr @ Feb 15 2008, 13:20) *

2 band for now...but i need many band implementation also....


For the 2-channel case:

'lp' and 'hp' are the QMF low-/highpass filter fair (impulse response). Usually only the lowpass filter coeffs are given. You can derive the highpass filter coeffs by alternating the signs a la hp = lp .* ((-1).^(1:length(lp)));
'x' = original signal

"analysis":
xlo = upfirdn(x,lp,1,2);
xhi = upfirdn(x,hp,1,2);

"snythesis":
x2 = 2 * (upfirdn(xlo,lp,2,1) + upfirdn(xhi,-hp,2,1));

Note1: '-hp' = hp(length(hp):-1:1) = synthesis filter in the special case for 2-channel QMF filters.
Note2: You may need to remove some elements of 'x2' at the start and the end so it matches x.


HTH,
SG
Woodinville
QUOTE(SebastianG @ Feb 15 2008, 01:20) *

QUOTE(libintr @ Feb 15 2008, 13:20) *

2 band for now...but i need many band implementation also....


For the 2-channel case:

'lp' and 'hp' are the QMF low-/highpass filter fair (impulse response). Usually only the lowpass filter coeffs are given. You can derive the highpass filter coeffs by alternating the signs a la hp = lp .* ((-1).^(1:length(lp)));
'x' = original signal

"analysis":
xlo = upfirdn(x,lp,1,2);
xhi = upfirdn(x,hp,1,2);

"snythesis":
x2 = 2 * (upfirdn(xlo,lp,2,1) + upfirdn(xhi,-hp,2,1));

Note1: '-hp' = hp(length(hp):-1:1) = synthesis filter in the special case for 2-channel QMF filters.
Note2: You may need to remove some elements of 'x2' at the start and the end so it matches x.


HTH,
SG


Another way. Do all the even points in the convolution. Do all the odd separately. The sum is the low band, the difference is the high band. Ditto but exactly reversed on the other end.
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.