#include #include #include #include "costas-beacon-sync.h" #include "fft-beacon-finder.h" int main(int argc, char const* argv[]) { FILE* output = fopen("output.raw", "w"); FILE* input = fopen("input.raw", "r"); FFTBeaconFinder finder(1000000); CostasBeaconSync sync(0.03, -0.1, 0.1); int sample_count = 0; clock_t start_time = clock(); std::complex in; while (fread(&in, sizeof(std::complex), 1, input) == 1) { std::complex coarse_synced = finder.work(in); std::complex sync_correction = sync.work(coarse_synced); std::complex out = coarse_synced * sync_correction; fwrite(&out, sizeof(std::complex), 1, output); sample_count++; }; clock_t end_time = clock(); clock_t result = end_time - start_time; std::cout << "Processed " << sample_count << " samples (" << sample_count / 1000000.0 << "s) " << "in " << result / CLOCKS_PER_SEC << " s" << std::endl; fclose(input); fclose(output); return 0; }