Implementing an NLMS algorithm for a MISO structure
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio Processing Algorithm Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!