next up previous contents
Next: 11 init_ fdfxlms Up: 7 Active Noise and Previous: 9 init_ adjlms   Contents


10 init_ fdadjlms

Purpose
Creates and initializes the variables required for the Frequency Domain ADJoint Least Mean Squares (FDADJLMS) 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,feF]=init_fdadjlms(NC,NL,s,se) [NB,W,w,x,y,d,e,p,S,SE,yF,feF]=init_fdadjlms(NC,NL,s,se,W0,xn0,d0)



Description
Figure 7.18: Block diagram of the Frequency Domain Adjoint-LMS algorithm.
The FDADJLMS is a block processing algorithm which performs filtering and coefficient update in the frequency domain. The variables of the FDADJLMS are shows in Fig. 7.18 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/fdadjlms.eps,width=.9\textwidth}
Input Parameters [size] ::
    NC   : Required controller length in time domain
    NL   : new samples per block
    s    : time domain secondary path [M x 1]
    se   : estimate of the secondary path [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 x(n) in freq. domain
    S    : frequency domain secondary path [fft(s,NB)]
    SE   : frequency domain estimated secondary path [fft(se,NB)]
    yF   : output vector buffer [zeros]
    feF  : filtered error 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 FDADJLMS algorithm with a controller of NC 
% coefficients and a block length NL.
[NB,W,w,x,y,d,e,p,S,SE,yF,feF] = init_fdadjlms(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 FDADJLMS algorithm requires an estimate of the secondary path, shown in Fig. 7.18 as $se$, to calculate the filtered error signal $fe(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_fdadjlms() and asptfdadjlms() , 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
ASPTFDADJLMS, ANVC_ FDADJLMS, ASPTMCADJLMS, ASPTADJLMS, ASPTMCFDADJLMS.


next up previous contents
Next: 11 init_ fdfxlms Up: 7 Active Noise and Previous: 9 init_ adjlms   Contents