Implementing an NLMS algorithm for a MISO structure
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Audio Processing Algorithm Design finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!