Implementing an NLMS algorithm for a MISO structure
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to implement an NLMS algorithm for the purpose of acoustic echo cancellation. I know how to implement the algorithm when the adaptive filter to be designed is a vector (namely our h_hat). But I don't know how to implement the algorithm for multi-input single-output structure, where H is a matrix.
I have a reference signal x, then I define my current frame as:
for k = 1:length(x)
% prepare current frame
xk = [xk(2:end) ; x(k)];
then I have the following equation as the new set of input signals:
x_o,p (k) = x(k)^p ,
where 1<p<P. So now H is a matrix (N x P) contains all adaptive filters. For a case where h is just a vector of lenght N, I did the following:
y_hat = h_hat' * xk;
% calculate error signal (residual)
e(k) = y(k) - y_hat;
% adapt filter using NLMS algorithm
h_hat = h_hat + alpha * e(k) * xk / (xk'*xk );
end
But I don't know how to develop the code for this new MISO case ( with the new set of inputs). I don't know to define the error for each sample k in this case, since our H is now a matrix, and our e(k) must be a scalar.
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Audio Processing Algorithm Design dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!