1 分钟阅读

1. The Shared Scientific Toolbox in Java

maven 依赖:

2. Jsci

添加依赖:

将 jsci 下载包中的 core.jar 和 wavelet.jar 引用到项目中。具体操作见:2022-04-28-Maven-使用插件安装本地jar包

JavaDoc 文档

Java 使用 FFT 函数测试

public class MathTest {
    private static final Logger LOGGER = LoggerFactory.getLogger(MathTest.class);

    public static void main(String[] args) {
        jsciTest();
    }

    public static void jsciTest() {
        double[] audio = GenerationUtils.generateMergeSin((int) Math.pow(2, 15), 16000, 1, 0, 130, 30, 230, 10, 60, 304, 40);

        double[] absFFT = Signal.absFFT(audio);

        H5Utils.createUnlimitedDoubleFile("jsci_fft_origin.h5", "data", audio);
        H5Utils.createUnlimitedDoubleFile("jsci_fft_abs.h5", "data", absFFT);
    }
}

3.JScience

maven dependency

<dependency>
    <groupId>org.jscience</groupId>
    <artifactId>jscience</artifactId>
    <version>4.3.1</version>
</dependency>

4. JDSP

:link: https://jdsp.dev/

:octocat: https://github.com/psambit9791/jDSP

JDSP 是一个信号处理工具库,旨在提供 MATLAB 或 Python 的 scipy-signal 包中可用的功能。 目标是提供易于使用的 API,用于对信号执行复杂的操作,从而无需了解处理管道中的低级复杂性。

Maven

<dependency>
  <groupId>com.github.psambit9791</groupId>
  <artifactId>jdsp</artifactId>
  <version>1.0.0</version>
</dependency>

Java函数调用


    /**
     * 参考地址:{@link {https://github.com/psambit9791/jDSP/wiki/Fourier-Transforms}}
     */
    public static void jdspTest() {
        double[] audio = GenerationUtils.generateMergeSin((int) Math.pow(2, 15), 16000, 1, 0, 130, 30, 230, 10, 60, 304, 40);

        FastFourier dft = new FastFourier(audio);
        dft.transform();
        /*
        boolean onlyPositive = true;
        double[] out = dft.getMagnitude(onlyPositive); //Positive Absolute
        boolean onlyPositive = true;
        double[][] out = dft.getComplex2D(onlyPositive); //Positive Complex
        boolean onlyPositive = false;
        double[] out = dft.getMagnitude(onlyPositive); //Full Absolute
        boolean onlyPositive = false;
        double[][] out = dft.getComplex2D(onlyPositive); //Full Complex
         */
        double[] out = dft.getMagnitude(false);

        H5Utils.createUnlimitedDoubleFile("jdsp_fft_origin.h5", "data", audio);
        H5Utils.createUnlimitedDoubleFile("jdsp_fft_out.h5", "data", out);
    }

[[Java]]


标签:

分类:

更新时间: