Design (15, k) linear block codes and compare their performance to the uncoded case.
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

Design (15, k) linear block codes and compare their performance to the uncoded case. 에 대한 보고서 자료입니다.

목차

1. Introduction

2. A (15, 11) Linear Block Code
1) Generator Matrix
2) Error Correctability

3. A (15, 8) Linear Block Code
1) Generator Matrix
2) Error Correctability

4. Performance Comparison

5. Discussion and Conclusions

6. Appendix (Extra Work, Program Source, Etc.)
Source code

본문내용

ability
rb = linspace(1,10,10000); %rb=message bit SNR
rc = rb*Rc; %rc=channel bit SNR
a = qfunc((2*rc).^0.5); %a=coded channel error probability
u_a = qfunc((2*rb).^0.5); %u_a=uncoded channel error probability
n_sum1 = sum(coset_leader1')'; %coded coset_leader의 오류 개수
for i=1:2.^q
for j=1:10000
t(i,j) = a(1,j).^n_sum1(i,1).*(1-a(1,j)).^(n - n_sum1(i,1)); %t=오류정정율
end
end
Pwe = 1-sum(t); %Pwe=word error probability
Pbe = dmin1/n*Pwe; %Pbe=bit error probability
Puwe = 1-((1-u_a).^k); %Puwe=uncoded word error probability
%%(15,11) Compare
% DB scale
rc_db = 10*log10(rc); %dbscale rc
rb_db = 10*log10(rb); %dbscale rb
%compare WER vs uncoded WER
figure;
semilogy(rc_db, Pwe, 'k', rb_db, Puwe, 'r--');
title('WER vs uncoded WER')
xlabel('rb[DB]')
ylabel('Error Probability')
%compare BER vs uncoded BER
figure;
semilogy(rb_db, Pbe, 'k', rb_db, u_a, 'g--');
title('BER vs uncoded BER')
xlabel('rb[DB]')
ylabel('Error Probability')
%% (15,8) Hamming Code
n=15; k=8; q=n-k;
%Code Rate
Rc=k/n;
%Massage Vector
M=de2bi(0 : 2^k-1, k)
%Generator matrix
G2=[1 0 0 0 0 0 0 0 0 1 1 0 1 1 1;
0 1 0 0 0 0 0 0 1 0 1 1 0 0 1;
0 0 1 0 0 0 0 0 1 1 0 0 1 1 0;
0 0 0 1 0 0 0 0 1 0 0 1 1 0 1;
0 0 0 0 1 0 0 0 0 1 0 1 1 0 1;
0 0 0 0 0 1 0 0 0 0 1 0 0 0 1;
0 0 0 0 0 0 1 0 1 0 1 0 1 1 0;
0 0 0 0 0 0 0 1 0 1 0 1 0 1 1];
%Parity check matrix
P2=G2(:, k+1:n);
H_trans2=[P2; eye(q)];
%Code word
codeword2=mod(M*G2,2)
%dmin
wt2 = sum(codeword2')'; %%% codeword의 vector weight를 구함
dmin2= min(wt2( 2: 2^k, 1)); %%% dmin은 wt가 0이 아닌 최소값
%%% wt의 첫행은 항상 0이므로 2행부터의 wt중 가장 작은값을 선택
%Error_vector & Syndrome table
Error_vector2=de2bi(0 : 2^n-1, n);
S=mod(Error_vector2*H_trans2, 2);
coset_leader2=syndtable(H_trans2');
%SNR에 따른 오율
EbN0=linspace(1,10,10000);
a=qfunc((2*Rc*EbN0).^0.5);
%WER & BER
num = sum(coset_leader2')' %%coset leader의 vector weight
for i=1:2.^q %%각각의 num에 대해
for d=1:10000 %%a에 따른
Crt_WER(i,d) = a(1,d).^num(i,1).*(1-a(1,d)).^(n-num(i,1)); %%각각의 word정정율
end
end
WER=1-sum(Crt_WER); %%전체 확률-정정확률= 오류 확률
BER=dmin2/n*WER;
% non-coding시의 SNR에 따른 오율
b=qfunc((2*EbN0).^0.5);
UC=1-((1-b).^k);
% SNR을 dB scale로 표현
rb=10*log10(EbN0);
% WER 과 non-coding WER 비교
figure()
semilogy(rb, WER,'k', rb,UC, 'r--');
title('WER & non-coding WER')
xlabel('Eb/N0 [dB]')
ylabel('Error Probability')
% BER 과 non-coding BER 비교
figure()
semilogy(rb, BER, 'b', rb, b, 'g--');
title('BER & non-coding BER')
xlabel('Eb/N0 [dB]')
ylabel('Error Probability')
%% Compare (15,11) and (15,8)
WER1= Pwe; %%Word Error of (15,11)
WER2= WER; %%Word Error of (15,8)
BER1= dmin1/n * Pwe; %%Bit Error of (15,11)
BER2= dmin2/n * WER; %%Bit Error of (15,8)
UWER= UC; %%Word Error of UnCoded
UBER= b; %%Bit Error of UnCoded
figure()
subplot(211)
semilogy(rb,WER1,'k', rb, WER2,'b', rb,UWER,'r--');
title('WER of (15,11) & (15,8) & UnCoded')
xlabel('Eb/N0 [dB]')
ylabel('Error Probability')
subplot(212)
semilogy(rb,BER1,'k', rb,BER2,'b', rb,UBER,'r--');
title('BER of (15,11) & (15,8) & Uncoded')
xlabel('Eb/N0 [dB]')
ylabel('Error Probability')
  • 가격2,000
  • 페이지수12페이지
  • 등록일2012.12.24
  • 저작시기2012.11
  • 파일형식한글(hwp)
  • 자료번호#827322
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니