Išmokti koduoti duomenų kanalą. Užkoduoti duotą paveikslą Hamingo (angl. - Hamming) (7, 4) kodu. Palyginti pasikartojančio (angl. - repetition) ir Hamingo kodų efektyvumą.
BW=im2bw(I);
Paveikslėlio matmenys pakeičiame į 256 x 256 dydį:
I_resized=imresize(BW, [256,256], 'nearest');
figure(1)
imshow(I_resized)
Sukuriame žinučių vektorių S iš duotojo paveikslo:
zin_S=reshape(I_resized, 256*256/4, 4);
Sukuriame kodo generavimo matrica G:
G=[1,0,0,0, 1,0,1;
0,1,0,0, 1,1,1;
0,0,1,0, 1,1,0;
0,0,0,1, 0,1,1];
Gauname perdavimui paruoštą kodą X:
X=mod(double(zin_S)*G,2);
2. Užkoduotus duomenis paveikite triukšmu:
Sukuriame triukšmo vektorių:
T=randsrc(256*256/4,7,[0, 1; 0.03, 0.97]);
Iš X ir T vektorių gauname kanalu perduoto kodo vektorių Y:
Y=xor(T,X);
3. Iškoduokite triukšmu paveiktus duomenis:
Sukuriame lygiškumo matricą P ir sindromų matricą S:
P=[1 0 1;
1 1 1;
1 1 0;
0 1 1];
S=[1 0 0;
1 1 0;
1 1 1;
0 1 1;
1 0 1;
0 1 0;
0 0 1];
Apskaičiuojame sindromo vektorių Z:
Z=mod(Y*S, 2);
Aptinkame kurioje vietoje ir kokioje pozicijoje yra klaida, ir įrašome į kintamąjį klaidos:
klaidos=zeros(256*256/4,7);
for j=1:16384
if Z(j,:)==[1 0 0]
klaidos(j,4)=1;
elseif Z(j,:)==[1 1 0]
klaidos(j,2)=1;
elseif Z(j,:)==[1 1 1]
klaidos(j,1)=1;
elseif Z(j,:)==[0 1 1]
klaidos(j,5)=1;
elseif Z(j,:)==[1 0 1]
klaidos(j,3)=1;
elseif Z(j,:)==[0 1 0]
klaidos(j,6)=1;
elseif Z(j,:)==[0 0 1]
klaidos(j,7)=1;
end;
end;
Ištaisome klaidas ir gauname pradinį kodą X1:
X1=xor(klaidos, Y);
Rekonstruojame žinučių vektorių S1:
S1=X1(:,1:4);
Atstatome pradinį paveikslą I1:
I1=reshape(S1, 256, 256);
figure(2);
imshow(I1);
4. Įvertinkite efektyvumą
Apskaičiuojame Hamingo atstumą tarp S ir S':
A=reshape(zin_S,1,256*256);
A1=reshape(I1,1,256*256);
hamingo_atstumas411=sum(xor(A,A1))
S ir S'K, čia K pasikartojančio kodo ilgis 1, 3, 5, 7 (1 laboratorinis darbas):
lab1_kl=zeros(1,4);
lab1_kl(1,1)=triuksmas_SK('1.jpg',7,1);
lab1_kl(1,2)=triuksmas_SK('1.jpg',7,3);
lab1_kl(1,3)=triuksmas_SK('1.jpg',7,5);
lab1_kl(1,4)=triuksmas_SK('1.jpg',7,7);
hamingo_atstumas412=lab1_kl
S' ir S'K:
hamingo_atstumas413=zeros(1,4);
lab1_pav1=triuksmas_ATSTATYTAS_VEK('1.jpg',7,1);
lab1_pav2=triuksmas_ATSTATYTAS_VEK('1.jpg',7,3);
lab1_pav3=triuksmas_ATSTATYTAS_VEK('1.jpg',7,5);
lab1_pav4=triuksmas_ATSTATYTAS_VEK('1.jpg',7,7);
hamingo_atstumas413(1,1)=sum(xor(A1,lab1_pav1));
hamingo_atstumas413(1,2)=sum(xor(A1,lab1_pav2));
hamingo_atstumas413(1,3)=sum(xor(A1,lab1_pav3));
hamingo_atstumas413(1,4)=sum(xor(A1,lab1_pav4));
hamingo_atstumas413
Apskaičiuojame Hamingo kodu ir pasikartojančiu kodu užkoduotų žinučių duomenų perdavimo spartas:
perdavimo_spartos(1,1)=(256*256)/(((256*256)/4)*7);
perdavimo_spartos(2,1)=(256*256)/(256*256*1);
perdavimo_spartos(3,1)=(256*256)/(256*256*3);
perdavimo_spartos(4,1)=(256*256)/(256*256*4);
perdavimo_spartos(5,1)=(256*256)/(256*256*7);
perdavimo_spartos
Gautieji rezultatai:
1 lentelė. Hamingo atstumai
Atstumas tarp:
Triukšmo lygis, procentais
Hamingo atstumas, bitais
S ir S'
7,00 %
2849
S ir S'1
7,00 %
4532
S ir S'3
7,00 %
958
S ir S'5
7,00 %
227
S ir S'7
7,00 %
43
S' ir S'1
7,00 %
6907
S' ir S'3
7,00 %
3678
S' ir S'5
7,00 %
3003
S' ir S'7
7,00 %
2879
2 lentelė. Duomenų perdavimo spartos priklausomybė nuo algoritmo
Naudotas algoritmas
Duomenų perdavimo sparta
Hamingo kodas
0,5714
Pasikartojančio kodo ilgis 1
1,0000
Pasikartojančio kodo ilgis 3
0,3333
Pasikartojančio kodo ilgis 5
0,2500
Pasikartojančio kodo ilgis 7
0,1429
Išvados:
Atlikę laboratorinį darbą išmokome koduoti duomenų kanalą. Užkodavome...
Šį darbą sudaro 761 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Kiti darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!