![Drawing2.jpg](data:image/jpeg;base64,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)
by Ljiljana Milic
Supplemental material for Chapter XII:
12. Examples of Multirate Filter Banks
12.1 TWO-CHANNEL FILTER BANKS
Remainder
The block diagram represenring the analysis/synthesis two-channel filter bank with the processing unit between the analysis and synthesis parts is shown in the Figure. The analysis part consists of the lowpass/highpass filter pair
/
and factor-of-2 down-samplers, and the synthesis part consists of factor-of-2 up-samplers and the lowpass/highpass filter pair
/
.
The two-channel analysis/synthesis filter bank.
Since, the
and
are the down-sampled version of
and
, the z-transforms
and
are expressible in terms of the z-transformors with the down-sampling factor M = 2: The first terms represent the z-transforms of the desired decimated signal components, whereas the second terms represent the aliasing components that overlap in the basebands of the decimated signals.
In the synthesis part, signals
and
are up-sampled-by-2, and up-sampled signals
and
are processed by the lowpass filters
and
. The z-transforms
and
are given by With the assumption that the analysis and synthesis parts are connected together, i.e.,
,
, one obtains the relation between z-transforms
,
and the z-transform of the input signal
. Finally, the filtered signals
and
are added together to yield the output
. The z-transform
is the sum The above relation is usually expressed in the form:
where
is the distortion transfer function , and
is called the aliasing transfer function.
It is well known from the literature, that the alias free two-channel filter bank can be achieved by the proper combination of
,
,
and
. See Chapter XII of the book. Perfect reconstruction property
The
represents the the distortion of the overall analysis/ synthesis filter bank. In the frequency domain, we consider the frequency characteristic ![](data:image/png;base64,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)
where
is the amplitude distortion, and
phase distortion. The magnitude-preserving property means that
satisfies The phase-preserving property is satisfied if
is a linear-phase transfer function The filter bank satisfies the perfect-reconstraction property if the magnitude-preserving and phase-preserving properties are satisfied. The perfect reconstruction means that the signal at the output of the analysis/synthesis filter bank is
is delayed version of the original signal ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAAjCAYAAAAuVaJ4AAADdElEQVRoQ+3ZWci9UxQG8N8/MmT+I0OKG1GEzBnKjXkeCvEXUjKHzGNcIIRyQVwos5DhRigpEnHBjXBBhsxkSmY9Wm+dXud85z3Td/OdffV9vXvvtZ+1nvWstfdZZgmMZUsAoznIMaO8MY7Dqn3WP4kPxty3WXYwtu2zx8d4Ar+3v80iklvhfvyMP1oGL8dbE4I8B4e09lgbb+N8/LpYIK/F2fh2QkBdl++JFXOQXd3VcV7oOo9kR2eNMm1O11mp65yuo/Cw49w5XZc8XdfALjgS+2NDnIxni0Jr4SKchReQTuRrdCkhce66NXfHsrMSzsP32ALn4ij8iCvxzALUHZuum9Wmac1uro4i7VpA/Y0bsDp2w3c4Cekfu4CMg/YpB55Sdi7E7dgPV1WbdhA2x+M4DT8MADo2yN79Tsdd1XemfToUn+Jh/NMy3AVksySHewU/4UCsjDMQwHHcbYjtxrmZ129MBeRORdNNcDe+qa7mzz4WRwHZOO+5YkbYcAW+xHoFLreOgA7gtkN7nTVx77opHiyKvVTU/WyAV7uCDNWbSN2D3CRuwZu179Z4rPIzUX51FjnZu+dquBVn1sEu7XdvqwVdQSbXHsIe+BwXlyObaB2Gp/Fi5XvmDBpToWvUMEp6E0KtUCOU7Te6gtwXz9cGiWTugr/U/1Ha63FZ0ThC9NesQe5cChfv52Z/DN6ZAGScltwLkEToCLzRs98GlY8H4PAh5SPLJo7kRrijauGpRa8Ti1rjRnId3FvOipC1b/SN0H2FY/HeAlGcGGQkPbnyUeVH8jKKmBoZCqVe7l2HiCJmdKHrdsWMLXE08vbTOxrVbUpHNCHAQ+/YbI+RIhkaReXC/+TH8dgdl9TbSa/kJy+3qeJ9HX4bAeQJeACvl40Pe07dq7oXVMQjdJn/7oCIjgRyBzyF5Xi/OpgU5yZKu9b31MsoXx6rUsOa710iuQpuLIr2o+r6lQppJe/EmrgPL09LeJJ/oWTk+xFcjS9aXr6mJD0qm78/aRkfRtfemtsvt5seNnfSiFHO8NoCjcDEOTkk3ycqIePsPWjNSHSdhuFhkZyGjYmEZxoHWDIgU+TzWp67Ye/ILeJ/z/gjejZC1P4JIvfeNBSL+oL+KLbvc/i9hjTaXfCmPqdktUc/pf5vziyeP7ocdFHnzEEuqrtnaOxfJBELM6ovJOEAAAAASUVORK5CYII=)
In many applications, instead the perfect-reconstrauction property it is sufficient to achieve the nearly-perfect reconstruction property property
12.1.1 Quadrature Mirror (QMF) Filter Banks
Remainder
The Quadrature mirror (QMF) filter bank denotes the mirror symetry of the lowpass/highpass halfband filters
and ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAmCAYAAACI0bZTAAAFX0lEQVRoQ+2Zd8h/UxzHXz8jKyMjWfEHISskK6NEKCv62St7ZWVlh2xCMiIre2UUUVYoQmaIRFaykhVZvepz6nafe8859/s8PTz6nnp66ns/53M/533en8/nfc6dxXgUEZhVtBgbMAapggRjkP6HIC0KrA08DfxVsb62yXLAMsBLwN+182cSk1YCjgLOA76qXWDLbg5gD2Bu4Dbgjxo/MwWklYHjgDMmAVDCwzXvBsxbC1QOpPmA3YENgV2BBRuovwU8ANwEfBK/Lw/sCewIrNew/Q64GbgW+KBm51o2SwBXANcBz44wv2uKa5ORjwJPlXzWMGn+CPLAcPYQcEhmR60ZdwOmx5fAXjWB9AQ6ZzBoHuCC2vQoLTqey84LgWOAj3NzRgFp52BRn98NgCeCeQ8CBwDfVwbeNlsNuAo4DHh/RB9901z7scAiwNnAnznD0ruXBm4HNgdMs9nAe5lJsszUcpwPnJ4LIONHFp0JzDUJH6W1rQlcAxwMvDMZkDYGHgtm3AeYdj/0ODTXL4901GQH4OFSpD3PrXF3AGcBT47oozTNOns18HrE3SkLatKtyQxZYcHr0xhN1r0RBX/UNNk+upmd6MPSaifx/BRgndzml0Aayowm69QhRwA/jrAAU+2cKP455o7gesIUN+PcXBkpgZQovxFQwwwL4WURhrrG1BtlpDT4BjgZ+D3jZIEovGtkbKw3aqyfOmzWBR4B9u1L6xJIW0an0neJGWlhewd7tgFeGAUhQG1kPXouGJVzYytXcqzVY+QRZH/g3Z7nab6be2uXTQ4kn51aEWSX3xdD/iehORSrFLidRxGZG6bL1tEBv20YyjBTVl2XE6ErAneFnfYTRg6khYEbgF2CGeqj1zLRbtvYCRdm6v06FJ2wTyBdHPKjz41nsUOD7c3irmww3T8D7iwcZheLd8j6wSCtAtwDmOvPxJHji55oU6G1UzgMvMSAmhQqgdS38R6nlo36WDrETgokaSxVHRbgXAFdPGqWtPcosh3wag8K7v5mIeDUQF0SYUi6tV+jb/WZcuXnCiand1nXFL/V6dZmhucvVXffSB1iKeBxwOJtZ2oOU9vi6hHDFP40o6OGFO7mO1YFjo9aWnudUkztvpo0hBkGWXMU8V0eVP0vMz3jebvQxaQhEiCBtGQI3Usznaxrk9V2zwe77abVTKphRnLWFpwqZKnbN5J9DqTUWWVejZis7WRdMblRJ8QdU6ey72NSDTPSC5uC0/siU+nNSYLkdDWahbuPbekVQzpZO6xUViwTR/bVsC6Qhh5FmoKzdAA2yBomaWfgiju1khd8fZkwpJO1faSyYtw39m1sF0heHyiuLIIOu0VnrgLS3PpyUNiqq44GfpkCJqX7Hpl6IvBbh09juyV+F8grSxdoLR9bRBfcLzevCZJ6wTTbB7Dip+Edktcd98b5zd/TVa0tf5OGrYdZr0RV3Iq4pgJOZrVM0n6F0Fsq/1daC3QTvT5ev/F78wji2pQC/ikSP2rNt4lcBLwdorn360np7JYhxMiPhoBkfKaTV8KnNdik1toqFqgWUtPZ+hW+bqabrdq30x0eRbndTDaNZ36B+Tq3mv86SKmGeRctOy0DfcPU94ZRMK8PluwUms10ap4jlQt+XLikg6ET/M8EkAzaj5Inhao3PXJjoSgBqwcw3mo2014me/lvavqRs/iRcqaAlIAypSzQfUeeUg0QINPr5bgZKAKkw38DpPSJym9zJQ3UXrTFVmlg6lQtsOXAlq+Pz0toNp9PN0h2JDuiMsEO6YHy/uiapdP6kHVNqe10gzSlwU+XszFIFUiPQRqDVIFAhcmYSRUg/QOjfTk2kSyRfAAAAABJRU5ErkJggg==)
For cansecing the aliasing transfer function
, the synthesis filters
and
are determined by
, and ![](data:image/png;base64,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)
The distortion thansfer function
is expressible in terms of lowpass filter ![](data:image/png;base64,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)
Accordingly, the proper choice of the lowpass filter
determines the QMF bank performances.
FIR QMF Filter Bank
Example 12.1
In this example, we choose the Johnson's FIR filter of the length N = 12 to examine the performances of a linear-phase FIR QMF bank. The next Figure presents the polyphase structure that is used for implementation.
First, we design the 12th order linear-phase halfband filter
using the first half of the Johnston's coefficients B1=[-0.006443977,0.02745539,-0.00758164,-0.0913825,0.09808522,0.4807962];
Generating the lowpass filter ![](data:image/png;base64,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)
stem(0:length(h0)-1,h0);title('Impulse response of low pass filter')
% Generate the complementary highpass filter
Generating the highpass filter ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAmCAYAAACI0bZTAAAFX0lEQVRoQ+2Zd8h/UxzHXz8jKyMjWfEHISskK6NEKCv62St7ZWVlh2xCMiIre2UUUVYoQmaIRFaykhVZvepz6nafe8859/s8PTz6nnp66ns/53M/533en8/nfc6dxXgUEZhVtBgbMAapggRjkP6HIC0KrA08DfxVsb62yXLAMsBLwN+182cSk1YCjgLOA76qXWDLbg5gD2Bu4Dbgjxo/MwWklYHjgDMmAVDCwzXvBsxbC1QOpPmA3YENgV2BBRuovwU8ANwEfBK/Lw/sCewIrNew/Q64GbgW+KBm51o2SwBXANcBz44wv2uKa5ORjwJPlXzWMGn+CPLAcPYQcEhmR60ZdwOmx5fAXjWB9AQ6ZzBoHuCC2vQoLTqey84LgWOAj3NzRgFp52BRn98NgCeCeQ8CBwDfVwbeNlsNuAo4DHh/RB9901z7scAiwNnAnznD0ruXBm4HNgdMs9nAe5lJsszUcpwPnJ4LIONHFp0JzDUJH6W1rQlcAxwMvDMZkDYGHgtm3AeYdj/0ODTXL4901GQH4OFSpD3PrXF3AGcBT47oozTNOns18HrE3SkLatKtyQxZYcHr0xhN1r0RBX/UNNk+upmd6MPSaifx/BRgndzml0Aayowm69QhRwA/jrAAU+2cKP455o7gesIUN+PcXBkpgZQovxFQwwwL4WURhrrG1BtlpDT4BjgZ+D3jZIEovGtkbKw3aqyfOmzWBR4B9u1L6xJIW0an0neJGWlhewd7tgFeGAUhQG1kPXouGJVzYytXcqzVY+QRZH/g3Z7nab6be2uXTQ4kn51aEWSX3xdD/iehORSrFLidRxGZG6bL1tEBv20YyjBTVl2XE6ErAneFnfYTRg6khYEbgF2CGeqj1zLRbtvYCRdm6v06FJ2wTyBdHPKjz41nsUOD7c3irmww3T8D7iwcZheLd8j6wSCtAtwDmOvPxJHji55oU6G1UzgMvMSAmhQqgdS38R6nlo36WDrETgokaSxVHRbgXAFdPGqWtPcosh3wag8K7v5mIeDUQF0SYUi6tV+jb/WZcuXnCiand1nXFL/V6dZmhucvVXffSB1iKeBxwOJtZ2oOU9vi6hHDFP40o6OGFO7mO1YFjo9aWnudUkztvpo0hBkGWXMU8V0eVP0vMz3jebvQxaQhEiCBtGQI3Usznaxrk9V2zwe77abVTKphRnLWFpwqZKnbN5J9DqTUWWVejZis7WRdMblRJ8QdU6ey72NSDTPSC5uC0/siU+nNSYLkdDWahbuPbekVQzpZO6xUViwTR/bVsC6Qhh5FmoKzdAA2yBomaWfgiju1khd8fZkwpJO1faSyYtw39m1sF0heHyiuLIIOu0VnrgLS3PpyUNiqq44GfpkCJqX7Hpl6IvBbh09juyV+F8grSxdoLR9bRBfcLzevCZJ6wTTbB7Dip+Edktcd98b5zd/TVa0tf5OGrYdZr0RV3Iq4pgJOZrVM0n6F0Fsq/1daC3QTvT5ev/F78wji2pQC/ikSP2rNt4lcBLwdorn360np7JYhxMiPhoBkfKaTV8KnNdik1toqFqgWUtPZ+hW+bqabrdq30x0eRbndTDaNZ36B+Tq3mv86SKmGeRctOy0DfcPU94ZRMK8PluwUms10ap4jlQt+XLikg6ET/M8EkAzaj5Inhao3PXJjoSgBqwcw3mo2014me/lvavqRs/iRcqaAlIAypSzQfUeeUg0QINPr5bgZKAKkw38DpPSJym9zJQ3UXrTFVmlg6lQtsOXAlq+Pz0toNp9PN0h2JDuiMsEO6YHy/uiapdP6kHVNqe10gzSlwU+XszFIFUiPQRqDVIFAhcmYSRUg/QOjfTk2kSyRfAAAAABJRU5ErkJggg==)
stem(0:length(h1)-1,h1);title('Impulse response of high pass filter')
Compute the gain responses of the analysis filters
H0=abs(H1z); g1=20*log10(H0);
H1=abs(H2z); g2=20*log10(H1);
Plot the gain responses of the analysis filters
plot(w/pi,g1,'-',w/pi,g2,'-b'),grid
title('Gain responses of H_0(z) and H_1(z)')
Compute the magnitude response of the distortion transfer function
xlabel('Normalized frequency \omega/\pi'), ylabel('Gain, dB')
title('Distortion transfer function')
Generate the rectangular test signal x
x = [zeros(size(1:100)),ones(size(101:250)),zeros(size(251:511))]; % Test signal
Polyphase decomposition
e0 = h0(1:2:length(h0)); % Polyphase component E_0(z)
e1 = h0(2:2:length(h0)); % Polyphase component E_1(z)
Signal analysis
x0 = x(1:2:length(x))/2; % Down-sampling, branch E_0
x1 = [0,x(2:2:length(x)-1)]/2; % Down-sampling, branch E_1
v00 = filter(e0,1,x0); % Filtering with E_0(z)
v11 = filter(e1,1,x1); % Filtering with E_1(z)
v0 = v00 + v11; % Output of the lowpass filter
v1 = v00 - v11; % Output of the highpass filter
plot(1:511,x), ylabel('x[n]')
title('Signal decomposition and reconstruction')
plot(0:255,v0),ylabel('v_0[n]')
plot(0:255,v1),,ylabel('v_1[n]')
Signal synthesis
w00 = v0 + v1; % Input to polyphase component E_1(z), synthesis part
w11 = v0 - v1; % Input to polyphase component E_0(z), synthesis part
u00 = 2*filter(e1,1,w00); % Filtering with E_1(z)
u11 = 2*filter(e0,1,w11); % Filtering with E_0(z)
y0(1:2:512) = u00; % Upsampling, branch E_0
y1(1:2:512) = u11; % Upsampling, branch E_1
y0 = [0,y0(1:511)]; % Inserting the delay z^(-1)
y = 2*(y0 + y1); % Reconstructed signal
plot(0:511,y), xlabel('Time index n'), ylabel('y[n]')
disp('END OF EXAMPLE 12.1')
12.1.2 Alias-Free Two-Channel IIR QMF Banks with Magnitude Preserving Property
Example 12.2
In this example, we choose the 5th order Butterworth filter to examine the performances of the IIR QMF bank. The next Figure presents the polyphase structure that is used for implementation.
Butterworth filter design
N = 5; % Selecting the Butterworth filter order
[z,p,k]=butter(N,0.5); % Butterworth filter design
Computing and displaying the magnitude responses of the filter pair
, ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAmCAYAAACI0bZTAAAFX0lEQVRoQ+2Zd8h/UxzHXz8jKyMjWfEHISskK6NEKCv62St7ZWVlh2xCMiIre2UUUVYoQmaIRFaykhVZvepz6nafe8859/s8PTz6nnp66ns/53M/533en8/nfc6dxXgUEZhVtBgbMAapggRjkP6HIC0KrA08DfxVsb62yXLAMsBLwN+182cSk1YCjgLOA76qXWDLbg5gD2Bu4Dbgjxo/MwWklYHjgDMmAVDCwzXvBsxbC1QOpPmA3YENgV2BBRuovwU8ANwEfBK/Lw/sCewIrNew/Q64GbgW+KBm51o2SwBXANcBz44wv2uKa5ORjwJPlXzWMGn+CPLAcPYQcEhmR60ZdwOmx5fAXjWB9AQ6ZzBoHuCC2vQoLTqey84LgWOAj3NzRgFp52BRn98NgCeCeQ8CBwDfVwbeNlsNuAo4DHh/RB9901z7scAiwNnAnznD0ruXBm4HNgdMs9nAe5lJsszUcpwPnJ4LIONHFp0JzDUJH6W1rQlcAxwMvDMZkDYGHgtm3AeYdj/0ODTXL4901GQH4OFSpD3PrXF3AGcBT47oozTNOns18HrE3SkLatKtyQxZYcHr0xhN1r0RBX/UNNk+upmd6MPSaifx/BRgndzml0Aayowm69QhRwA/jrAAU+2cKP455o7gesIUN+PcXBkpgZQovxFQwwwL4WURhrrG1BtlpDT4BjgZ+D3jZIEovGtkbKw3aqyfOmzWBR4B9u1L6xJIW0an0neJGWlhewd7tgFeGAUhQG1kPXouGJVzYytXcqzVY+QRZH/g3Z7nab6be2uXTQ4kn51aEWSX3xdD/iehORSrFLidRxGZG6bL1tEBv20YyjBTVl2XE6ErAneFnfYTRg6khYEbgF2CGeqj1zLRbtvYCRdm6v06FJ2wTyBdHPKjz41nsUOD7c3irmww3T8D7iwcZheLd8j6wSCtAtwDmOvPxJHji55oU6G1UzgMvMSAmhQqgdS38R6nlo36WDrETgokaSxVHRbgXAFdPGqWtPcosh3wag8K7v5mIeDUQF0SYUi6tV+jb/WZcuXnCiand1nXFL/V6dZmhucvVXffSB1iKeBxwOJtZ2oOU9vi6hHDFP40o6OGFO7mO1YFjo9aWnudUkztvpo0hBkGWXMU8V0eVP0vMz3jebvQxaQhEiCBtGQI3Usznaxrk9V2zwe77abVTKphRnLWFpwqZKnbN5J9DqTUWWVejZis7WRdMblRJ8QdU6ey72NSDTPSC5uC0/siU+nNSYLkdDWahbuPbekVQzpZO6xUViwTR/bVsC6Qhh5FmoKzdAA2yBomaWfgiju1khd8fZkwpJO1faSyYtw39m1sF0heHyiuLIIOu0VnrgLS3PpyUNiqq44GfpkCJqX7Hpl6IvBbh09juyV+F8grSxdoLR9bRBfcLzevCZJ6wTTbB7Dip+Edktcd98b5zd/TVa0tf5OGrYdZr0RV3Iq4pgJOZrVM0n6F0Fsq/1daC3QTvT5ev/F78wji2pQC/ikSP2rNt4lcBLwdorn360np7JYhxMiPhoBkfKaTV8KnNdik1toqFqgWUtPZ+hW+bqabrdq30x0eRbndTDaNZ36B+Tq3mv86SKmGeRctOy0DfcPU94ZRMK8PluwUms10ap4jlQt+XLikg6ET/M8EkAzaj5Inhao3PXJjoSgBqwcw3mo2014me/lvavqRs/iRcqaAlIAypSzQfUeeUg0QINPr5bgZKAKkw38DpPSJym9zJQ3UXrTFVmlg6lQtsOXAlq+Pz0toNp9PN0h2JDuiMsEO6YHy/uiapdP6kHVNqe10gzSlwU+XszFIFUiPQRqDVIFAhcmYSRUg/QOjfTk2kSyRfAAAAABJRU5ErkJggg==)
B=k*poly(z); A=poly(p); % Lowpass filter H0(z)
[H0,f]=freqz(B,A,256,2); % Lowpass filter frequency response
BB=k*poly(-z); AA = A; % Highpass filter H1(z)
[H1,f]=freqz(BB,AA,256,2); % Highpass filter frequency response
plot(f,abs(H1),'b'),ylabel('Magnitude'), grid
title('Magnitude responses of H_0(z) and H_1(z)')
Compute the magnitude response of the distortion transfer function
ver=abs(H0).^2+abs(H1).^2;
xlabel('\omega/\pi'), % ylabel('Gain, dB')
title('Magnitude distortion')
Computing and displaying the group delay of the overall analysis/synthesis QMF bank
[gd,f] = grpdelay(conv(BB,B),conv(AA,A),512,2);
title('Group delay of the analysis/synthesis two-channel filter bank')
xlabel('\omega/\pi'),ylabel('Group delay, samples')
Composing the allpass branches
and ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAAAmCAYAAACS7VbdAAAFBklEQVRoQ+2Yach1UxTHf29mQpSZIskU0psIIZkiU5nnTK95HpMp85x5zjwm9fLBiwgZMn4wTx/ITAhJRPSrtes8555h33PPrUfd/eV56u69ztr/9V/rv9aewWQNIDBjgskgAhNQKlgxAeV/CIpBWx/4CviiY6qvDswNvJN7fjozxYvMAn4CHgT+zb1Uad98wFHA+8CcHDvTFRQBORb4ekRAEj7aOxr4MAeYrqCsDdwIHA683TGCTcf2ADYGTgV+78n+EsAlwGXAB002u4CyAHBVUHsr4OmenE5mVgn7J7c53+G7mwCHBmt+rjvfBRSBeARYGDgMuLmDc3VH5gLOBv4ALgX+6dG2pqwv2pXdt/cFypLArcAOYfAi4MwenV8TuGWMaanbWwKnAPsB31QBMwxT3HswcD5gCsmUe4Ajgd96iujxwLo92yy7tixwH3At8OiooKwK3AlcF+BsBjwH7B0qMSouiwK3AW8BMnBca37gCuBP4DTgr/KHcpmipJ0bhy8Hrgb2BT4BdulJgVQ0a9VJwGPjQiTsyshtgb2AH7qCYtVWzg4APo5iaEF09aVA5vpdwPbAmy2g2KVeCCzYsO/eSO+qLdZEg1sZ0BymLBL5J62viY7QIuUFXH0pkDZPAHYHPmoBxZT10nXrhiimdT3ORsCLwKbAC12YogN7Rh35NgzInOfj/74USBXbPKNGzRsscZZ5oFQTZNCJwBnAdw2gbQA8FSpn0Z2y2piyXKG4zi6cXA14GFirRwUSFCNoEH5suJCdqaySDfYzaS0FXBBFtLFjBRSNh6K7HQoUGyn1XACcG34tOKBj9wNb9KhAuaBU4bUQcB5g4BKDmzKwMyiqgdOplGxaOQokiE68TrpGs2rlpk/5rMpoLfoy0ilnmk41xRlLxmSlT5pvvg8pLrfbpp3qkxRoxxoZNYJK9z6RGmdFRKtAGabQpvP6Yb1bHrgS+LslgOnnBIpD50u5oCizSp75XacERv6mMGikHBLLa55ghw9FVvsmUIaR5PQd1cOAyLJhpmnv5QS+WzwntDJFqjvkvd4ylHkJK7hLQCq7w/g9RaYJlJTn7slp3nKVpoo8pwdzZfHAtFxWnzTfOM+09QszgceBZaITdS76pYa+OaA4S10fzaF1p6k2DKM0ZZfSdz6rKQ2UQfEtwyHv2YzpN0V2HeDlaJk/HwEUjx4EbBd/6947hlWaskv6rQybPs9U+VsExY/51nAEsD9wd0vRSrOKQLqcJZ4YEZSVgDuiFXitwpZKY3N2MfBqdNX6OUw9EfitQw0rgU+gbBhF0M0ui6t9iFOr76TFZS7vDOwErFf4oelMTvpoSn+OAVaIrtRJNq2kNBZ3UyCtYktvYC36pp6TcLG5c/9i8V7jm1CqhwPYt3W0LWTJ/jkXFA1aL5zCHdjeKHzBCymhprZ7fFY8BFgcOC7mspWjt/KYPcinJQ9VHVt8m9IyYFPQz77ZCBuHAcXPuN9i74v+wGhf8GPFKJZKsxd9MpTQueeceDNJ22W4D2Smn0W2dk1HpqQ02gZYIx61imlUvox3sHmzt5JNsuuVEiCyycKqiLzbFtzpCkoCxhpnQffpsJbuLZcUENlhjXyvDZD04Zx9o+5JTw1NzVvdN5YOQOp6oDbfZJGANk3eU2yMmymqhPXhQGDXkFFf8Oxrmt472i461t/HDcpYnR+X8QkoFchOQJmAkpdwE6ZU4PQftHwfNuGM/aIAAAAASUVORK5CYII=)
c=abs(p).^2; % Squared moduli of the filter poles
g=sort(c(1:2:length(c)));
bet0=g(2:2:length(g)); % Selecting beta coefficients for A0(z)
bet1=g(3:2:length(g)); % Selecting beta coefficients for A1(z)
P0=poly(-bet0); % Allpass branch A_0(z)=Q0(z)/P0(z);
Q0=fliplr(P0); % Allpass branch A_0(z)=Q0(z)/P0(z);
P1=poly(-bet1); % Allpass branch A_1(z)=Q1(z)/P1(z);
Q1=fliplr(P1); % Allpass branch A_1(z)=Q1(z)/P1(z);
Generating the test signal x
x = [zeros(size(1:100)),ones(size(101:250)),zeros(size(251:511))];
Signal decomposition
xx=x/2; % Scaling the input signal by 1/2
x0=xx(1:2:length(xx)); % Down-sampling, branch A0
x1=[0,xx(2:2:length(xx))]; % Down-sampling, branch A1
v00=filter(Q0,P0,x0); % Filtering with A_0(z)
v11=filter(Q1,P1,x1); % Filtering with A_1(z)
v0=v00+v11; % Lowpass output
v1=v00-v11; % Highpass output
Signal reconstruction
w00=v0+v1; % Input to A_0(z)
w11=v0-v1; % Input to B_0(z)
u00=filter(Q1,P1,w00); % Filtering with A_1(z)
u11=filter(Q0,P0,w11); % Filtering with A_0(z)
y0(1:2:512)=u00; % Up-sampling, branch A_1
y1(1:2:512)=u11; % Up-sampling, branch B_1
y0=[0,y0(1:511)]; % Inserting delay z^(-1)
y=y0+y1; % Reconstructed signal
Displaying decomposition and reconstruction of the test signal x
plot(1:511,x), ylabel('x[n]')
title('Signal decomposition and reconstruction')
plot(0:255,v0),ylabel('v_0[n]')
plot(0:255,v1),,ylabel('v_1[n]')
plot(0:511,y), xlabel('Time index n'), ylabel('y[n]')
disp('END OF EXAMPLE 12.2')
12.1.3 Orthogonal Two-Channel FIR Filter Banks
Remainder
The analysis/synthesis filters are nonlinear-phase halfband FIR filters whose transfer functions
,
,
,
are related in such a manner that the overall analysis/synthesis bank is an alias-free filter bank satisfying the perfect-reconstruction property. The transfer functions of the lopass filters
and
, [
and
] satisfy the mirror-image symetry
,
where N is the filter length, an oddnumber.
The transfer function of the lowpass/highpass analysis filter [
,
] of the orthogonal filter bank are related by The analysis/synthesis filters are related as follows
Example 12.3
In this example, we design the orthogonal two-channel filter bank with the analysis filter pair [
and the synthesis pair [
]. The filter length is N = 18, and the passband edge frequency of lowpass halfband filters is
.
The MATLAB function firpr2chfb returns the impulse responses
for the input parameters Computing the impulse responses ![](data:image/png;base64,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)
[h0,h1,g0,g1] = firpr2chfb(N-1,0.4);
Display the impulse responses ![](data:image/png;base64,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)
title('Impulse responses h_0[n], h_1[n], g_0[n], g_1[n]')
Computie and plot the gain responses of the analysis filter pair [![](data:image/png;base64,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)
[H0,f]=freqz(h0,1,1024,2);
[H1,f]=freqz(h1,1,1024,2);
plot(f,20*log10(abs(H0)),f,20*log10(abs(H1)),'b','LineWidth',1); grid
title('Two-channel filter bank')
xlabel('\omega/\pi'), ylabel('Gain, dB')
Verification of the perfect-recponstruction property of the analysis/synthesis filter bank
t = (conv(h0,g0)+conv(h1,g1))/2;
xlabel('Time index n'), ylabel('t[n]')
title('Impulse response of the analysis/synthesis filter bank' )
axis([0,2*(N-1),-0.2,1.1])
disp('END OF EXAMPLE 12.3')
Example 12.4
In this example, we use the function wfilters from the Wavelet Toolbox to construct four filters of the analysis/synthesis bank. We show the design and performances of the two-channel orthogonal filter bank based on Daubechies' db5 wavelet.
For the analysis/synthesis filters, we use notations from the Wavelet Toolbox:
- Lo_D, Hi_D for the analysis filters
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAAAmCAYAAAA4AlIkAAAJzUlEQVR4Xu2cBahuSxmGn2sHdmF3F3YHdnd3d4vdeu3CDhS7Cwu7OzFRUQwsxMIOLJ7DfDLMWbNmZv2x2ex/YHM5/1pT73zzfrnuEezaDoENInDEBsfeDb1DgJ2A7YRgowjsBGyj8O4G328CdmLgAsDHgP8sOL7TAqcGvgD8d0H//dxlVeyOBVwW+BTwt14g9pOAnRW4N/BE4Fe9GyzeOwpwC+DowGuAfy0cZ791Wwd27vk8wK2BpwK/6wFhvwjY2YEHAI9eQbgCD/d8M8AbeRCEbJ3YieE5gdv1CtmcgB0buDlwCeCmwPEyif0m8HbgFcBP0u+nB24JXA+4SPaukv5K4MXA93ukvnjnZMBzgJcAn1jQf6qLe5MJ3wN8dE1jlsNcEbgCcEPAQ44mHm9Jfx9JPwbWVwNuXAzku68C3rtgnZvAzmV4Qc8EPK2lBXoY7DjpgO+UNvhO4K4zTKKN9CZAWv4lcKsVDvGoibmOCTyltZnBA/DQpfr7AT8e7Dvy+m2SgNjHy3jbmYtyAuAF6aL6/qNW2PcmsfNCPAt4P6A8VNsSAfNGyl61dnHgg4nx3gHcEfj9yIlk754beB5wd+B7C8eodXPv9wdOCDwO+Peax4/hcgF7LvBg4B+VuU6U1PY10+VUG3xx4bo2iZ1LumgyWe6c1jq5zB4BOxXwOuDygKrxJsB3ZzYtu6kObU9Ot3DJ4XkDHwMcbYUxWmdzPuBFwF2Ab7deXvDcPTwBeFjqK3u9emYc1/PWxP4fT0z2i4Xzbho7TSbZVrPl5XO3uLX+SwHvS4zk5lWVf6h0kjqfnVSor1wXeFdrgspzbbrXA48FPrRwjFa3AOlrad3rDl2cNDGStpXmwrWBr8wsShv2tem5OD4U+GdrExPPt4Gd00omV53TUj0MljOSNoHGce0gcrb7enIOlqq26yQK1qD8wQKQe7vILhdsXJzescr3ckbSXtHF/01lsJLttF3VHEvatrDTHHpjcmQmL05LwEYZKWc7QwD3BP60AKEAW0dhjjEXDH1YFw/jyA7Vv2SuEUbK2U5v+0bANxZMuk3sgin18CdVf0vAYoBLAj2MpNGsd2EzbiXNL2mhurztLTVx3GSkn3dmIu0rY2h/nnjnQsC7k3e3TlV8jOQBiomtxUixjlMmO2zpxRrBTmF8IGBIpdZU7Q8HpmxBvd6XpfCT2u0wW7slYFdOHqGTtxgpNqYakLWuDnxmiXQBxm+0vz6ZjOS5YQw3GBY5f+Ul00K3B75TeR79vRhzBvjoVnJzoYeRRkyRubWMYJez5tSYrbBKaDgF9b7AX8tB5gTMZ4/oOOCphX02pWQiCDt6OHHoenjS71xTxWlEe4N+m70os+nBGaeZC9CeJdkRvuf762q5uTA65irO0Qh2suZDUujEswrbWs9dDfQz4A0zNrfZkGcCZ04eb47/oT3PCVjQn7aAjGT866szSF0jYwCFQtXQnRQtxg2Qnt4wdM0t3i2xbO4I9ALktCdJc8i26xSw3Fx4PGAMrNZMwqtqPPAeU6SH0VvYOYZZA4Xoc9mAyoQZnNMkc6eVr/Vie5m0N4cE7BzAmwFtm1ZMpvSAPPQW86wLpClWHgFoEwJWZj+u0gi1jJgiLTbsvZy1cS6XwksKzl9akyXNsUjAVD2RBmjFZHrjPd7UR2aU623Rg/tphcF6VGSJwShAcSDacQaG19Fy56hlLpSmyJxzJGO7PwPDxgenQkAjKrLcq4lsjX5No56KlbDBZDtt78MyNjUVORqTyT2gWrzHxZscN32k3ra5meunxeWJ8BFDNQdpFCD7rnrjpwQyZ6SWuVCaIlPOkeekE2PKTJPFC2kBwpSALcXuFCnG6dnUHKJyryFg/j5pEtUErJeRYsJWeshktZn3iyX9/qPUMQ7XSgFTG6HvR1ztWMMSgOwrvX86MYNe66pthJGcqyc95Jhi6H/VJgY4awK2BLteh6jEJsyLz6dQ0WEB+JqA9TBSTFYGY428q27yFoL0pcKdDTDOVgheHJK3ticetBQg1+hBPSiVoKwjY9DDSDk2eTD2hYnV/16R8sB6TsBGsRtxiMplhQeuQ1Ge+aF3awLWYqR8otzeqMV7PERTClYt+BeS7vwyl3+la66aceG1mxprWAWgMAUMbt6rYtR6qLrjetItj6qXkWLtZTC25Rz1CJhj92I36jGWAuY81urpjU4WC0wJ2Gh6KLc3asnwcNmNppehAL0V3fjSuPXQDXxq6NfKg1YFKEwB1z1VERB2o6rdMIalR63c6kh6KA/G9iTDewWsBzuFZdQhygUsmNIYWO1yTjKYNoFsI7ixiJptomrSJrAmyGYsZyqiG0I0dUNrwhf1WjJkrYZKgKz2tCmExppGigdNkbg2S4Cn+uXC4hytZP/xU/2aNWC2krHLA3J8MyS2nlKoXgHrwS4uj/leowUykbnP3ooShdhKZdV6tegwZzANNlWj4OQlvm7ckhtLdw0C2qI82gj6ZTLUVCOWIeuaGwGOwNucgIU6nmK3M6R4mm7zlwt+ztklHuVpIfem2vVP1vxh0T8cj2+lizEFrDhY8xS5uppHqKo1EH2HVL4SU0V59IeT92yuLsqjrwRcqyhF94sd86HiHVjny+4VMPvMYadD5F7EJlqZFtLOkyz0Kkvs7XOD1N8Pcf5YYPv/f7ZykbV+o78vUZHOESrQMmzjZ1EJajzI4KXCYTDQmJ0hD4PCXgSF1iyC4NwjGfClEeonWD4ToF93bMiLd7pGuVLHMCu9MiJgNexcgKTgnn+ePkUzXeRvmgEm5WVzy5ielBLdZXzw5MDzE+vN5pu3JWARtB0x8uMkBNXaeVlR1V1rqmsDkAriS1NYJGJsqsA8L+oNViU8o3I7yzkc24CwcbwlJTQrSVXWeUTA7NaLnWwuA6tFLNG2ekLVqf2rGs9rvXSqvMx6upoksyp1WwJWC1NESsWvkOa8RT8a9ZZpr8hac007yNvoN3wKlSonz5EJuh96qE79gLdlc6zipa5LsPLL1oqDlXOOYCc2OjQXTlF5g+ayXDTlRbPoXInBat8WbF1FekOshL10Ee86Y7LVPOy5jyFcsEB5czTm58qO5w5VAFWJ3lIrLFrCZXjiPskA/8DCr8nXKWSjDBZzrwM7hcvyaG1fDfumcIWNs04A5sYKo9xwgN6mC9aIlLnm6rXyMRVUvZe8tGRk/YYlHCO/lSP99/rdXsafWueq2Nlfx8FYZ/f/tmFbKjI2rF5X1UXAUvWjfbXkg9y9Puxtz+8FVT15KfXiNbzflrzNngDwttd7aL5tC9iebHI36d4hsBOwvcP+QMy8E7ADccx7t8mdgO0d9gdi5p2AHYhj3rtN/g9q/KVFb5PffgAAAABJRU5ErkJggg==)
- Lo_R, Hi_R for the synthesis filters
Set the wavelet name
% Compute the four filters associated with wavelet name given
% by the input string wname.
Design the four filters associated with the selected wavelet name
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters(wname);
Plot the impulse responses of decomposition and reconstruction filters
N=length(Lo_D) % Filter length
subplot(221); stem(0:N-1,Lo_D);
title('Decomposition lowpass filter');
subplot(222); stem(0:N-1,Hi_D);
title('Decomposition highpass filter');
subplot(223); stem(0:N-1,Lo_R); xlabel('n')
title('Reconstruction lowpass filter');
subplot(224); stem(0:N-1,Hi_R); xlabel('n')
title('Reconstruction highpass filter')
Display the pole/zero locations of decomposition and reconstruction filters
title('Decomposition lowpass filter');
title('Decomposition highpass filterThe');
title('Reconstruction lowpass filter');
title('Reconstruction highpass filter');
disp('The pole/zero plots illustrste the following properties:')
The pole/zero plots illustrste the following properties:
disp('The 5th order zero at the point z=-1 for the lowpassfilters')
The 5th order zero at the point z=-1 for the lowpassfilters
disp('The 5th order zero at at the point z=+1 for the highpass filters.')
The 5th order zero at at the point z=+1 for the highpass filters.
disp('The analysis part is composed of:')
The analysis part is composed of:
disp(' -the maximum-phase lowpass filter and')
-the maximum-phase lowpass filter and
disp(' -the minimum-phase highpass filter')
-the minimum-phase highpass filter
disp('The synthesis part is composed of:')
The synthesis part is composed of:
disp(' -the minimum-phase lowpass filter and')
-the minimum-phase lowpass filter and
disp(' -the maximum-phase highpass filter.')
-the maximum-phase highpass filter.
Computie and plot the magnitude responses of the analysis filter pair [![](data:image/png;base64,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)
[HLo_D,f]=freqz(Lo_D,1,512,2);
[HHi_D,f]=freqz(Hi_D,1,512,2);
title('Tho-channel filter bank')
xlabel('Normalized frequency \omega/\pi'), ylabel ('Magnitude')
plot(f,abs(HHi_D),'b'),grid
Impulse response of the analysis/synthesis filter bank
stem(0:2*(N-1),conv(Lo_D,Lo_R)+conv(Hi_D,Hi_R))
title('Impulse response of the analysis/synthesis filter bank')
xlabel('Time index n'), ylabel('t[n]')
disp('END OF EXAMPLE 12.4');
12.2 TREE-STRUCTURED FILTER BANKS
Remainder
An approach for constructing a multichannel filter bank is based on a tree structure, which uses the two-channel filter banks as building blocks. With the use of this approach, the multichannel filter banks with uniform and nonuniform separation between the channels can be generated. If the two-channel filter bank satisfy the perfect-reconstruction (nearly-perfect reconstruction) property, the overall tree-structured filter bank also satisfies the perfect-reconstruction (nearly-perfect reconstruction) property.
For the sake of simplicity, we use in this section the symbolic representations of the analysis and synthesis two-channel filter banks as shown in the Figure. The single-input/two-output device
symbolises a two-channel analysis filter bank, and two-input/single-output device
symbolises a two-channel synthesis bank.
Symbolic representation of two-channel bank: (a) Analysis bank. (b) Synthesis bank.
12.2.1 Filter banks with equal passband widths
Remainder
A two-level four-channel analysis/synthesis filter bank is indicated in the next Figure, which illustrates how the tree structured filter bank is developed. The output y[n] represents the reconstructed signal. The reconstructed signal is delayed replica of the input signal x[n] under the following conditions:
- The processing unit is omited from the structure, i.e., outputs of the analysis bank are connected directly to the inputs of the synthesis bank.
- The analysis and synthesis two-channel filter banks
and
satisfy the perfect-reconstruction property.
Example of the two-level four-channel filter bank
The single-stage equivalent of the four channel filter bank is shown in the next Figure. Recol that this single stage equivalent which coresponds to the four channel uniform filter bank is developed from the Third and Sixth Identities, see Examples 2.5 and 2.6.
Single-stage equivalent of the two-level four-channel filter bank
Example 12.5
In this example, we use the two-channel orthogonal filter bank of Example 12.3 to construct the uniform four-channel filter bank using the tree structure. Here, the MATLAB function firpr2chfb computes the coefficients for the analysis/synthesis filters of the two-channel filter banks.
Setting the filter lengths
Design of the two-channel filter bank for perfect reconstruction
[h0,h1,f0,f1]=firpr2chfb(N-1,0.4);
Computing and plotting magnitude responses of the analysis filter pair
[H0,f]=freqz(h0,1,1024,2);
[H1,f]=freqz(h1,1,1024,2);
plot(f,abs(H0),f,abs(H1),'b');
title('Two-channel bank')
xlabel('Normaliyed frequency')
Computing the impulse responses of the four-channel analysis filter bank
hh0 = conv(h0,upsample(h0,2)); % Impulse response, 2nd level
hh1 = conv(h0,upsample(h1,2)); % Impulse response, 2nd level
hh2 = conv(h1,upsample(h0,2)); % Impulse response, 2nd level
hh3 = conv(h1,upsample(h1,2)); % Impulse response, 2nd level
% Analysis filters frequency responses
Computing the frequency responses of the four-channel analysis filter bank
[HH0,f] = freqz(hh0,1,1024,2);
[HH1,f] = freqz(hh1,1,1024,2);
[HH2,f] = freqz(hh2,1,1024,2);
[HH3,f] = freqz(hh3,1,1024,2);
Computing and plotting the gain responses of the four-channel analysis filter bank
plot(f,20*log10(abs(HH0)),f,20*log10(abs(HH1)),f,20*log10(abs(HH2)),'g',...
Computing the magnitude distortion function ![](data:image/png;base64,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)
T= abs(HH0).^2+abs(HH1).^2+abs(HH2).^2+abs(HH3).^2; % Verification of the power-complementary property
plot(f,T), xlabel('Normalized frequency \omega/\pi'),ylabel('|T(e^j^\omega)|')
Comment:
- The bottom subfigure shows that
is a constant and therefore, confirms the magnitude-preserving property of the overall analysis/synthesis four-channel filter bank. - The two-channel filter banks are linear-phase FIR filters , the overall filter bank is also of linear phase.
- Accordingli, the four-channel filter bank satisfies the perfect-reconstruction property.
disp('END OF EXAMPLE 12.5')
12.2.2 Octave Filter Banks
Remainder
An octave filter bank is a multilevel filter bank generated of the two-channel filter banks. Development process of an analysis bank is indicated in the Figure bellow, which displayes an example of the four-level five-channel analysis filter bank. The next Figure illustrates a typical magnitude response of an octave filter bank.
Generation of the orthogonal four-level five-channel analysis filter bank.
Magnitude responses of the example five-channel orthogonal filter bank.The octave bank is constructed by using the orthogonal two-channel filter bank of Example 12.3.
The structure of the synthesis octave bank for the case of four-level five-channel filter bank is indicated in the next Figure. The overall bank is composed of the two-channel synthesis filter banks.
Generation of the orthogonal four-level five-channel synthesis filter bank.
In two examples that follow, Example 12.6 and Exanple 12.7, we demonstrate how the process of signal decomposition and reconstruction is developed through the four-level analysis/synthesis octave bank.For the investigation purposes, the synthesis bank is connected to the analysis bank through delays that are appropriately entered between them, as shown in the Figure.
Analysis/synthesis four-level octave bank.
Example 12.6
In this example, we use the orthogonal two-channel filter bank of Example 12.3 to construct the four-level five-channel analysis/synthesis octave bank. The filter bank is used to perform the decomposition and reconstruction of the rectangular shape signal.l
Design the analysis/synthesis ortthogonal two-channel filter bank using the MATLAB function firpr2chfb for designing the analysis and synthesis filters
,
,
and
of the length N = 18. N =18; % Setting the filter length
Computing the coefficients of the analysis and synthesis filters.
[h0,h1,g0,g1] = firpr2chfb(N-1,0.4);
Generating and displaying the test signal x
x=[zeros(size(1:20)),ones(size(21:50)),zeros(size(51:511))];
plot(x), title('Test signal'),xlabel('Time index n')
Analysis part: signal decomposition
Level 1;
Level 2
Level 3
Level 4
Displaying the results of the signal decomposition
ylabel('v_1[n]'),axis([0,256,-0.2,0.2])
title('Signal decomposition')
ylabel('v_2[n]'),axis([0,256,-0.2,0.2])
ylabel('v_3[n]'),axis([0,256,-0.2,0.2])
ylabel('v_4[n]'),axis([0,256,-0.2,0.2])
ylabel('v_5[n]'),xlabel('Time index n')
Synthesis part: process of signal reconstruction
Level 4
y3=filter(g0,1,w04) + filter(g1,1,w14);
Level 3
w13 = [zeros(size(1:N-1)),v3(1:length(v3)-(N-1))];
y2 = filter(g0,1,yu3) + filter(g1,1,w13);
Level 2
w12 = [zeros(size(1:3*(N-1))),v2(1:length(v2)-3*(N-1))];
y1 = filter(g0,1,yu2) + filter(g1,1,w12);
Level 1
w11 = [zeros(size(1:7*(N-1))),v1(1:length(v1)-7*(N-1))];
Reconstructed signal
y = filter(g0,1,yu1) + filter(g1,1,w11); % Reconstructed signal
Displaying the process of the signal reconstruction
ylabel('y_3(n)'),axis([0,512,-0.2,1.2])
title('Signal reconstruction')
ylabel('y_2[n]'),axis([0,512,-0.2,1.2])
ylabel('y_1[n]'),axis([0,512,-0.2,1.2])
ylabel('y[n]'),xlabel('Time index n')
disp('=================================================================')
=================================================================
disp('Reconstructed signal y is a delayed replica of the test signal x.')
Reconstructed signal y is a delayed replica of the test signal x.
disp('=================================================================')
=================================================================
disp('END OF EXAMPLE 12.6')
Example 12.7
In this example, we design orthogonal two-channel filter bank using the Daubeshies db9 wavelet, and compose the four- level five-channel analysis/synthesis octave bank. The MATLAB function wfilters(wname), with wname = 'db9', computes the coefficients of the analysis/synthesis filters
,
,
and
. We use this filter bank to perform the decomposition and reconstruction of the rectangular shape signal. Generating four filters for the orthogonal filter bank
Set wavelet name:
Design the four filters associated with wavelet name given by the input string wname.
[h0,h1,g0,g1] = wfilters(wname);
N = 18; % The length of db9 filter
Compute and plot magnitude responses of the analysis filters
and ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAAmCAYAAACI0bZTAAAFX0lEQVRoQ+2Zd8h/UxzHXz8jKyMjWfEHISskK6NEKCv62St7ZWVlh2xCMiIre2UUUVYoQmaIRFaykhVZvepz6nafe8859/s8PTz6nnp66ns/53M/533en8/nfc6dxXgUEZhVtBgbMAapggRjkP6HIC0KrA08DfxVsb62yXLAMsBLwN+182cSk1YCjgLOA76qXWDLbg5gD2Bu4Dbgjxo/MwWklYHjgDMmAVDCwzXvBsxbC1QOpPmA3YENgV2BBRuovwU8ANwEfBK/Lw/sCewIrNew/Q64GbgW+KBm51o2SwBXANcBz44wv2uKa5ORjwJPlXzWMGn+CPLAcPYQcEhmR60ZdwOmx5fAXjWB9AQ6ZzBoHuCC2vQoLTqey84LgWOAj3NzRgFp52BRn98NgCeCeQ8CBwDfVwbeNlsNuAo4DHh/RB9901z7scAiwNnAnznD0ruXBm4HNgdMs9nAe5lJsszUcpwPnJ4LIONHFp0JzDUJH6W1rQlcAxwMvDMZkDYGHgtm3AeYdj/0ODTXL4901GQH4OFSpD3PrXF3AGcBT47oozTNOns18HrE3SkLatKtyQxZYcHr0xhN1r0RBX/UNNk+upmd6MPSaifx/BRgndzml0Aayowm69QhRwA/jrAAU+2cKP455o7gesIUN+PcXBkpgZQovxFQwwwL4WURhrrG1BtlpDT4BjgZ+D3jZIEovGtkbKw3aqyfOmzWBR4B9u1L6xJIW0an0neJGWlhewd7tgFeGAUhQG1kPXouGJVzYytXcqzVY+QRZH/g3Z7nab6be2uXTQ4kn51aEWSX3xdD/iehORSrFLidRxGZG6bL1tEBv20YyjBTVl2XE6ErAneFnfYTRg6khYEbgF2CGeqj1zLRbtvYCRdm6v06FJ2wTyBdHPKjz41nsUOD7c3irmww3T8D7iwcZheLd8j6wSCtAtwDmOvPxJHji55oU6G1UzgMvMSAmhQqgdS38R6nlo36WDrETgokaSxVHRbgXAFdPGqWtPcosh3wag8K7v5mIeDUQF0SYUi6tV+jb/WZcuXnCiand1nXFL/V6dZmhucvVXffSB1iKeBxwOJtZ2oOU9vi6hHDFP40o6OGFO7mO1YFjo9aWnudUkztvpo0hBkGWXMU8V0eVP0vMz3jebvQxaQhEiCBtGQI3Usznaxrk9V2zwe77abVTKphRnLWFpwqZKnbN5J9DqTUWWVejZis7WRdMblRJ8QdU6ey72NSDTPSC5uC0/siU+nNSYLkdDWahbuPbekVQzpZO6xUViwTR/bVsC6Qhh5FmoKzdAA2yBomaWfgiju1khd8fZkwpJO1faSyYtw39m1sF0heHyiuLIIOu0VnrgLS3PpyUNiqq44GfpkCJqX7Hpl6IvBbh09juyV+F8grSxdoLR9bRBfcLzevCZJ6wTTbB7Dip+Edktcd98b5zd/TVa0tf5OGrYdZr0RV3Iq4pgJOZrVM0n6F0Fsq/1daC3QTvT5ev/F78wji2pQC/ikSP2rNt4lcBLwdorn360np7JYhxMiPhoBkfKaTV8KnNdik1toqFqgWUtPZ+hW+bqabrdq30x0eRbndTDaNZ36B+Tq3mv86SKmGeRctOy0DfcPU94ZRMK8PluwUms10ap4jlQt+XLikg6ET/M8EkAzaj5Inhao3PXJjoSgBqwcw3mo2014me/lvavqRs/iRcqaAlIAypSzQfUeeUg0QINPr5bgZKAKkw38DpPSJym9zJQ3UXrTFVmlg6lQtsOXAlq+Pz0toNp9PN0h2JDuiMsEO6YHy/uiapdP6kHVNqe10gzSlwU+XszFIFUiPQRqDVIFAhcmYSRUg/QOjfTk2kSyRfAAAAABJRU5ErkJggg==)
[H0,f]=freqz(h0,1,512,2);
[H1,f]=freqz(h1,1,512,2);
plot(f,(abs(H0))/sqrt(2),'b',f,(abs(H1))/sqrt(2),'b'), grid
xlabel('Normalized frequency \omega/\pi'), ylabel('Magnitude')
Generating and displaying test signal x
x=[zeros(size(1:20)),ones(size(21:50)),zeros(size(51:511))];
xlabel('Time index n'),axis([0,512,-0.2,1.2])
Analysis part: signal decomposition
Level 1
Level 2
Level 3
Level 4
Displaying the results of the signal decomposition
ylabel('v_1[n]'),axis([0,256,-0.5,0.5])
title('Signal decomposition')
ylabel('v_2[n]'),axis([0,256,-0.5,0.5])
ylabel('v_3[n]'),axis([0,256,-0.5,1])
ylabel('v_4[n]'),axis([0,256,-0.5,0.5])
ylabel('v_5[n]'),xlabel('Time index n')
Synthesis part: Signal reconstruction
Level 4
y3=filter(g0,1,w04) + filter(g1,1,w14);
Level 3
w13 = [zeros(size(1:N-1)),v3(1:length(v3)-(N-1))];
y2 = filter(g0,1,yu3) + filter(g1,1,w13);
Level 2
w12 = [zeros(size(1:3*(N-1))),v2(1:length(v2)-3*(N-1))];
y1 = filter(g0,1,yu2) + filter(g1,1,w12);
Level 1
w11 = [zeros(size(1:7*(N-1))),v1(1:length(v1)-7*(N-1))];
Reconstructed signal y
y = filter(g0,1,yu1) + filter(g1,1,w11); % Reconstructed signal
Displaying the process of signal reconstruction
ylabel('y_3(n)'), axis([0,512,-0.4,3.4])
title('Signal reconstruction')
ylabel('y_2[n]'),axis([0,512,-0.4,2.4])
ylabel('y_1[n]'),axis([0,512,-0.4,2.4])
ylabel('y[n]'),xlabel('Time index n')
disp('=================================================================')
=================================================================
disp('Reconstructed signal y is a delayed replica of the test signal x.')
Reconstructed signal y is a delayed replica of the test signal x.
disp('=================================================================')
=================================================================
disp('END OF EXAMPLE 12.7')
disp(' END OF CHAPTER 12')