package polyofdm.cc.full;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
import polyofdm.chart.PdfGenerator;
import Jama.Matrix;
public class GeneratePDF {
public static void main(String[] args) throws IOException {
generatePDF(32, 1);
generatePDF(32, 2);
generatePDF(32, 3);
generatePDF(32, 4);
generatePDF(32, 5);
generatePDF(32, 6);
}
private static void generatePDF(int allCarriers, int ccCarriersOneSide) throws IOException {
Set<Integer> cancellationCarriers = new HashSet<Integer>();
for (int i = 0; i < ccCarriersOneSide; i++) {
cancellationCarriers.add(i);
cancellationCarriers.add(allCarriers-1-i);
}
Matrix cancellationMatrix = FullCC.createCancellationMatrix(allCarriers, cancellationCarriers);
System.out.println("Cancellation Matrix");
cancellationMatrix.print(15, 5);
Matrix displayMatrix = new Matrix(allCarriers-cancellationCarriers.size(), allCarriers);
for (int basisVector = 0; basisVector < allCarriers-cancellationCarriers.size(); basisVector++) {
int usedCarriers = 0;
int cancelledCarriers = 0;
for (int i = 0; i < allCarriers; i++) {
if (cancellationCarriers.contains(i)){
displayMatrix.set(basisVector, i, cancellationMatrix.get(cancelledCarriers, basisVector));
cancelledCarriers++;
} else {
if (usedCarriers == basisVector)
displayMatrix.set(basisVector, i, 1);
usedCarriers++;
}
}
}
System.out.println("Display Matrix");
displayMatrix.print(15, 5);
PdfGenerator.generatePDF(
"CancellationCarrier_" + allCarriers + "used_" + cancellationCarriers.size() + "cc.pdf",
displayMatrix,
"Cancellation Carrier",
allCarriers + " carriers used, " + (cancellationCarriers.size()) + " cc"
);
}
}