TITLE:  Efficient Implementation of a Variable Projection Order Affine Projection Algorithm

Abstract:Many fast affine projection (FAP) algorithms have been proposed in the last two decades. These algorithms offer a good tradeoff between convergence rate and computational complexity. Most of the existing FAP algorithms use a constant projection order. Recently, the evolutionary APA (E-APA) with a variable projection order has been proposed. In this paper, an efficient implementation of the E-APA based on dichotomous coordinate descent (DCD) method is proposed and investigated. It is shown that the proposed algorithm obtains both fast convergence speed and small steady-state error.

clear
load ex_iswcs
 
exponent=10; M=24; H=2^(-exponent); N_upd_max = 8; % parameters for DCD algorithm
[m, e, w, pval]=dcd_e_apa(x,d,miu,ord,p_max,dlta,h1,h2,N0,sigma_v2,'dcdvar', M, H, N_upd_max);
% Inputs:
% x        ->          far-end signal 
% d        ->          desired signal
% miu      ->          the step size
% ord      ->          length of filters
% p_max    ->          maximum projection order 
% dlta     ->          the regularization parameter
% h1       ->          the echo path for first part of algorithm iterations
% h2       ->          the echo path for the second part of algorithm iterations  
% N0       ->          the length of the first part
% sigma_v2 ->          E-APA parameter
%
% Outputs:
% m        ->          Misalignment (dB)  
% e        ->          Output error
% w        ->          The estimated echo path
% pval     ->          Chosen projection orders
%
% F. Albu, C. Paleologu, J. Benesty, “Efficient Implementation of a Variable Projection Order 
% Affine Projection Algorithm”, IEEE International Symposium on Wireless Communication Systems (ISWCS), 
% York, U.K., Sept. 2010, pp. 369-373 
%
% Felix Albu
% Valahia University of Targoviste, Romania
% http://falbu.50webs.com
% Only for research use
% Please contact me by email at felix_albu@ieee.org if interested in
% receiving the uncoded file 
%
 
t=linspace(0,N/8000,N);
 
figure(1) 
plot(t,m,'b','linewidth',1.5)
xlabel('Time (seconds)'),ylabel('Misalignment (dB)')
 
figure(2) 
subplot(211), plot(h2(1:ord)), title('The echo path')
subplot(212), plot(w), title('Estimated echo path')
 
figure(3)
hist_pval=hist(pval,p_max); bar(hist_pval)
xlabel('projection order'), title('Number of occurences')
 
figure(4)
plot(t,e,'b','linewidth',1.5)
xlabel('Time (seconds)'),ylabel('Output error')
 

 

clear

load ex_iswcs % click here to load the mat file

exponent=10; M=24; H=2^(-exponent); N_upd_max = 8; % parameters for DCD algorithm

% click here to load the dcd_e_apa matlab file

% click here to load the DCD_real_beta_1.p matlab file

[m, e, w, pval]=dcd_e_apa(x,d,miu,ord,p_max,dlta,h1,h2,N0,sigma_v2,'dcdvar', M, H, N_upd_max);  

% Inputs:

% x        ->          far-end signal 

% d        ->          desired signal

% miu      ->          the step size

% ord      ->          length of filters

% p_max    ->          maximum projection order 

% dlta     ->          the regularization parameter

% h1       ->          the echo path for first part of algorithm iterations

% h2       ->          the echo path for the second part of algorithm iterations  

% N0       ->          the length of the first part

% sigma_v2 ->          E-APA parameter

%

% Outputs:

% m        ->          Misalignment (dB)  

% e        ->          Output error

% w        ->          The estimated echo path

% pval     ->          Chosen projection orders

%

% F. Albu, C. Paleologu, J. Benesty, “Efficient Implementation of a Variable Projection Order 

% Affine Projection Algorithm”, IEEE International Symposium on Wireless Communication Systems (ISWCS), 

% York, U.K., Sept. 2010, pp. 369-373 

%

% Felix Albu

% Valahia University of Targoviste, Romania

% http://falbu.50webs.com

% Only for research use

% Please contact me by email at felix_albu@ieee.org if interested in

% receiving the uncoded matlab file 

%

 

t=linspace(0,N/8000,N);

 

figure(1) 

plot(t,m,'b','linewidth',1.5)

xlabel('Time (seconds)'),ylabel('Misalignment (dB)')

 

figure(2) 

subplot(211), plot(h2(1:ord)), title('The echo path')

subplot(212), plot(w), title('Estimated echo path')

 

figure(3)

hist_pval=hist(pval,p_max); bar(hist_pval)

xlabel('projection order'), title('Number of occurences')

 

figure(4)

plot(t,e,'b','linewidth',1.5)

xlabel('Time (seconds)'),ylabel('Output error')

 

Please contact me at felix_albu@ieee.org if interested collaboration on this subject.