Use Hamming distance when hardening metric

pull/4/head
pabr 2017-01-11 16:43:56 +01:00
rodzic 2c52605cec
commit c36f1d6501
1 zmienionych plików z 5 dodań i 3 usunięć

Wyświetl plik

@ -1,6 +1,8 @@
#ifndef LEANSDR_SDR_H
#define LEANSDR_SDR_H
#include "leansdr/math.h"
namespace leansdr {
//////////////////////////////////////////////////////////////////////
@ -327,6 +329,7 @@ namespace leansdr {
}
public:
// Convert soft metric to Hamming distance
void harden() {
for ( int i=0; i<R; ++i )
for ( int q=0; q<R; ++q ) {
@ -336,9 +339,8 @@ namespace leansdr {
else if ( m[1]<=m[2] && m[1]<=m[3] ) best = 1;
else if ( m[2]<=m[3] ) best = 2;
else best = 3;
// TBD Try Hamming distance
m[0] = m[1] = m[2] = m[3] = 1;
m[best] = 0;
for ( int s=0; s<4; ++s )
m[s] = hamming_weight((unsigned long)(s^best));
}
}