added more codes with hand-picked erasure probabilities

This commit is contained in:
Ahmet Inan 2025-06-25 15:43:44 +02:00
commit 8cb6f44085
2 changed files with 14 additions and 14 deletions

View file

@ -12,17 +12,11 @@ Copyright 2021 Ahmet Inan <inan@aicodix.de>
#include "polar_freezer.hh"
template <int M>
void code(int N, int K)
void code(int N, int K, double P)
{
long double erasure_probability = (long double)(N - K) / N;
double design_SNR = 10 * std::log10(-std::log(erasure_probability));
std::cerr << "design SNR: " << design_SNR << std::endl;
auto freeze = new CODE::PolarCodeConst0<M>;
double better_SNR = design_SNR + 1.59175;
std::cerr << "better SNR: " << better_SNR << std::endl;
long double better_probability = std::exp(-pow(10.0, better_SNR / 10));
auto frozen = new uint32_t[1<<(M-5)];
(*freeze)(frozen, M, K+(1<<M)-N, better_probability);
(*freeze)(frozen, M, K+(1<<M)-N, P);
delete freeze;
std::cout << "static const uint32_t frozen_" << std::dec << N << "_" << K << "[" << (1<<(M-5)) << "] = { " << std::hex;
@ -33,8 +27,11 @@ void code(int N, int K)
int main()
{
code<14>(16384, 8192+32);
code<13>(8192, 4096+32);
code<12>(4096, 2048+32);
code<16>(65536, 32768+32, 0.42);
code<15>(32768, 16384+32, 0.40);
code<14>(16384, 8192+32, 0.39);
code<13>(8192, 4096+32, 0.38);
code<12>(4096, 2048+32, 0.37);
code<11>(2048, 1024+32, 0.34);
return 0;
}

File diff suppressed because one or more lines are too long