print frame error rate

This commit is contained in:
Ahmet Inan 2024-02-09 09:20:32 +01:00
commit 4b4ee7ae7a
2 changed files with 24 additions and 4 deletions

View file

@ -82,6 +82,7 @@ int main()
int quantization_erasures = 0;
int uncorrected_errors = 0;
int ambiguity_erasures = 0;
int frame_errors = 0;
int bchdec_errors = 0;
for (int l = 0; l < loops; ++l) {
for (int i = 0; i < KW; ++i)
@ -121,8 +122,15 @@ int main()
quantization_erasures += !noisy[i];
for (int i = 0; i < N; ++i)
uncorrected_errors += CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
if (!unique)
if (unique) {
bool error = false;
for (int i = 0; i < N; ++i)
error |= CODE::get_be_bit(decoded, i) != CODE::get_be_bit(codeword, i);
frame_errors += error;
} else {
ambiguity_erasures += N;
++frame_errors;
}
for (int i = 0; i < K; ++i)
CODE::set_be_bit(message, i, noisy[i] < 0);
@ -141,6 +149,7 @@ int main()
bchdec_errors += CODE::get_be_bit(parity, i-K) != CODE::get_be_bit(codeword, i);
}
double frame_error_rate = (double)frame_errors / (double)loops;
double bit_error_rate = (double)uncorrected_errors / (double)(N * loops);
if (!uncorrected_errors && !ambiguity_erasures)
min_SNR = std::min(min_SNR, SNR);
@ -159,10 +168,11 @@ int main()
std::cerr << quantization_erasures << " erasures caused by quantization." << std::endl;
std::cerr << uncorrected_errors << " errors uncorrected." << std::endl;
std::cerr << ambiguity_erasures << " ambiguity erasures." << std::endl;
std::cerr << frame_error_rate << " frame error rate." << std::endl;
std::cerr << bit_error_rate << " bit error rate." << std::endl;
std::cerr << bchdec_ber << " BCH decoder bit error rate." << std::endl;
} else {
std::cout << SNR << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
std::cout << SNR << " " << frame_error_rate << " " << bit_error_rate << " " << bchdec_ber << " " << EbN0 << std::endl;
}
}
std::cerr << "QEF at: " << min_SNR << " SNR" << std::endl;