В этом примере показано, как создать Java® приложение, которое использует несколько MATLAB® функции, чтобы анализировать сигнал и затем изобразить результат в виде графика.
В этом примере вы выполняете следующие шаги:
Используйте MATLAB Compiler SDK™, чтобы создать пакет, содержащий класс, который имеет закрытый метод, который автоматически инкапсулируется.
Доступ к функциям MATLAB в приложении Java, включая использование MWArray
иерархия классов, чтобы представлять данные.
Создайте и запустите приложение.
spectralanalysis
Приложениеspectralanalysis
приложение анализирует сигнал и изображает результат в виде графика. Класс fourier
выполняет быстрое преобразование Фурье (FFT) на массиве входных данных. Метод этого класса, computefft
, возвращает результаты того БПФ как два выходных массива — массив точек частоты и спектральной плотности мощности.
Второй метод, plotfft
, изображает возвращенные данные в виде графика. Эти два метода, computefft
и plotfft
, инкапсулируйте функции MATLAB.
Функции MATLAB | computefft.m plotfft.m |
Местоположение функции MATLAB |
|
Участок кода Java |
|
Скопируйте SpectraExample
папка, которая поставляется с MATLAB к вашей папке работы:
copyfile(fullfile(matlabroot,'toolbox','javabuilder','Examples','SpectraExample'),'SpectraExample')
В командной строке MATLAB перейдите к новому SpectraExample\SpectraDemoComp
подпапка в вашей папке работы.
Исследуйте функции MATLAB computefft.m
и plotfft.m
.
Создайте пакет 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.
Запишите исходный код для приложения Java, это получает доступ к функциям MATLAB.
Пример приложения для этого примера находится в SpectraExample\SpectraDemoJavaApp\powerspect.java
.
Программа делает следующее:
Создает входной массив со значениями, представляющими случайный сигнал двумя синусоидами на уровне 15 и 40 Гц, встроенных в нем
Создает MWNumericArray
массив, который содержит данные
data = MWNumericArray.newInstance(dims, MWClassID.DOUBLE, MWComplexity.REAL);
Инстанцирует fourier
объект
Вызывает plotfft
метод, который вызывает computeftt
и отображает данные на графике
Использует try
- catch
блокируйтесь, чтобы обработать исключения
Освобождает нативные ресурсы с помощью MWArray
методы
В MATLAB перейдите к SpectraDemoJavaApp
папка.
Скопируйте сгенерированный spectralanalysis.jar
пакет в эту папку.
Если вы использовали compiler.build.javaPackage
Ввод:
copyfile(fullfile('..','SpectraDemoComp','spectralanalysisjavaPackage','spectralanalysis.jar'))
Если вы использовали Library Compiler, введите:
copyfile(fullfile('..','SpectraDemoComp','spectralanalysis','for_testing','spectralanalysis.jar'))
Откройте окно командной строки и перейдите к SpectraDemoJavaApp
папка.
Скомпилируйте 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
Замените
с путем к вашему MATLAB или папке установки MATLAB Runtime. Например, на Windows, путем может быть matlabroot
C:\Program Files\MATLAB\R2021b
.
Запустите 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
программа отображает следующий вывод:
libraryCompiler
| compiler.build.javaPackage