Создайте приложение Java с несколькими функциями MATLAB

В этом примере показано, как создать Java® приложение, которое использует несколько MATLAB® функции, чтобы анализировать сигнал и затем изобразить результат в виде графика.

В этом примере вы выполняете следующие шаги:

  1. Используйте MATLAB Compiler SDK™, чтобы создать пакет, содержащий класс, который имеет закрытый метод, который автоматически инкапсулируется.

  2. Доступ к функциям MATLAB в приложении Java, включая использование MWArray иерархия классов, чтобы представлять данные.

  3. Создайте и запустите приложение.

spectralanalysis Приложение

spectralanalysis приложение анализирует сигнал и изображает результат в виде графика. Класс fourier выполняет быстрое преобразование Фурье (FFT) на массиве входных данных. Метод этого класса, computefft, возвращает результаты того БПФ как два выходных массива — массив точек частоты и спектральной плотности мощности.

Второй метод, plotfft, изображает возвращенные данные в виде графика. Эти два метода, computefft и plotfft, инкапсулируйте функции MATLAB.

Файлы

Функции MATLABcomputefft.m
plotfft.m
Местоположение функции MATLABmatlabroot\toolbox\javabuilder\Examples\SpectraExample\SpectraDemoComp
Участок кода Javamatlabroot\toolbox\javabuilder\Examples\SpectraExample\SpectraDemoJavaApp\powerspect.java

Процедура

  1. Скопируйте SpectraExample папка, которая поставляется с MATLAB к вашей папке работы:

    copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','SpectraExample'),'SpectraExample')

    В командной строке MATLAB перейдите к новому SpectraExample\SpectraDemoComp подпапка в вашей папке работы.

  2. Исследуйте функции MATLAB computefft.m и plotfft.m.

     computefft.m

     plotfft.m

  3. Создайте пакет Java с приложением Library Compiler или compiler.build.javaPackage.

    Используйте следующую информацию для своего проекта:

    Название проектаspectralanalysis
    ClassName fourier
    Файл, чтобы скомпилироватьplotfft.m

    Примечание

    В этом примере, приложение, которое использует fourier класс не вызывает computefft непосредственно. computefft метод требуется только plotfft метод. Вы не должны вручную добавлять computefft функционируйте к пакету, когда компилятор автоматически включает его во время анализа зависимостей.

    Например, если вы используете compiler.build.javaPackageВвод:

    buildResults = compiler.build.javaPackage('plotfft.m', ...
    'PackageName','spectralanalysis', ...
    'ClassName','fourier');

    Для получения дополнительной информации смотрите, что инструкции в Генерируют приложение Java Пакета и Сборки Java.

  4. Запишите исходный код для приложения Java, это получает доступ к функциям MATLAB.

    Пример приложения для этого примера находится в SpectraExample\SpectraDemoJavaApp\powerspect.java.

     powerspect.java

    Программа делает следующее:

    • Создает входной массив со значениями, представляющими случайный сигнал двумя синусоидами на уровне 15 и 40 Гц, встроенных в нем

    • Создает MWNumericArray массив, который содержит данные

      data = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL);
      
    • Инстанцирует fourier объект

    • Вызывает plotfft метод, который вызывает computeftt и отображает данные на графике

    • Использует try- catch блокируйтесь, чтобы обработать исключения

    • Освобождает нативные ресурсы с помощью MWArray методы

  5. В MATLAB перейдите к SpectraDemoJavaApp папка.

  6. Скопируйте сгенерированный spectralanalysis.jar пакет в эту папку.

    • Если вы использовали compiler.build.javaPackageВвод:

      copyfile(fullfile('..','SpectraDemoComp','spectralanalysisjavaPackage','spectralanalysis.jar'))
    • Если вы использовали Library Compiler, введите:

      copyfile(fullfile('..','SpectraDemoComp','spectralanalysis','for_testing','spectralanalysis.jar'))
  7. Откройте окно командной строки и перейдите к SpectraDemoJavaApp папка.

  8. Скомпилируйте powerspect.java приложение с помощью javac.

    • На Windows®, выполните следующую команду:

      javac -classpath "matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\spectralanalysis.jar powerspect.java
    • На UNIX®, выполните следующую команду:

      javac -classpath "matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./spectralanalysis.jar powerspect.java

    Замените matlabroot с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Windows, путем может быть C:\Program Files\MATLAB\R2021b.

  9. Запустите powerspect приложение.

    • На Windows выполните следующую команду:

      java -classpath .;"matlabroot\toolbox\javabuilder\jar\javabuilder.jar";.\spectralanalysis.jar powerspect
    • На UNIX выполните следующую команду:

      java -classpath .:"matlabroot/toolbox/javabuilder/jar/javabuilder.jar":./spectralanalysis.jar powerspect
      

    Примечание

    Если при запуске приложение на Mac 64-битная платформа, необходимо добавить -d64 отметьте в команде Java.

    powerspect программа отображает следующий вывод:

    Time domain signal plotted above the power spectral density plot that reveals signals at 16 and 40 Hz

Смотрите также

|

Похожие темы