Implementing an NLMS algorithm for a MISO structure

4 vues (au cours des 30 derniers jours)
Shady Slm
Shady Slm le 7 Mar 2019
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.

Réponses (0)

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!

Translated by