how to use ha.coefficients for a filter?

I am using the code below which works but if I try to filter the input with the ha.coefficients I don't get the desired signal. How do I use the coefficients and the matlab filter command to filter the input stored in xx to get the desired output d?
mu=.008; ha = adaptfilt.lms(250,mu); [yy,e] = filter(ha,xx(1:250),d);
I tried to desired = filter(ha.coefficients,1,xx(1:250));

Réponses (1)

Honglei Chen
Honglei Chen le 10 Fév 2015

1 vote

It's an adaptive filter so the coefficients changes at every step. The Coefficients only contains the initial coefficients. In addition, the setup for adaptive filter is often in a vectorized form so filter is often carried out using matrix multiplication than the difference equation implemented in the filter command.

2 commentaires

dgmn
dgmn le 10 Fév 2015
Modifié(e) : dgmn le 10 Fév 2015
I am trying to identify a unknown system/filter using LMS. I thought adaptfilt.lms would provide filter coefficents that I could use with the filter command. Is there a recommended way to do this?
Thanks
Honglei Chen
Honglei Chen le 11 Fév 2015
What version do you have? You can try the new dsp.LMSFilter which you can get the the coefficients by set WeightsOutputPort to true. But nevertheless, I don't think you want to use filter with those coefficients, you should just use in matrix multiplication.

Connectez-vous pour commenter.

Question posée :

le 10 Fév 2015

Commenté :

le 11 Fév 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by