Multichannel Filtered‑x Least Mean Square (McFxLMS)

버전 1.0.3 (4.06 KB) 작성자: DONGYUAN SHI
This work provides a MATLAB code for the McFxLMS algorithm, which can be used for the arbitrary number of channels system.
다운로드 수: 37
업데이트 날짜: 2024/2/24

라이선스 보기

Multichannel filtered reference least mean square (McFxLMS) algorithms are widely utilized in adaptive multichannel active noise control (MCANC) applications. As a critical and high-computationally efficient adaptive critical algorithm, it also typically works as a benchmark for comparative studies of the new algorithms proposed by peers and researchers. However, up to now, there are few open-source codes for the FxLMS algorithm, especially for large-count channels. Therefore, this work provides a MATLAB code for the McFxLMS algorithm, which can be used for the arbitrary number of channels system.
Note:
This MATLAB program implements the simulation of a feedforward multichannel FxLMS ANC system, with the number of channels that can be specified arbitrarily by the user. The program contains three MATLAB files: Multichannel_FxLMS.m and Control_filter.m constitute the program of the McFxLMS algorithm, while Four_MCANC.m is the main program to test the McFxLMS algorithm. The testing data in the Path folder is avilable at the GitHub link.
Multichannel Filtered Reference Least Mean Square (McFxLMS) Algorithm
Figure 1: Block diagram of the McFxLMS algorithm with J reference microphones, K secondary sources, and M error microphones.
The target multichannel active noise control (MCANC) system is assumed to have J reference microphones, K secondary sources, and M error microphones. According to the gradient decent method, the kj th control filter is obtained from
,
where μ and denote the step size and the m-th error signal respectively. The filtered reference signal is given by
In the equation, represents the impulse response of the mk-th secondary path, and is the reference signal picked by the j-th reference microphone. This Matlab Code is used to implement the above algorithm.
Code Explanation
Key MATLAB Files
  • Four_MCANC.m: Main program for testing the McFxLMS algorithm.
  • Multichannel_FxLMS.m: The code of the multichannel filterd reference least mean sqaure (McFxLMS) algorithm.
  • Control_filter.m: The code of the control filter in the adaptive algorithm.
  • \path: The data folder that ontains the measured primary paths and secondary paths.
The explanation of Multichannel_FxLMS.m
Multichannel_FxLMS.m realizes the McFxLMS algorithm with arbitrary channels. It has following functions:
  • Multichannel_FxLMS(): Initialization functions for setting system properties.
  • FxLMS_cannceller(): Functions for generating anti-noise signals and updating filter coefficients.
  • Get_coefficients(): Methods for retrieving control filter coefficients.
Testing and Simulation
  • Four_MCANC.m provides an example of using the code of the McFxLMS algorithm.
  • Instructions for setting up primary and secondary paths, generating reference and disturbance signals.
  • The following code segment shows a simple example of the usage of the McFxLMS code.
%% Multichannel FxLMS algorithm
%---Wc [Filter length x Control unit/ microphone x Reference microphone number]
%---Sec[Filter length x Error number x Speaker number]
a = Multichannel_FxLMS(Wc,Sec,muW);
%---Red is referernce [Reference microphone number x signal length]
%---Dir is Disturabnce [Error microphone number x signal length]
[E,a]= a.FxLMS_cannceller(Red,Dir);
Figure 2. The error signals at the four error microphones.
Figure 2 shows the error signal picked up by the error microphones, which demonstrates the convergence of the McFxLMS algorithm.
Conclusion
The guide provides a detailed overview of creating and using a MATLAB program for active noise control using the McFxLMS algorithm.

인용 양식

DONGYUAN SHI (2024). Multichannel Filtered‑x Least Mean Square (McFxLMS) (https://www.mathworks.com/matlabcentral/fileexchange/158731-multichannel-filtered-x-least-mean-square-mcfxlms), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2023b
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
버전 게시됨 릴리스 정보
1.0.3

Modified the readme files.

1.0.2

Provide a detailed explanation.

1.0.1

Giving the download link of the "path" folder.

1.0.0