Skip to main content
Log in

Active noise control using an adaptive bacterial foraging optimization algorithm

  • Original Paper
  • Published:
Signal, Image and Video Processing Aims and scope Submit manuscript

Abstract

This paper presents an adaptive bacterial foraging optimization (ABFO) algorithm for an active noise control system. The conventional active noise control (ANC) systems often use the gradient-based filtered-X least mean square algorithms to adapt the coefficients of the adaptive controller. Hence, there is a possibility to converge to local minima. In addition, this class of algorithms needs prior identification of the secondary path. The ABFO algorithm helps the ANC system to prevent falling into local minima. The proposed ANC system is also simpler since it does not need any prior information of the secondary path. Moreover, the adaptive strategy of the algorithm results in improved search performance compared with the basic bacterial foraging optimization algorithm, as well as other conventional algorithms. Experimental studies are performed for nonlinear primary path along with linear and nonlinear secondary path. The results show the effectiveness of the proposed ABFO-based ANC system for different kinds of input noise.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Similar content being viewed by others

References

  1. Kuo, S.M., Morgan, D.R.: Active Noise Control Systems: Algorithms and DSP Implementation. Wiley, New York (1996)

    Google Scholar 

  2. Elliott, S.J.: Signal Processing for Active Control. Academic, London (2000)

    Google Scholar 

  3. Elliott, S.J., Nelson, P.A.: Active noise control. In: IEEE Signal Process. Mag. 10(4), 12–35 (1993)

    Google Scholar 

  4. Chang, C.Y., Shyu, K.K.: Active noise cancellation with a fuzzy adaptive filtered-X algorithm. IET Circuits Devices Syst. 150(5), 416–422 (2003)

    Article  Google Scholar 

  5. Chang, C.Y., Louh, F.B.: Enhancement of active noise control using neural based filtered-X algorithm. J. Sound Vib. 305(1/2), 348–356 (2007)

    Article  Google Scholar 

  6. Bouchard, M., Pailard, B., Dinh, C.T.L.: Improved training of neural networks for nonlinear active control of sound and vibration. In: IEEE Trans. Neural Netw. 10(2), 391–401 (1999)

    Google Scholar 

  7. Matsuura, T., Hiei, T., Itoh, H., Torikoshi, K.: Active noise control by using prediction of time series data with a neural network. In: Proceedings of IEEE SMCC Conference, pp. 2070–2075 (1995)

  8. Sicuranza, G.L., Carini, A.: Filtered-X affine projection algorithm for multichannel active noise control using second-order Volterra filters. In: IEEE Signal Process. Lett. 11(11), 853–857 (2004)

    Google Scholar 

  9. Tan, L., Jiang, J.: Adaptive Volterra filters for active control of nonlinear noise processes. In: IEEE Trans. Signal Process. 49(8), 1667–1676 (2001)

    Google Scholar 

  10. Zhou, D., DeBrunner, V.: Efficient adaptive nonlinear filters for nonlinear active noise control. In: IEEE Trans. Circuits Syst. I 54(3), 669–681 (2007)

    Google Scholar 

  11. Strauch, P., Mulgrew, B.: Active control of nonlinear noise processes in a linear duct. In: IEEE Trans. Signal Process. 46(9), 2404–2412 (1998)

    Google Scholar 

  12. Tang, K.S., Man, K.F., Kwong, S., He, Q.: Genetic algorithms and their applications. In: IEEE Signal Process. Mag. 13(6), 22–37 (1996)

    Google Scholar 

  13. Yim, K.H., Kim, J.B., Lee, T.P., Ahn, D.S.: Genetic adaptive IIR filtering algorithm for active noise control. In: Proceedings of IEEE International Conference on Fuzzy Systems, pp. 1723–1728 (1999)

  14. Gholami Boroujeny, Sh., Eshghi, M.: Efficient adaptive noise cancellation using genetic optimization. In: Proceedings of International Conference on, Signal Processing (ICSP). pp. 2596–2599 (2010)

  15. Russo, F., Sicuranza, G.L.: Accuracy and performance evaluation in the genetic optimization of nonlinear systems for active noise control. IEEE Trans. Instrum. Meas. 56(4), 1443–1450 (2007)

    Google Scholar 

  16. Chang, Ch.Y., Chen, D.R.: Active noise cancellation without secondary path identification by using an adaptive genetic algorithm. In: IEEE Trans. Instrum. Meas. 59(9), 2315–2327 (2010)

  17. Passino, K.M.: Biomimicry of bacterial foraging for distributed optimization and control. In: IEEE Cont. Syst. Mag. 22, 52–67 (2002)

    Google Scholar 

  18. Passino, K.M.: Biomimicry for Optimization, Control, and Automation. Springer, Berlin (2005)

    MATH  Google Scholar 

  19. Tripathy, M., Mishra, S.: Bacteria foraging-based to optimize both real power loss and voltage stability limit. In: IEEE Trans. Power Syst. 1(22), 240–248 (2007)

    Google Scholar 

  20. Hanmandlu, M., Verma, O.P., Kumar, N.K., Kulkami, M.: A novel optimal fuzzy system for color image enhancement using bacterial foraging. In: IEEE Trans. Instrum. Meas. 58(8), 2867–2879 (2009)

    Google Scholar 

  21. Gholami Boroujeny, Sh, Eshghi, M.: Non-linear active noise cancellation using a bacterial foraging optimisation algorithm. IET Sig. Process. 6(4), 364–373 (2012)

    Article  Google Scholar 

  22. Mishra, S.: A hybrid least square-fuzzy bacterial foraging strategy for harmonic estimation. In: IEEE Trans. Evol. Comput. 9(1), 61–73 (2005)

    Google Scholar 

  23. Chen, H., Zhu, Y., Hu, K.: Self-adaptation in bacterial foraging optimization algorithm. In: Proceedings of \(3^{\rm rd}\) International Conference on Intelligent Systems and Knowledge Engineering, ISKE. pp. 1026–1031 (2008)

  24. Su, T.J., Cheng, J.C., Yu, C.J.: An adaptive channel equalizer using self-adaptation bacterial foraging optimization. J. Optics Commun. 283(20), 3911–3916 (2010)

    Article  Google Scholar 

Download references

Acknowledgments

This research is supported by IRAN Telecommunication Research Center (ITRC).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shiva Gholami-Boroujeny.

Appendix: Proposed algorithm for ABFO-based ANC system

Appendix: Proposed algorithm for ABFO-based ANC system

The proposed algorithm for ABFO-based ANC system has three main phases as follows:

Phase 1 Initializing the following parameters.

  • \(S\) is the number of bacteria to be used for searching the total region.

  • \(p\) is the dimension of the search space or the number of parameters to be optimized.

  • \(N_s \) is the swimming length of bacteria after each tumbling in a chemotactic loop.

  • \(N_c \) is the number of iterations to be undertaken in a chemotactic loop, \(\left( {N_c >N_s } \right)\).

  • \(P_{ed} \) is the probability of continuing the elimination and dispersal event.

  • \(P\) is the location of each bacterium in the first bacteria population.

  • \(C^{i}\left( j \right)\) is the current run-length unit or step size taken in random direction for \(i\)th bacterium.

  • \(C_{{\text{ initial}}} \) is the initialized run-length unit. This is assumed to be constant for all the bacteria.

  • \(\varepsilon _{{\text{ initial}}} \) is the initialized precision goal. This is assumed to be constant for all the bacteria.

  • \(\varepsilon ^{i}\left( j \right)\) is the required precision fitness in the current generation of the \(i\)th bacterium.

  • \(ku\) is the user defined number of consecutive generations.

  • \({\text{ flag}}^{i}\) is the number of generations during which the \(i^{th}\) bacterium has not improved its own fitness.

  • \(\alpha \) is the run-length factor.

  • \(\beta \) is the cost function factor.

Phase 2 Obtaining the incoming noise samples.

In this step the input noise samples to the ANC system are taken. For each noise sample the algorithm runs separately and the corresponding residual noise is obtained.

  1. (a)

    While the input noise samples come to the ANC system — do the following

Phase 3 Running the Iterative Algorithm for Optimization.

This section models the ABFO operations (including chemotaxis, reproduction, and elimination-and-dispersal) on bacterial population.

  1. (b)

    Chemotaxis loop: for \(j=1,2,\ldots ,N_c \)

  1. 1.

    Filtering the input noise. In the adaptive Volterra filter, \(S\) groups of the anti-noise signal \(ds_i \left( n \right)\) can be generated with considering the \(S\) groups of filter coefficients \(W_i \left( n \right)=\left[ {w_i \left( {0,n} \right),w_i \left( {1,n} \right),\ldots ,w_i \left( {L-1,n} \right)} \right],i=1,\ldots ,S,\) given by

    $$\begin{aligned} \left[ {{\begin{array}{c} {y_1 \left( n \right)} \\ {y_2 \left( n \right)} \\ {.} \\ {.} \\ {.} \\ {y_S \left( n \right)} \\ \end{array}}} \right]&= \left[ {{\begin{array}{cccc} w_1 \left({0,n} \right)&w_1 \left( {1,n} \right)&\ldots&w_1 \left( {L-1,n} \right) \\ w_2 \left({0,n} \right)&w_2 \left( {1,n} \right)&\ldots&w_2 \left( {L-1,n} \right) \\ \vdots&\vdots&\vdots&\vdots \\ w_S \left( {0,n} \right)&w_S \left( {1,n} \right)&\ldots&w_S \left( {L-1,n} \right) \\ \end{array} }} \right]\nonumber \\&.\left[ {{\begin{array}{c} x\left( n \right) \\ x\left( {n-1} \right) \\ \vdots \\ x\left( {n-\frac{L}{2}+1} \right) \\ x^{2}\left( n \right) \\ x^{2}\left( {n-1} \right) \\ \vdots \\ x^{2}\left( {n-\frac{L}{2}+1} \right) \\ \end{array} }} \right],\end{aligned}$$
    (9)
    $$\begin{aligned} \left[ {{\begin{array}{c} ds_1 \left( n \right) \\ ds_2 \left( n \right) \\ {.} \\ {.} \\ {.} \\ {ds_S \left( n \right)} \\ \end{array} }} \right]&= \left[ {{\begin{array}{cccc} y_1&\left( n \right)y_1 \left( {n-1} \right)&\ldots&y_1 \left( {n-L_1 +1} \right) \\ y_2&\left( n \right)y_2 \left( {n-1} \right)&\ldots&y_2 \left( {n-L_1 +1} \right) \\ \vdots&\vdots&\vdots&\vdots \\ y_S&\left( n \right)y_S \left( {n-1} \right)&\ldots&y_S \left( {n-L_1 +1} \right) \\ \end{array} }} \right]\nonumber \\&.\left[ {{\begin{array}{c} {s_1 } \\ {s_2 } \\ {\vdots } \\ {s_{L_1 } } \\ \end{array} }} \right]. \end{aligned}$$
    (10)

where \(\left[ {s_1,s_2,\ldots ,s_{L_1 } } \right]\) denotes the impulse response of the secondary path \(S\left( z \right)\), and \(W_i \left( n \right)\) denotes the coefficient vector of the \(i\)th bacterium of Volterra filter \(W\left( z \right)\) at time \(n\), with length \(L\).

Then, Calculate the cost function or the residual noise function as

$$\begin{aligned} J\left( {i,j} \right)=e_i \left( n \right)=dp\left( n \right)+ds_i \left( n \right),\quad i=1,\ldots ,S. \end{aligned}$$
(11)
  1. 2.

    Let \(J_{{\text{ last}}}^i =J\left( {i,j} \right)\) to save this value since we may find better value via a run.

  2. 3.

    Tumbling/Swimming loop: For \(i=1,2,\ldots ,S\)—take the tumbling/swimming decision

  • Tumble: Generate a random vector \(\Delta \left( i \right)\in R^{n}\). Each element of \(\Delta \; (\Delta _m \left( i \right),m=1,2,\ldots ,p)\) is a random number on [-1, 1].

  • Move (updating the position of bacteria): Let

    $$\begin{aligned} w^{i}\left( {j+1} \right)=w^{i}\left( j \right)+C^{i}\left( j \right)\frac{\Delta \left( i \right)}{\sqrt{\Delta ^{T}\left( i \right)\Delta \left( i \right)}}. \end{aligned}$$
    (12)

    This results in an adaptable step size of \(C^{i}\left( j \right)\) in the direction of the tumble for \(i^{th}\) bacteria. Compute \(J\left( {i,j+1} \right)\) with \(w^{i}\left( {j+1} \right)\).

  • Swim:

  1. i.

    Let \(m=0\) (counter for swim length).

  2. ii.

    While \(m<N_S \)

  • Let \(m=m+1\).

  • If \(J\left( {i,j+1} \right)<J_{{\text{ last}}}^i\) then let \(J_{{\text{ last}}}^i =J\left( {i,j+1} \right)\), then another step of size \(C^{i}\left( j \right)\) in this same direction will be taken as Eq. 12.

  • Use \(w^{i}\left( {j+1} \right)\) to compute the new \(J\left( {i,j+1} \right)\) and then set \({\text{ flag}}^{i}=0.\)

— Adaptive Chemotaxis

  • Else, if \(J\left( {i,j+1} \right)\ge J_{{\text{ last}}}^i \) then let \({\text{ flag}}^{i}={\text{ flag}}^{i}\) + 1 and if \({\text{ flag}}^{i}>ku\) then \(C^{i}\left( {j+1} \right)=C_{{\text{ initial}}}^i \) and \(\varepsilon ^{i}\left( {j+1} \right)=\varepsilon _{{\text{ initial}}}^i \).

  • Else, if \({\text{ flag}}^{i}\le ku\) then let \(C^{i}\left( {j+1} \right)=C^{i}\left( j \right)\) and \(\varepsilon ^{i}\left( {j+1} \right)=\varepsilon ^{i}\left( j \right)\), let \(m=N_S \).

  • End of while statement.

  1. iii.

    If \(J\left( {i,j+1} \right)<\varepsilon ^{i}\left( j \right)\) then \(C^{i}\left( {j+1} \right)=C^{i}\left( j \right)/\alpha \) and \(\varepsilon ^{i}\left( {j+1} \right)=\varepsilon ^{i}\left( j \right)/\beta \); Else \(C^{i}\left( {j+1} \right)=C^{i}\left( j \right)\) and \(\varepsilon ^{i}\left( {j+1} \right)=\varepsilon ^{i}\left( j \right)\).

— End of adaptive Chemotaxis.

  1. 4.

    End of tumbling/swimming loop. If \(i\ne S\), go to (d) to process the next bacterium.

  2. 5.

    Reproduction:

  • For each \(i=1,2,\ldots ,S\), let

    $$\begin{aligned} J_{{\text{ health}}}^i =J\left( {i,j} \right) {\text{ for}} j=1,\ldots ,N_C +1. \end{aligned}$$
    (13)
  • Sort bacteria in order of ascending values \(J_{{\text{ health}}} \).

  • The \(S_r =S/2\) bacteria with the highest \(J_{{\text{ health}}} \) values die and the other \(S_r \) bacteria with the best values split and the copies that are made are placed at the same location as their parent.

  1. 6.

    Elimination-dispersal:

  • For \(i=1,2,\ldots ,S\), with probability\(p_{ed} \), eliminate and disperse each bacterium, to keep the number of bacteria in the population constant.

  1. (c)

    End of Chemotaxis loop. — If \(j<N_c \), go to Step 3.

  2. (d)

    End of while statement.

The flow chart of the described algorithm is shown in Fig. 5 .

Fig. 5
figure 5

Flow chart of the proposed ABFO-based ANC algorithm

Rights and permissions

Reprints and permissions

About this article

Cite this article

Gholami-Boroujeny, S., Eshghi, M. Active noise control using an adaptive bacterial foraging optimization algorithm. SIViP 8, 1507–1516 (2014). https://doi.org/10.1007/s11760-012-0385-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11760-012-0385-2

Keywords

Navigation