next up previous contents
Next: 12 init_ fxlms Up: 7 Active Noise and Previous: 10 init_ fdadjlms   Contents


11 init_ fdfxlms

Purpose
Creates and initializes the variables required for the Frequency Domain Filtered-X Least Mean Squares (FDFXLMS) algorithm for use with single channel Active Noise and Vibration Control (ANVC) applications.

Syntax
[NB,W,w,x,y,d,e,p,S,SE,yF,fxF]=init_fdfxlms(NC,NL,s,se) [NB,W,w,x,y,d,e,p,S,SE,yF,fxF]=init_fdfxlms(NC,NL,s,se,w0,xn0,d0)



Description
Figure 7.19: Block diagram of the Frequency Domain Filtered-X LMS algorithm.
The FDFXLMS is a block processing algorithm which performs filtering and coefficient update in the frequency domain.The variables of the FDFXLMS are shows in Fig. 7.19 and are summarized below. The size of each variable is given in a square brackets, for instance [N x 1] means a column vector of length N.


\epsfig{file=/home/john/winD/docs/aspt/aspt/figs/fdfxlms.eps,width=.9\textwidth}
Input Parameters [size] ::
    NC   : Required controller length in time domain
    NL   : new samples per block
    s    : FIR model of the secondary path in time domain [M x 1]
    se   : estimate of secondary path in time domain [N x 1]
    w0   : Initial vector of filter coefficients [NC x 1]
    xn0  : Initial input samples block [NL x 1]
    d0   : Initial primary signal block [NL x 1]

Output parameters [default] ::
    NB   : FFT length [2.^nextpow2(NC+NL-1)]
    W    : frequency domain filter coefficients vector [zeros]
    w    : time domain filter coefficients vector [zeros]
    x    : overlap-save input vector [zeros]
    y    : filter output vector in time domain [zeros]
    d    : primary signal block [zeros]
    e    : error signal block [e = d + ys]
    p    : power estimate of fx(f)
    S    : frequency domain secondary path [fft(s,NB)]
    SE   : frequency domain estimated s [fft(se,NB)]
    yF   : output vector buffer [zeros]
    fxF  : filtered-x buffer [zeros]


Example
ph   = [0;.9;.5;.3;.1];       % Primary path impulse response
sh   = [0.5;0.4;0.1];         % Secondary path impulse response
se   = 0.95*sh;               % estimation of s
NC   = 8 ;                    % Length of each filter
NL   = NC;                    % Block length

% Initialize FDFXLMS algorithm with a controller of NC 
% coefficients and a block length NL.
[NB,W,w,x,y,d,e,p,S,SE,yF,fxF] = init_fdfxlms(NC,NL,sh,se)

Remarks
  • Supports both real and complex signals
  • You can control the FFT length by choosing the block size (NL) appropriately. Maximum efficiency is achieved when $NL = NC = 2^n$; where n is an integer.
  • Processing delay (algorithm latency) equals to NL, since NL new samples have to be collected before an FFT can be performed.
  • The FDFXLMS algorithm requires an estimate of the secondary path, shown in Fig. 7.19 as $se$, to calculate the filtered input signal $fx(f)$. This estimate is usually obtained in an initialization stage or during normal operation using a separate adaptive filter connected between the actuator and the sensor in a Single Input Single Output (SISO) system identification setup. When using $se = s$ in init_fdfxlms() and asptfdfxlms() , which means that an accurate estimate of the secondary path is available, the effects of the secondary path estimation error on the adaptive controller behavior will disappear. To examine those effects use an estimated secondary path $se$ different than $s$.
  • Use input parameters 5 through 7 to initialize the controller storage. This is helpful when the adaptation process is required to start from a known operation point calculated off-line or from previous simulations.

See Also
ASPTFDFXLMS, ANVC_ FDFXLMS, ASPTMCFXLMS, ASPTFXLMS, ASPTMCFDFXLMS.


next up previous contents
Next: 12 init_ fxlms Up: 7 Active Noise and Previous: 10 init_ fdadjlms   Contents