# Digital Signal Processing of the Inharmonic Complex Tone
## 2 DSP Algorithms Used for the Analysis of String Instruments' Recordings
### Digital Filter Bank  
A digital filter bank is used to decompose the signal into subchannels. The goal is to provide insight into the time and frequency parameters of each partial separately. Although any set of filters can be used for this task [2], the designated filter bank has the advantage of being doubly complementary (both all-pass and power complementary) [24]. The filter bank can be multirate [25] or single-rate. The output signals and subchannels are not decimated, allowing users to listen to each subchannel with the same playback sampling frequency as for the original signal. The double complementarity of the proposed bank enables the reconstruction of the input signal by simply summing all subchannels. A filter bank is designed as a tree structure, a cascaded connection of doubly (all-pass and power) complementary two-channel filter banks [26; 27], as shown in Figure 1 for the four channels. The number of subchannels can be arbitrarily large. In the proposed application, with additional all-pass filters (\(A_{02}(z)\) and \(A_{03}(z)\) in Figure 1, this structure preserves the double complementarity property. The sum of the channel signals \(\{x_{n0}[k]\}\) is equal to the input signal filtered by the cascaded connection of all-pass filters:  
\[A_{0 total}(z)=\prod_{n=1}^{N+1}A_{0n}(z), \tag{4}\]  
where \(N+2\) is the number of channels. The final block in each channel is the phase correction block. It is implemented by inverse filtering of subchannel signals by the \(A_{0 total}(z)\)[28]. With this additional phase correction block, the sum of all outputs of all channel signals is a zero-phase all-pass filtered input signal. In theory, it means that the input signal is completely restored by the sum of all channels. The only different samples are at the end of the signal and cannot be completely avoided due to limitations of the zero-phase filtering. The proposed application is developed for off-line processing of a prerecorded signal, and the proposed phase correction can be easily implemented. The proposed method preserves the time differences in the signal components. Additionally, it allows modifications to the signal, such as canceling one of the channels or similar simple manipulations. Each two-channel filter bank is obtained by spectral transformation of the prototype half-band filter bank [24; 29]. The prototype low-pass filter is designed as an odd-order Butterworth filter or an Elliptic minimal Q factor filter (EMQF) [30; 31]. Poles of the real coefficient half-band low-pass transfer function \(H_{LP}^{HB}(z)\) are located on the imaginary axes. One of them is located at the origin, and the remaining poles are complex conjugate pairs. In that case, the complementary filter pair, low-pass \(H_{LP}^{HB}(z)\) filter, and high-pass filter \(H_{HP}^{HB}(z)\) can be implemented as a parallel connection of two all-pass filters, \(A_{0}^{HB}(z)\) and \(A_{1}^{HB}(z)\)[31]:  
\[H_{LP,HP}^{HB}(z)=\frac{A_{0}^{HB}(z)\pm A_{1}^{HB}(z)}{2}. \tag{5}\]  
All-pass branches consist of a cascade connection of simple all-pass second-order sections, with additional delay corresponding to the origin located pole in the \(A_{1}(z)\) branch  
\[ \begin{split} A_{0}^{HB}(z)&=\prod_{m=2,..,..}^{(M+ 1)/2}\frac{\beta_{m}^{HB}+z^{-2}}{1+\beta_{m}^{HB}z^{-2}},\\ A_{1}^{HB}(z)&=z^{-1}\prod_{m=3,..,..}^{(M+1)/2} \frac{\beta_{m}^{HB}+z^{-2}}{1+\beta_{m}^{HB}z^{-2}},\end{split}  \tag{6}\]  
where \(\beta_{m}^{HB}\) is the square of the pole \(r_{m}^{HB}\), \(m=2\), \(3\), \(\ldots\), \((M+1)/2\), and \(\beta_{m}^{HB}<\beta_{m+1}^{HB}\). The odd half-band filter order \(M\) is calculated based on the values of the required stop-band  
Figure 1: Structure of the multichannel double complementary non/decimated filter bank (example with four channels). Each level consists of a low-pass \(H_{LPq}\) and a high-pass \(H_{HPq}\) filter pair with the crossover frequency \(\omega_{qq}\).