package polyofdm;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.jfree.chart.JFreeChart;
import polyofdm.chart.ChartGenerator;
import polyofdm.matrixgen.Newton;
import polyofdm.matrixgen.OFDM;
import Jama.Matrix;
public class CreateChartsPNG {
public static void main(String[] args) throws IOException {
generatePolynomial(16, 4, 500, 400);
generateOFDM(16, 4, 500, 400);
}
private static void generatePolynomial(int all, int missed, int width, int height) throws IOException {
String titlePart1 = "Advanced PCC-OFDM";
String titlePart2 = all + " carriers used, " + (all-missed) + " polynomials";
String filename = "html/img/polynomial_" + all + "used_" + missed + "dropped_";
Matrix matrix = Newton.generateMatrix(all, missed);
writeChart(ChartGenerator.createChartFourier(matrix, titlePart1, titlePart2), new File(filename + "frequency.png"), width, height);
writeChart(ChartGenerator.createChartReal(matrix,true, titlePart1, titlePart2), new File(filename + "real_sinus.png"), width, height);
writeChart(ChartGenerator.createChartReal(matrix,false, titlePart1, titlePart2), new File(filename + "real_cosinus.png"), width, height);
writeChart(ChartGenerator.createChartMaxAmp(matrix, titlePart1, titlePart2), new File(filename + "real_norm.png"), width, height);
// writeChart(ChartGenerator.createChartSpektrum(matrix, true, false, titlePart1, titlePart2), new File(filename + "powerspectrum_near.png"), width, height);
// writeChart(ChartGenerator.createChartSpektrum(matrix, true, true, titlePart1, titlePart2), new File(filename + "powerspectrum_near_onlyall.png"), width, height);
writeChart(ChartGenerator.createChartSpektrum(matrix, false, false, titlePart1, titlePart2), new File(filename + "powerspectrum_far.png"), width, height);
writeChart(ChartGenerator.createChartSpektrum(matrix, false, true, titlePart1, titlePart2), new File(filename + "powerspectrum_far_onlyall.png"), width, height);
}
private static void generateOFDM(int all, int missed, int width, int height) throws IOException {
String titlePart1 = "Rectangle-OFDM";
String titlePart2 = (all-missed) + " carriers";
String filename = "html/img/ofdm_" + (all-missed) + "carriers_";
Matrix matrix = OFDM.generateMatrix(all,missed);
writeChart(ChartGenerator.createChartFourier(matrix, titlePart1, titlePart2), new File(filename + "frequency.png"), width, height);
writeChart(ChartGenerator.createChartReal(matrix,true, titlePart1, titlePart2), new File(filename + "real_sinus.png"), width, height);
writeChart(ChartGenerator.createChartReal(matrix,false, titlePart1, titlePart2), new File(filename + "real_cosinus.png"), width, height);
writeChart(ChartGenerator.createChartMaxAmp(matrix, titlePart1, titlePart2), new File(filename + "real_norm.png"), width, height);
// writeChart(ChartGenerator.createChartSpektrum(matrix, true, false, titlePart1, titlePart2), new File(filename + "powerspectrum_near.png"), width, height);
// writeChart(ChartGenerator.createChartSpektrum(matrix, true, true, titlePart1, titlePart2), new File(filename + "powerspectrum_near_onlyall.png"), width, height);
writeChart(ChartGenerator.createChartSpektrum(matrix, false, false, titlePart1, titlePart2), new File(filename + "powerspectrum_far.png"), width, height);
writeChart(ChartGenerator.createChartSpektrum(matrix, false, true, titlePart1, titlePart2), new File(filename + "powerspectrum_far_onlyall.png"), width, height);
}
private static void writeChart(JFreeChart chart, File out,
int width, int height) throws IOException {
BufferedImage img = chart.createBufferedImage(width, height);
ImageIO.write(img, "png", out);
}
}