Abstract

Affine projection (AP) algorithms are commonly used to implement active noise control (ANC) systems because they provide fast convergence. However, their high computational complexity can restrict their use in certain practical applications. The Error Coded Affine Projection-Like (ECAP-L) algorithm has been proposed to reduce the computational burden while maintaining the speed of AP, but no version of this algorithm has been derived for active noise control, for which the adaptive structures are very different from those of other configurations. In this paper, we introduce a version of the ECAP-L for single-channel and multichannel ANC systems. The proposed algorithm is implemented using the conventional filtered-x scheme, which incurs a lower computational cost than the modified filtered-x structure, especially for multichannel systems. Furthermore, we present an evolutionary method that dynamically decreases the projection order in order to reduce the dimensions of the matrix used in the algorithm’s computations. Experimental results demonstrate that the proposed algorithm yields a convergence speed and a final residual error similar to those of AP algorithms. Moreover, it achieves meaningful computational savings, leading to simpler hardware implementation of real-time ANC applications.

1. Introduction

Active noise control (ANC) [1, 2] is a field that still presents challenges and open problems for researchers [3, 4], especially with regard to the limitations of the hardware used in its implementation. ANC systems are commonly developed using FIR adaptive filters; therefore, for real-time applications, it is very important to choose a suitable adaptive algorithm. One of the most widely used algorithms for this purpose is the filtered-x least mean square (FXLMS) algorithm [2]; however, its convergence speed is slow, which makes it unsuitable for some applications, especially for multichannel systems. The authors of [5] proposed the modified filtered-x LMS (MFXLMS) algorithm, which provides a slightly better convergence speed but at a greatly increased computational cost. Therefore, implementation of the MFXLMS algorithm for multichannel systems demands considerable computational resources, making certain applications unfeasible. Variants of the FXLMS algorithm that improve the convergence speed using a variable step-size are proposed in [6, 7]; nevertheless, they also require more computations. Other approaches enhance the convergence using different strategies such as convex combination of adaptive filters [8], adaptive IIR filters [9], training mechanism based on recursive least square algorithm [10], and the use of two adaptive filters [11]; however, those strategies involve a higher computational burden than the classic adaptive filters.

The affine projection algorithm (APA) [12] is widely used in ANC systems because it offers higher convergence speed than LMS algorithms and presents good stability and robustness. The APA updates the weight vector using the most recent input vectors instead of using the current input vector. The parameter is usually called the projection order; if it is increased, the convergence speed also increases, but the computational cost and final residual error (misadjustment) increase as well. Another critical concern is the several matrix inversions required during the process, which complicate the hardware implementation.

Several authors have published various strategies with the intent of improving the performance or reducing the computational burden of the APA in multichannel ANC systems. In [13], a fast affine projection algorithm called the MFXFAP-RLS algorithm is presented, which uses a modified structure and a sliding window; however, this method does not guarantee stability, and the use of the “modified filtered-x structure” increases the computational cost of implementation. Moreover, for small projection orders, its complexity may be similar to that of the APA, which is a great disadvantage since ANC applications typically function well for projection orders of lower than 5 [14].

Other proposed approaches use different strategies to decrease the cost of matrix inversion. In [15], a scheme based on the Gauss-Seidel method is used; nevertheless, it remains necessary to compute at least one matrix inversion, which may result in instability for large matrices. In [16], dichotomous coordinate descent (DCD) iterations are applied for coefficient updating; however, most variants of this approach are based on the fast affine projection (FAP) algorithm, and as mentioned above, for lower projection orders, the APA offers simpler implementation.

In [17], efficient versions of the FAP algorithm that incur low computational loads are developed. However, the recursive approach used for matrix inversion does not present any improvement over the original version for low projection orders and adaptive filters with few coefficients, and therefore, it is a good option only for long-length filters.

Some researchers have also proposed variable-step-size AP algorithms. Such modifications result in better final errors in the steady state, but the computational cost remains the same; furthermore, most of these proposals are intended for acoustic echo canceler applications [1721].

Considering the problems encountered when using high projection orders, algorithms have been proposed that dynamically adjust the number of input vectors used to update the coefficients [2225]. Algorithms of this type have a reduced computational burden as the process advances and achieve lower misadjustment. The authors of [26] presented a multichannel ANC system using variants of AP algorithms with a variable step size and a projection order that evolves. In [27], the error signal of the AP algorithm is encoded and the projection order is also calculated dynamically, the resulting algorithm is applied to a single-channel ANC system; the reported results in both works demonstrate the efficiency of those strategies; nevertheless, it is still necessary to perform matrix inversion to update the algorithm.

To overcome some of the problems mentioned above, [28] introduced the Error Coded Affine Projection-Like (ECAP-L) algorithm, which is an algorithm that does not require either direct or indirect inversion of the input signal matrix; moreover, the filter coefficients are updated only when the output estimation error is higher than a predetermined threshold, thereby considerably reducing the amount of computation required per iteration.

In this work, we present an efficient multichannel version of the ECAP-L algorithm for active noise control applications. To compensate for the negative effects of the secondary path in an ANC system, we use the filter-x structure; moreover, based on the schemes of evolving order algorithms, we develop a strategy to adjust the projection order in each iteration. The result is the new FXECAP-L algorithm with evolving order.

In Section 2, we describe the original ECAP-L algorithm and analyze its stability. The development of the FXECAP-L algorithm with evolving order for ANC is presented in Section 3. In Section 4, the computational complexity of the proposed algorithm is evaluated. Simulation results for single-channel and multichannel ANC systems are discussed in Section 5. Finally, the conclusions are outlined in Section 6.

2. Error Coded Affine Projection-Like Algorithm

The ECAP-L algorithm [28] is a good option for hardware implementation because its convergence speed is similar to that of the APA, it does not require matrix inversion operations, and the coefficients are not updated in each iteration. The filter coefficient update equation for the algorithm is given by where is the weight vector at moment ;is the input signal matrix consisting of the recent input vectors , where is the projection order; and the error vector is expressed aswhere is the input vector that contains the desired signal and the superscript denotes transposition. Here, the computational load is reduced through the error encoding, for which it is necessary to quantize the signal and then assign a digital code to each quantized sample. The error is encoded as follows:where round represents the quantization process, in which the obtained values are rounded to the closest integer, and Res is the encoder resolution and is determined by dividing the maximum probable error () by the number of quantization levels, as shown in

Here, is considered to be no larger than 90% of the maximum signal amplitude, and denotes the number of bits of resolution used. Using a larger number of bits provides more information on the error magnitude, which allows the algorithm to converge more rapidly, but if this number is too high, the amount of information to be processed may be too great, and the algorithm may diverge.

The step size is given by

As seen above, to calculate the step size, it is necessary to use the resolution; this is because of the effects of the quantization process. To analyze this issue, we substitute expression (4) into (1) to obtainwhere represents the quantized error. Now, by substituting (5) into (7), we can write the following:

From (8), it can be observed that the error magnitude and the step size are increased; therefore, to avoid a very large value of , the step size must be regularized directly with respect to the resolution.

The most important feature of the ECAP-L algorithm is the reduction of the computational burden, which is achieved through the use of a rule for updating the coefficients. This rule is based on the fact that an adaptive filter does not need to be updated when the error signal is small. As the adaptation process advances, the error magnitude diminishes, and if the encoded error is “0” or “1,” the filter coefficient is not updated. Thus, the update threshold can be defined as

3. Multichannel Filtered-X Error Coded Affine Projection-Like Algorithm for Active Noise Control

This section describes the modifications to the ECAP-L algorithm that are necessary to apply this algorithm for active noise control applications. The first issue to consider is the effect caused by the presence of an unavoidable system response at the adaptive filter output (secondary path), which will affect the algorithm’s performance. The filtered-x scheme is commonly used to overcome this problem because of its good convergence properties; moreover, it avoids the additional filtering process used in the modified filtered-x scheme, and therefore, its computational cost is lower.

Figure 1 shows the block diagram of an ANC system using the conventional filtered-x scheme, the main feature of which is the placement of a system with a response identical to that of the secondary path to filter the reference signal and update the algorithm. In this way, the misalignment between the error signal and the reference signal is compensated.

Incorporating the filtered-x scheme into the ECAP-L algorithm yields the Filtered-X ECAP-L (FXECAP-L) algorithm. To describe the FXECAP-L algorithm, the notation in Notations is used.

Then, the adaptive filter output is obtained as follows:withwhere adaptive filter coefficients are defined asand the common reference signal vector is defined as

In ANC systems that use the AP algorithm based on filtered-x structure the desired signal is unavailable in practice and only the error signal can be accessed. Therefore, it is necessary to use an approximation to estimate the error signal vector . The estimation can be done using past samples of the error signals [17]. Thus, the error vectors can be obtained as follows:

The prefiltering that is necessary to compensate for the effects caused by can be calculated usingwhere

Commonly, is a fixed FIR filter estimate of and generates the reference signals used to calculate the coefficient update equation for the multichannel FXECAP-L algorithm, which is described bywhere is a matrix whose columns are the current and previous vectors of the filtered-x signals given by

The step size is computed aswhere is a scaling factor in the interval that is introduced to facilitate convergence. Specifically, in the case of , we could use a value of 1 (i.e., no scaling factor would be required); however, for a larger mismatch between and , a smaller value of would be required.

3.1. Evolutionary Order

The performance of algorithms based on affine projection subspaces is related to the number of previous input vectors that are used to update the taps of the adaptive filter. With a larger number of input vectors, the convergence speed is increased, but the misadjustment is larger, and the computational cost rises. For this reason, several authors have proposed various approaches for modifying the projection order during the adaptation process [2225], with the primary purpose of reducing the computational burden.

In this work, we present a strategy based on the evolutionary method proposed in [23], in which the number of input vectors is adjusted dynamically according to a threshold established based on the instantaneous residual error power at each error sensor. In this way, the projection order of each adaptive filter in the multichannel ANC system is calculated as follows:where is the projection order for each of the adaptive filters, is the maximum projection order, is the lower threshold, and is the upper threshold.

The thresholds are determined using the steady-state MSE of the Affine Projection-Like I algorithm [29]; when the output error is smaller than the MSE, the projection order is reduced by one, and when it is larger, the projection order is increased. The derived thresholds can be expressed aswhere is the variance of a noise signal that is uncorrelated with the disturbance signal. When the evolutionary method is applied to the algorithm, the use of high projection orders is not required throughout the entire process; therefore, the average complexity of the algorithm is reduced.

4. Computational Complexity

Table 1 lists the computational complexity of the FXECAP-L algorithm expressed as the number of multiplications and the number of additions per iteration. The total number of multiplications needed in each iteration of the FXECAP-L algorithm presented in Section 3 is ]; the FXAP algorithm requires multiplications in each iteration; and finally, the FXAPL-I algorithm requires multiplications per iteration. The total number of additions needed in each iteration of the FXECAP-L algorithm is ; the FXAP algorithm requires additions in each iteration; and finally, the FXAPL-I algorithm requires additions per iteration.

A few multiplications are added to the computational complexity of the FXECAP-L algorithm because it uses the thresholds described in (21). The proposed algorithm requires additional multiplications and additions in each iteration to determine the projection order. However, once the steady state is reached, the projection order will remain constant, and thus, the computational burden will be greatly reduced. Table 2 compares the memory requirements of the FXAP, FXAPL-I, and the FXECAP-L algorithms.

5. Results

To validate the proposed FXECAP-L algorithm with evolving order, a single-channel ANC system and a 1:2:2 multichannel ANC system were simulated using MATLAB™, and the results were compared with those of the Filtered-X Affine Projection (FXAP) algorithm and the Filtered-X Affine Projection-Like (FXAPL-I) algorithm. Notably, in order to use the APL-I algorithm in an ANC system, it is necessary to use the scaling factor introduced in (19) because this algorithm presents the same mismatch as does the FXECAP-L algorithm.

Several experiments were performed using white Gaussian noise with unit variance as the reference noise signal . The acoustic transfer functions for the primary and secondary paths were obtained from [2] and were measured in a duct. The paths were modeled as FIR filters with tap-weight lengths of 256 and 128, respectively. The secondary path was estimated offline, and the length of the adaptive filters was set to . The projection orders used were and . The algorithms were run 50 times, each with 50,000 iterations.

5.1. Single-Channel ANC System

The first experiment considered a single-channel ANC system. To evaluate the efficiency of the algorithms, the Mean Square Error (MSE) at the error microphone was measured. Figures 2 and 3 show the performance of the FXAP algorithm, the FXAPL-I algorithm, and the proposed algorithm for a projection order of , where the numbers of bits used to encode the error were and , respectively. The FXAP step size and the scaling factors for the FXAPL-I and FXECAP-L were adjusted by trial and error; the values producing the fastest convergence speed were selected. Thus, for the FXAP algorithm, , for the FXAPL-I algorithm, , and for the FXECAP-L algorithm when and , . From Figure 2, it can be seen that the proposed algorithm showed slightly slower convergence than the FXAP and FXAPL-I algorithms; however, when the error was encoded using 8 bits, the convergence was nearly identical. Furthermore, the proposed algorithm does not require calculations using high-order matrices because it adapts to reduce the number of input vectors; this can be observed in Figure 4, which shows that the proposed algorithm needs to work with high-order matrices only in the first 1500 iterations, whereas for the remainder of the process, the algorithm works with only one input vector. For , the projection order was reduced to one even before 1500 iterations.

Figure 5 shows the performances of the tested algorithms for a projection order of when the error is encoded using bits. Since the projection order is modified, the step size and the scaling factor must be adjusted, the values were chosen by trial and error and were found to be as follows: for the FXAP algorithm, , for the FXAPL-I algorithm, , and for the FXECAP-L algorithm when and , . As expected, when the projection order increases, the convergence speed also increases, but the proposed algorithm remains slightly slower than the FXAP and FXAPL-I algorithms. For the case of , the convergence speed of the proposed algorithm is very similar to that of the other algorithms; see Figure 6. For all the experiments presented the FXECAP-L algorithm achieved a reduction in the MSE of about 1 and 2 dB with respect to the FXAP-L and FXAP algorithms.

Figure 7 presents the number of input vectors used for and . As seen from the results, the projection order was reduced to one after approximately 2500 iterations. When the error was encoded using bits, the behavior was very similar.

Another important advantage that the proposed algorithm possesses over the FXAP and FXAPL-I algorithms is the number of times that the adaptive algorithm updates the filter coefficients. Table 3 shows that the proposed algorithm was updated only 21,992 and 21,931 times for and , respectively, when the number of bits used to encode the error was . When the error was encoded using a higher number of bits, the resolution resulted in a larger step size; therefore, the convergence speed increased, but the error signal also increased. For this reason, the threshold established for updating the coefficients was not reached, and the algorithm was updated in almost every iteration.

In Table 4, the number of multiplications per iteration required by the FXECAP-L algorithm is compared with the number of multiplications for the FXAP and FXAPL-I algorithms. Table 4 shows the results for both experiments, and .

The results presented in Table 4 show the number of multiplications for a constant projection order; for that reason the FXECAP-L algorithm presents a higher number than the FXAP-L algorithm. As the process advances the FXECAP-L algorithm changes its projection order, also the algorithm is not updated in each iteration; in this way the overall complexity is greatly reduced.

To test the tracking behavior of the proposed algorithm, the primary path coefficients were multiplied by −1 at iteration 25000. Furthermore, at the microphone sensor, white Gaussian noise was added until a 30 dB signal to noise ratio (SNR) was achieved. The FXAP step size and the scaling factors for the FXAPL-I and FXECAP-L were adjusted by trial and error; the values producing the fastest convergence speed were selected. Thus, for the FXAP algorithm, , for the FXAPL-I algorithm, , and for the FXECAP-L algorithm when , . Figure 8 shows the MSE for a projection order of , and the number of bits used to encode the error was . As it can be seen, the convergence rate and steady-state estimation error are not degraded. It is worth mentioning that in this case the number of updates was only 9094 (18.18%), since the error signal was smaller and so the threshold established for updating the coefficients was reached sooner. Figure 9 shows the number of input vectors obtained from the tracking experiment, from which it can be observed that the proposed algorithm is able to adjust the projection order.

The tracking experiment was also done for the case . The scaling factor used for the FXECAP-L algorithm was . Figure 10 shows the MSE obtained, as it can be seen, the algorithm also maintained its tracking performance and as expected the convergence speed was increased. The number of updates of the proposed algorithm was 48784 (97.56%); in this case the error signal is increased and the threshold established for updating the coefficients is not reached. Figure 11 shows the number of input vectors obtained from the tracking experiment, from which it can be observed that the proposed algorithm is able to adjust the projection order faster than the case , since the convergence speed is increased.

5.2. Multichannel ANC System

The second experiment considered a multichannel (1:2:2) ANC system. To evaluate the performance, the Mean Square Error (MSE) was measured at each error sensor. The results obtained at error sensor 1 are presented. The results obtained at error sensor 2 were very similar to the presented results.

Figures 12 and 13 show the performances of the algorithms for a projection order of , where the numbers of bits used to encode the error were and , respectively. The FXAP step size and the scaling factors for the FXAPL-I and FXECAP-L were adjusted by trial and error, and the values producing the fastest convergence speed were selected. Thus, for the FXAP algorithm, , for the FXAPL-I algorithm, , for the FXECAP-L algorithm when , , and for the FXECAP-L algorithm when , . In this experiment, the proposed algorithm exhibited a very similar convergence speed and misalignment compared with the FXAP and FXAPL-I algorithms. The most important features were the reductions in the number of updates and the projection order.

Table 5 shows that the FXECAP-L algorithm with performed almost 30% fewer updates compared with the other algorithms; however, when , the algorithm was updated in almost every iteration because of the effect of the resolution.

Figure 14 shows the numbers of input vectors used by the proposed algorithm in the experiments with an initial projection order of and error encoding using and bits, from which it can be observed that the adaptive algorithm worked with high-order matrices only during the first approximately 5,000 iterations; subsequently, the algorithm worked with only one or two input vectors.

Figures 15 and 16 show the MSE values for and error encoding using and bits, respectively. The FXAP step size and the scaling factors for the FXAPL-I and FXECAP-L were adjusted by trial and error; the values producing the fastest convergence speed were selected. Thus, for the FXAP algorithm, , for the FXAPL-I algorithm, , for the FXECAP-L algorithm when , , and for the FXECAP-L algorithm when , . In these cases, the convergence speed slightly increased, and for , the algorithm again avoided updating the coefficients in each iteration, as shown in Table 5.

For a projection order of , the number of updates and the convergence speed were similar to those achieved for , whereas the number of input vectors was reduced considerably (see Figure 17) because the algorithm converged faster and the thresholds for the evolution order were reached sooner.

In Table 6, the number of multiplications per iteration required by the FXECAP-L algorithm is compared with the numbers of multiplications for the FXAP and FXAPL-I algorithms. Table 6 shows the results for both experiments, and .

As in the single-channel experiments, the FXECAP-L algorithm presents a higher number of multiplications than the FXAP-L algorithm because the calculation is performed for a constant projection order; nevertheless, using the evolving projection order and the thresholds for the update of the algorithm, the number of multiplications is reduced.

Figure 18 shows the tracking performance of the proposed algorithm when the primary path coefficients are multiplied by −1 at iteration 25000. For this case, at the microphone sensor, white Gaussian noise was added until a 30 dB signal to noise ratio (SNR) was achieved. The projection order for this experiment is and bits are used to encode the error. The FXAP step size and the scaling factors for the FXAPL-I and FXECAP-L were adjusted by trial and error; the values producing the fastest convergence speed were selected. Thus, for the FXAP algorithm, , for the FXAPL-I algorithm, , and for the FXECAP-L algorithm, . As it can be seen, the proposed algorithm maintained its tracking performance without degrading the convergence rate or steady-state estimation error. The number of updates of the proposed algorithm was 25784 (51.56%), since the error signal was smaller and so the threshold established for updating the coefficients was reached with less iterations.

Figure 19 shows the MSE obtained when 8 bits are used to encode the error in the proposed algorithm. The scaling factor used in this case was . As it can be seen, there is only a slightly increased on the convergence speed. On the other hand, the number of updates of the algorithm was 49981 (99.96%).

Figure 20 shows the number of input vectors obtained from the tracking experiment with an initial projection order of and error encoding using and bits. For both cases, after the variation of the path the algorithm uses a higher number of input vectors during more iterations; nevertheless, it is able to reduce the projection order to one. For the case , the number of input vectors was reduced considerably because the algorithm converged faster and the thresholds for the evolution order were reached sooner.

The experiments performed for single-channel and multichannel ANC systems show that using a lower number of bits to encode the error reduces the number of updates performed by the algorithm. The number of updates required in the case of the multichannel system was greater than that required for the single-channel system; however, the convergence speed for the multichannel system was nearly identical to those of both the FXAP algorithm and the FXAPL-I algorithm. Moreover, the evolutionary method of the proposed algorithm allowed the projection order to decrease as the algorithm progressed, whereas the other algorithms used the same projection order throughout the entire process.

However, when the error was encoded with a higher number of bits, although the convergence speed increased, the algorithm updated the coefficients in almost every iteration. Another important observation from both experiments is that using a high projection order results in a faster reduction of the number of input vectors.

6. Conclusions

In this paper, we introduce the Filtered-X Error Coded Affine Projection-Like algorithm with evolving order for single-channel and multichannel ANC systems. The proposed algorithm updates its coefficients only when the error is higher than some predetermined threshold. Furthermore, the projection order changes dynamically by means of an evolutionary method that compares the error against two thresholds derived from the instantaneous value of the steady-state MSE. Simulation results demonstrate that the proposed algorithm inherits the fast convergence speed and misadjustment level of the APA and does not require matrix inversion operations. Moreover, the proposed algorithm reduces the number of coefficient updates by more than 50% for a single-channel system and by almost 30% for a multichannel system, and it avoids the use of high projection orders throughout the entire computation process. The FXECAP-L algorithm can be an excellent alternative for the implementation of ANC systems because it has a low overall computational complexity compared with other algorithms based on affine subspace projections.

Notations

Number of reference sensors
Number of actuators
Number of error sensors
Length of the adaptive FIR filters
Projection order
Length of the fixed FIR filters
th reference signal
th canceling signal
th error signal
Weight vectors of the adaptive filters
Impulse responses of the secondary paths
Estimates of the secondary paths.

Conflicts of Interest

The authors declare that there are no conflicts of interest regarding the publication of this paper.