//Crea una Matriz de 1x1 denominada "FC"
Matrix FCMatrix = new Matrix(2500.0, "FC");
//Carga la matriz anterior "FC" a Octave
jopas.Load(FCMatrix);
//Crea una Matriz de 1x1 denominada "FR", esto puede ser realizadocomo en el anterior código.
jopas.Load(5000.0, "FR");
String R = "1";
String A = "40";
//Ejecuta los comandos en Octave utilizando también las variables locales de java "R" y "A"
jopas.Execute("[N,W]=cheb1ord(FC/10000,FR/10000," + R + "," +A+ ")");
jopas.Execute("[B,A]=cheby1(N," + R + ",W)");
jopas.Execute("[H,F]=freqz(B,A,512,20000)");
jopas.Execute("modulodB=20*log10(abs(H))");
jopas.Execute("fase=unwrap(angle(H))");
jopas.Execute("Wc=W*10000");
/**
*XYPlots de "F" y "modulodB", el título de la gráfica a mostrar es "Módulo", la
* X label es "Frecuencia (Hz)" y laY label es "Módulo (dB)".
*/
this.jopasLabel2.paintLabel("F", "modulodB", "Módulo","Frecuencia (Hz)", "Módulo (dB)");
//Lo mismo con las variables "F" y "fase"
this.jopasLabel1.paintLabel("F", "fase", "Fase", "Frecuencia (Hz)",
"Fase (rad)");
/**
* Muestra el valor de la variable "N" de Octave en el label.
* jopas.Save siempre retorna una variable de tipo Matrix.
* En este caso sabemos el tamaño de la matriz,es una matriz de 1x1
* por lo que accedemos directamente al elemento (0,0) de la matriz para obtener su valor.
*/
this.jTextField6.setText(Double.toString(jopas.Save("N").getRealAt(0,0)));
this.jTextField5.setText(Double.toString(jopas.Save("Wc").getRealAt(0,0))); |