Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Implement LMS adaptive filtering + other adaptive filters #26

Closed
SiboVG opened this issue Nov 4, 2021 · 12 comments
Closed
Assignees
Labels
enhancement New feature or request

Comments

@SiboVG
Copy link
Contributor

SiboVG commented Nov 4, 2021

Adaptive filtering is often used for signal noise reduction and some other cool DSP applications. The most often used one is the Least Mean Square (LMS) adaptive filter.

A very good adaptive filtering library in Python is padasip. It also has some code documentation on how the algorithm should work, both in code and on a documentation page.

Other potential good source: explanation of MATLAB LMS adaptive filtering implementation

@psambit9791 psambit9791 self-assigned this Nov 4, 2021
@psambit9791
Copy link
Owner

I have been looking at introducing adaptive filters to JDSP. Might be worthwhile implementing most used adaptive filters that the given library (padasip) has.
Probably will be incorporated in a future release.

@psambit9791 psambit9791 changed the title Feature request: Implement LMS adaptive filtering Feature request: Implement LMS adaptive filtering + other adaptive filters Nov 4, 2021
@psambit9791 psambit9791 added the enhancement New feature or request label Nov 4, 2021
@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 14, 2021

@psambit9791 am working on an LMS and NLMS adaptive filter for my application and both seem to be working. Still have to write some test and am also trying to do other adaptive filters from padasip. So you can assign this issue to me if you want

@psambit9791
Copy link
Owner

psambit9791 commented Nov 14, 2021

  • LMS
  • NLMS
  • SSLMS
  • NSSLMS
  • RLS
  • GNGD
  • AP

@psambit9791
Copy link
Owner

psambit9791 commented Nov 14, 2021

@psambit9791 am working on an LMS and NLMS adaptive filter for my application and both seem to be working.

@SiboVG I have created a checklist for the filters. You can tick the ones you have completed / are working on.
Also, in terms of the class location, it will make sense to keep them inside the filter package under a subpackage classed adaptive. The new package name being com.github.psambit9791.jdsp.filter.adaptive.

@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 14, 2021

@psambit9791 am working on an LMS and NLMS adaptive filter for my application and both seem to be working.

@SiboVG I have created a checklist for the filters. You can tick the ones you have completed / are working on. Also, in terms of the class location, it will make sense to keep them inside the filter package under a subpackage classed adaptive. The new package name being com.github.psambit9791.jdsp.filter.adaptive.

That's exactly how I've done it right now, with the adaptive-filter package ;) good that we're on the same wavelength

@psambit9791 psambit9791 added this to In progress ⏳ in Features List Nov 14, 2021
@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 15, 2021

@psambit9791 I would suggest leaving out the LMF and NLMF filter. I've tried implementing it, but it gave very unreliable results (results diverged very often, both in my own implementation as in the padasip implementation), and is also a little used adaptive filter.

@psambit9791
Copy link
Owner

@SiboVG What about RLS and GNGD? I am not sure how often adaptive filters are used in practice, especially the types.

@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 15, 2021 via email

@psambit9791
Copy link
Owner

psambit9791 commented Nov 15, 2021

I'll pick up RLS, AP and GNGD.

SiboVG added a commit to SiboVG/jDSP that referenced this issue Nov 15, 2021
SiboVG added a commit to SiboVG/jDSP that referenced this issue Nov 15, 2021
@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 16, 2021

I can work on SSLMS and NSSLMS, since they are similar to LMS and NLMS

SiboVG added a commit to SiboVG/jDSP that referenced this issue Nov 16, 2021
SiboVG added a commit to SiboVG/jDSP that referenced this issue Nov 16, 2021
@psambit9791
Copy link
Owner

@SiboVG Do you think it makes sense to create an abstract class called _Adaptive which implements common functionalities the way it works in padasip?

@SiboVG
Copy link
Contributor Author

SiboVG commented Nov 16, 2021

@SiboVG Do you think it makes sense to create an abstract class called _Adaptive which implements common functionalities the way it works in padasip?

Was also thinking about it; I think all of them will use the same methods, but that's maybe something we can do after every filter is implemented, because it might be that some filters need different parameters etc.

psambit9791 added a commit that referenced this issue Nov 16, 2021
[fixes #26] Implement LMS & NLMS adaptive filter
@psambit9791 psambit9791 reopened this Nov 16, 2021
SiboVG added a commit to SiboVG/jDSP that referenced this issue Nov 22, 2021
@psambit9791 psambit9791 reopened this Nov 22, 2021
@psambit9791 psambit9791 moved this from In progress ⏳ to Done ✔️ in Features List Dec 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Features List
  
Done ✔️
Development

No branches or pull requests

2 participants