public double[][] getBodeData(double[] time, double[] data) { double[][] freqMagPhase = BodePlotConstructor.computeFreqMagPhase(time, data); double[] frequency = freqMagPhase[0]; double[] magnitude = new double[freqMagPhase[1].length]; for (int i = 0; i < freqMagPhase[1].length; i++) { magnitude[i] = Conversions.amplitudeToDecibels(freqMagPhase[1][i]); } double[] phase = new double[freqMagPhase[2].length]; for (int i = 0; i < freqMagPhase[2].length; i++) { phase[i] = Math.toDegrees(freqMagPhase[2][i]); } double[][] bodeData = new double[][] { frequency, magnitude, phase }; return bodeData; }
for (int j = 0; j < fftData[1].length; j++) magnitude[j] = Conversions.amplitudeToDecibels(fftData[1][j]);
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); }
for (int i = 0; i < fftData[1].length; i++) magnitude[i] = Conversions.amplitudeToDecibels(fftData[1][i]);
for (int i = 0; i < fftData[1].length; i++) magnitude[i] = Conversions.amplitudeToDecibels(fftData[1][i]);
for (int i = 0; i < fftData[1].length; i++) magnitude[i] = Conversions.amplitudeToDecibels(fftData[1][i]);