Java调用MatLab进行FFT运算及滤波
2017-01-11 13:07
676 查看
1、使用MatLab2015b生成Jar包时,需要使用JDK1.7,使用1.8会报错;
2、使用MatLab做FFT运算代码
Java代码:
public double[] FFT(double[] input) {
try {
MWNumericArray para = new MWNumericArray(input, MWClassID.DOUBLE);
Object[] result = tool.FFT(1, para);
MWNumericArray b = (MWNumericArray) result[0];
return b.getDoubleData();
} catch (Exception e) {
System.out.println("FFT失败!");
}
return input;
}
MatLab代码
function [ output ] = FFT( input )
N=length(input); %样点个数
output=abs(fft(input(1:N))/N*2);%真实的幅值
end
3、使用MatLab做滤波
/**
* 生成滤波器
* @param stop
* @param pass
* @return
*/
public Object getFilter(int stop, int pass) {
try {
MWNumericArray stopA = new MWNumericArray(Double.valueOf(stop), MWClassID.DOUBLE);
MWNumericArray passA = new MWNumericArray(Double.valueOf(pass), MWClassID.DOUBLE);
Object[] result = tool.GetFilter(1, stopA, passA);
return result[0];
} catch (Exception e) {
e.printStackTrace();
System.out.println("g
cbc3
etFilter失败!");
}
return null;
}
伦理片 http://www.dotdy.com/
/**
* 滤波
* @param input
* @return
*/
public double[] Filter(double[] input) {
try {
if (filter == null) {
filter = getFilter();
}
MWNumericArray para = new MWNumericArray(input, MWClassID.DOUBLE);
Object[] result = tool.Filter(1, filter, para);
MWNumericArray b = (MWNumericArray) result[0];
return b.getDoubleData();
} catch (Exception e) {
e.printStackTrace();
System.out.println("FilterHP10失败!");
}
return input;
}
MatLab代码:
function [ output ] = GetFilter( input1,input2 )
Fs = 15625;
Fstop = input1; % Stopband Frequency
Fpass = input2; % Passband Frequency
Dstop = 0.001; % Stopband Attenuation
Dpass = 0.057501127785; % Passband Ripple
dens = 20; % Density Factor
[N, Fo, Ao, W] = firpmord([Fstop, Fpass]/(Fs/2), [0 1], [Dstop, Dpass]);
b = firpm(N, Fo, Ao, W, {dens});
output = dfilt.dffir(b);
end
function [ output ] = Filter(filterimpl, input)
output=filter(filterimpl,input);
end
2、使用MatLab做FFT运算代码
Java代码:
public double[] FFT(double[] input) {
try {
MWNumericArray para = new MWNumericArray(input, MWClassID.DOUBLE);
Object[] result = tool.FFT(1, para);
MWNumericArray b = (MWNumericArray) result[0];
return b.getDoubleData();
} catch (Exception e) {
System.out.println("FFT失败!");
}
return input;
}
MatLab代码
function [ output ] = FFT( input )
N=length(input); %样点个数
output=abs(fft(input(1:N))/N*2);%真实的幅值
end
3、使用MatLab做滤波
/**
* 生成滤波器
* @param stop
* @param pass
* @return
*/
public Object getFilter(int stop, int pass) {
try {
MWNumericArray stopA = new MWNumericArray(Double.valueOf(stop), MWClassID.DOUBLE);
MWNumericArray passA = new MWNumericArray(Double.valueOf(pass), MWClassID.DOUBLE);
Object[] result = tool.GetFilter(1, stopA, passA);
return result[0];
} catch (Exception e) {
e.printStackTrace();
System.out.println("g
cbc3
etFilter失败!");
}
return null;
}
伦理片 http://www.dotdy.com/
/**
* 滤波
* @param input
* @return
*/
public double[] Filter(double[] input) {
try {
if (filter == null) {
filter = getFilter();
}
MWNumericArray para = new MWNumericArray(input, MWClassID.DOUBLE);
Object[] result = tool.Filter(1, filter, para);
MWNumericArray b = (MWNumericArray) result[0];
return b.getDoubleData();
} catch (Exception e) {
e.printStackTrace();
System.out.println("FilterHP10失败!");
}
return input;
}
MatLab代码:
function [ output ] = GetFilter( input1,input2 )
Fs = 15625;
Fstop = input1; % Stopband Frequency
Fpass = input2; % Passband Frequency
Dstop = 0.001; % Stopband Attenuation
Dpass = 0.057501127785; % Passband Ripple
dens = 20; % Density Factor
[N, Fo, Ao, W] = firpmord([Fstop, Fpass]/(Fs/2), [0 1], [Dstop, Dpass]);
b = firpm(N, Fo, Ao, W, {dens});
output = dfilt.dffir(b);
end
function [ output ] = Filter(filterimpl, input)
output=filter(filterimpl,input);
end
相关文章推荐
- matlab运用fft进行简单的滤波
- java 调用js 方法库进行简单的数学表达式的运算
- java调用matlab实例(以四则运算为例)
- [Matlab] 使用GPU进行滤波运算
- matlab调用gpu进行矩阵运算
- JAVA中如何调用matlab并返回运算结果?
- java进行md5运算(Java类函数调用)
- java对浮点数进行运算--工具类
- java调用matlab
- 采用分治法进行大数乘法运算 (java)
- 最简单的Java调用Orcale存储过程进行批量操作
- Ecplses+axis+BPEL2.0实现:BPEL调用加减法的Web服务,进行加减运算
- JavaAdapter扩展进行Service调用拦截处理
- Java 反射进行动态方法调用
- java中通过jacob调用dts进行数据导入导出
- java调用dll进行人脸识别(JNI的使用)
- Java的简单类型进行精确的浮点数运算
- MATLAB Java builder的使用——在JAVA中调用MATLAB代码
- java中调用matlab代码 (matlab java builder)