public static void testButterWorth() { YoVariableRegistry registry = new YoVariableRegistry("Test"); double alpha = .99; ButterworthFilteredYoVariable butterworthFilteredYoVariable = new ButterworthFilteredYoVariable("test", registry, alpha, ButterworthFilterType.LOW_PASS); double freq; int numberOfCycles; double endTime; @SuppressWarnings("unused") int numberOfElements; freq = 1.0; numberOfCycles = 3; endTime = (numberOfCycles) / freq; double deltaT = 0.002; numberOfElements = (int) Math.ceil(endTime / deltaT) + 1; ArrayList<double[][]> listOfXYCurves = new ArrayList<double[][]>(); double[][] inputCurve; double[][] outputCurve; inputCurve = generateInputCurve(endTime, freq, deltaT); outputCurve = getFilteredCurve(inputCurve, butterworthFilteredYoVariable); double dB = getMagnitudeInDecibels(inputCurve, outputCurve); System.out.println("dB= " + dB); listOfXYCurves.add(inputCurve); listOfXYCurves.add(outputCurve); }
public static void testButterWorth() { YoVariableRegistry registry = new YoVariableRegistry("Test"); double alpha = .99; ButterworthFilteredYoVariable butterworthFilteredYoVariable = new ButterworthFilteredYoVariable("test", registry, alpha, ButterworthFilterType.LOW_PASS); double freq; int numberOfCycles; double endTime; @SuppressWarnings("unused") int numberOfElements; freq = 1.0; numberOfCycles = 3; endTime = (numberOfCycles) / freq; double deltaT = 0.002; numberOfElements = (int) Math.ceil(endTime / deltaT) + 1; ArrayList<double[][]> listOfXYCurves = new ArrayList<double[][]>(); double[][] inputCurve; double[][] outputCurve; inputCurve = generateInputCurve(endTime, freq, deltaT); outputCurve = getFilteredCurve(inputCurve, butterworthFilteredYoVariable); double dB = getMagnitudeInDecibels(inputCurve, outputCurve); System.out.println("dB= " + dB); listOfXYCurves.add(inputCurve); listOfXYCurves.add(outputCurve); }
private static double plotBodeForAlpha(double alpha, double deltaT) { YoVariableRegistry registry = new YoVariableRegistry("Test"); ButterworthFilteredYoVariable butterworthFilteredYoVariable = new ButterworthFilteredYoVariable("test", registry, alpha, ButterworthFilterType.LOW_PASS); double startFreq = 1e-2; double endFreq = 0.25 * (1.0 / deltaT); int numberOfTestPoints = 100; double deltaFreq = (endFreq - startFreq) / (numberOfTestPoints - 1); ArrayList<Double> testFrequencies = new ArrayList<Double>(); ArrayList<Double> attenuations = new ArrayList<Double>(); for (double freq = startFreq; freq <= endFreq; freq = freq + deltaFreq) { int numberOfCycles = 3; double endTime = (numberOfCycles) / freq; double[][] inputCurve = generateInputCurve(endTime, freq, deltaT); double[][] outputCurve = getFilteredCurve(inputCurve, butterworthFilteredYoVariable); double dB = getMagnitudeInDecibels(inputCurve, outputCurve); testFrequencies.add(freq); attenuations.add(dB); } @SuppressWarnings("unused") ArrayList<Double> testFrequenciesLog = convertToLog(testFrequencies); double breakFreq = getBreakFreq(testFrequencies, attenuations); return breakFreq; }
private static double plotBodeForAlpha(double alpha, double deltaT) { YoVariableRegistry registry = new YoVariableRegistry("Test"); ButterworthFilteredYoVariable butterworthFilteredYoVariable = new ButterworthFilteredYoVariable("test", registry, alpha, ButterworthFilterType.LOW_PASS); double startFreq = 1e-2; double endFreq = 0.25 * (1.0 / deltaT); int numberOfTestPoints = 100; double deltaFreq = (endFreq - startFreq) / (numberOfTestPoints - 1); ArrayList<Double> testFrequencies = new ArrayList<Double>(); ArrayList<Double> attenuations = new ArrayList<Double>(); for (double freq = startFreq; freq <= endFreq; freq = freq + deltaFreq) { int numberOfCycles = 3; double endTime = (numberOfCycles) / freq; double[][] inputCurve = generateInputCurve(endTime, freq, deltaT); double[][] outputCurve = getFilteredCurve(inputCurve, butterworthFilteredYoVariable); double dB = getMagnitudeInDecibels(inputCurve, outputCurve); testFrequencies.add(freq); attenuations.add(dB); } @SuppressWarnings("unused") ArrayList<Double> testFrequenciesLog = convertToLog(testFrequencies); double breakFreq = getBreakFreq(testFrequencies, attenuations); return breakFreq; }