Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

An efficient IIR filter library written in JAVA

License

NotificationsYou must be signed in to change notification settings

berndporr/iirj

Repository files navigation

An IIR filter library written in JAVA.

Highpass, lowpass, bandpass and bandstop asButterworth, Bessel and Chebyshev Type I/II.

You can also calculate the filter coefficients with Python'sscipy and then create your custom IIR filter.See thepython-design subdirectory.

It's based on the IIR1 library [https://github.com/berndporr/iir1]which in turn is based on Vinnie Falco's DSPFilters [https://github.com/vinniefalco/DSPFilters].

alt tag

Usage

import uk.me.berndporr.iirj.*;

Constructor

Butterworth butterworth = new Butterworth();

Initialisation

  1. Bandstop

    butterworth.bandStop(order,Samplingfreq,Center freq,Width in frequ);

  2. Bandpass

    butterworth.bandPass(order,Samplingfreq,Center freq,Width in frequ);

  3. Lowpass

    butterworth.lowPass(order,Samplingfreq,Cutoff frequ);

  4. Highpass

    butterworth.highPass(order,Samplingfreq,Cutoff frequ);

Filtering

Sample by sample for realtime processing:

v = butterworth.filter(v)

Coding examples

See the*Test.java files for complete examplesfor all filter types. Run them withmvn test. These test programswrite the different impulse responses of the filters to text files.

Installation

Local install

  • Clone this repository
  • Runmvn install to add it to your local maven respository

Maven central

AtMaven Centralclick on the iirj version number and then choose the appropriate installation option, forexample for Android studio.

Android Studio

dependencies {    implementation group: 'uk.me.berndporr', name:'iirj', version: '1.7'}

Android studio will automatically notify you if a new IIR library is available.

Documentation

  • Online:https://berndporr.github.io/iirj/
  • mvn javadoc:javadoc generates the JavaDocs
  • mvn site generates the web pages containing the documentationundertarget/site describing all commands in detail.

Testing

mvn test creates impulse responses in the subdirectoriesfor the different filters:target/surefire-reports.

To see the impulse and frequency responses run:

python3 ./plot_impulse_fresponse.py <filter>

where is is butterworth, bessel, chebyshevI or chebyshevII.

The script DetectorTest uses a bandpass filter to detect theheartbeats of an ECG recording faking a matched filter which couldbe also seen as a 1st approximation of a wavelet. The heartrate isstored in hr.txt.

Have fun

/Bernd Porr[http://www.berndporr.me.uk]


[8]ページ先頭

©2009-2025 Movatter.jp