public static void plotBodeForTransferFunction(String name, TransferFunction transferFunction, double[] omega) { double[] bodeMagnitude = transferFunction.getMagnitude(omega); for (int i = 0; i < bodeMagnitude.length; i++) { bodeMagnitude[i] = Conversions.amplitudeToDecibels(bodeMagnitude[i]); } double[] bodePhase = transferFunction.getPhase(omega); for (int i = 0; i < bodePhase.length; i++) { bodePhase[i] = Math.toDegrees(bodePhase[i]); } double[] bodeFrequency = new double[omega.length]; for (int i = 0; i < omega.length; i++) { bodeFrequency[i] = Conversions.radiansPerSecondToHertz(omega[i]); } double[][] bodeData = new double[][] { bodeFrequency, bodeMagnitude, bodePhase }; FFTPlotter plot = new FFTPlotter(bodeData, name + " Bode Plot", "(Hz)", "(dB)", "(deg)"); plot.packAndDisplayFrame(0, 0); }