Você está na página 1de 4

#include<iostream>

#include <bitset>

#include<string>

using namespace std;

int main()

int sum[16]{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

// Sve moguce informacione reci (ima ih 16)

int I[16][4]{

{0,0,0,0},

{0,0,0,1},

{0,0,1,0},

{0,0,1,1},

{0,1,0,0},

{0,1,0,1},

{0,1,1,0},

{0,1,1,1},

{1,0,0,0},

{1,0,0,1},

{1,0,1,0},

{1,0,1,1},

{1,1,0,0},

{1,1,0,1},

{1,1,1,0},

{1,1,1,1},

};

//Generisuca matrica

int G[4]{ 0b1110000 ,0b1001100 ,0b0101010 ,0b1101001 };

int tez[8]{ 0,0,0,0,0,0,0,0 };


/*Prolazimo kroz sve informacione reci i mnozimo ih sa generisucom matricom

tj. xor vrsta matrica sa rednim brojem pozicije 1 u informacionoj reci*/

for (int i = 0 ; i < 16; i++) {

for (int j = 0; j < 4; j++) {

if (I[i][j] == 1) {

sum[i] = sum[i] ^ G[j];

//Ispis kodnih reci i njihovih tezina(broj 1 u kodnoj reci)

cout << "Kodne reci: " << endl;

for (int i = 0; i < 16; i++) {

int tezina = 0;

string kod = bitset<7>(sum[i]).to_string();

for (int t = 0; t < kod.size(); t++) {

if (kod[t] == '1') tezina++;

tez[tezina]++;

cout << kod << " tezina " << tezina << endl;

//Ispis koliko ima kodnih reci sa teinama d = 0, 1, ..., n.

for (int i = 0; i < 8; i++) {

cout << "Broj kodnih reci sa tezinom " << i << ": " << tez[i] << endl;

}
Rezultat programa za matricu G

Kao sto se vidi u rezultatu rada programa ima 16 kodnih reci duzine 7 bita.

Parametri koda su (7,4) tj informacione reci su duzine 4 bita a kodne 7. Ovakav kod moze da koriguje
jednu a detektuje 2 greske.

Za generisucu matricu G' kod programa je isti samo se promeni matrica I informacione reci (sad ih ima 8
I trobitne su).

Kod rezultata imamo manje kodnih reci nego kod matrice G. Imamo 8 kodnih reci duzine 6 bita.
Parametri koda su (6,3) I takodje moze da koriguje jednu a detektuje dve greske
Rezultati programa za matricu G'

Você também pode gostar