# Digital Signal Processing of the Inharmonic Complex Tone
## 4 Experimental Results
### Large Number of Channels  
This experiment demonstrates the design of the filter bank with a large number of channels. The number of filter bank channels is adjusted to match the recorded hargchord signal, which features a \"rich\" spectrum with many prominent partials, as shown in Figure 15. The value of the inharmonicity coefficient \(B\) is small (1.8 \(\times\) 10\({}^{-5}\)), but due to the large number of channels, the positions of the higher partials deviate significantly from the harmonic sequence, so it was necessary to create a bank with a large number of channels. The target number of channels was 90.  
Figure 14: The spectrum \(X_{0}\) of the recorded signal, the spectrum \(X_{1}\) of the signal with the first (fundamental) partial removed, and the spectrum \(X_{12}\) of the signal with the first two partials removed.  
Figure 15: The spectrum of the recorded hargchord signal. An example of the spectrum of a real recorded signal with a large number of partials (more than 70).  
The filter bank design was repeated for the required number of prominent partials from 10 to 90, with a step of 10 and with the same prototype low-pass half-band filter. The time required for the bank design and the time for processing all channels were measured. Each design (for a certain number of partials) was conducted ten times, and the mean value and standard deviation for each design were calculated. It should be noted that the computational cost for the specific design is the same for each trial; however, the experiment is performed on a notebook computer, and variations in time are unavoidable in the standard mode of processing. In Figure 16, the mean values and standard deviations of the time needed for the filter bank design are given. The diagram confirms that the filter bank design is efficient and fast. The relatively high standard deviation is expected due to the quite low processing time. The processing time depends on the number of channels, as expected.  
In Figure 17, the mean values and standard deviations of the time needed for the processing of the signal by the entire bank (all channels) are given. The processing time depends on the number of channels and the length of the input signal. The values presented in the diagram are for a signal length of 2 s. The processing time depends on the number of channels, as expected. The bank is implemented as a tree structure (Figure 1), and the dependence of the processing time on the number of channels is not linear. In the current version of the MuPI_B submodule, filtering is implemented using the MATLAB filter function, where each filter is realized as a parallel connection of two all-pass filters. Each all-pass filter is implemented as a cascaded connection of second-order sections. The result of this operation is a matrix of size \(K\times(N+2)\), where \(K\) is the signal length (in samples), and \(N\) is the number of prominent partials set by the user.  
Figure 16: The execution time of the filter bank design (dependency on the number of bank channels). Mean value and standard deviation are shown. Note that the timescale is in milliseconds.  
Figure 17: The execution time of the filter bank implementation (dependency on the number of bank channels). Mean value and standard deviation are shown. The input signal is the selected segment of the recorded signal, and the output is an array of signals, one for each channel.