%这是段rs级联bch码的程序 rs(127,119) bch(15,7)
%未采用交织器 信道部分未编写 在bch编码之后应该采用g。709标准中的帧结构来从新调整数据结构
clear all
clc
m = 7;
n = 2^m-1; k = 119;
x=randint(1,k*m,2);%resource
dB=[0:0.5:3];
ii = 1;
for Eb_No_Rate=dB
in = reshape(x,[],m);
ini = bin2dec(num2str(in));
msg = gf(ini,m);
code = rsenc(msg',n,k);%rs encode
qq = gf((int16(dec2bin(code.x))-48),1);
bchcode = bchenc(qq,15,7);
bchcode = reshape(bchcode,1,[]);
ff = gf2dec(bchcode,1)';
%save bchcode.txt ff -ascii
ff= 2*ff-1;
awgn_Code_u=awgn(ff,Eb_No_Rate+10*log10(2));
%============================================================
awgn_code = 0.5*(sign(awgn_Code_u)+1);
awgn_code = gf(awgn_code,1);
bchcode = reshape(awgn_code,[],15);
bchdecode =bchdec(bchcode,15,7);
bchdecode = reshape(bchdecode,1,[]);
ww = bchdecode.x;
ww = reshape(ww,[],m);
ww = bin2dec(num2str(ww));
cod = gf(ww,m);
[dec,cnumerr] = rsdec(cod',n,k);% rs decode
zz = dec2bin(dec.x);
seq = int16(zz)-48;
seq = reshape(seq,1,[]);
x = int16(x);
biterror(ii) = nnz(seq-x)/(k*m);
ii = ii+1;
end
semilogy(dB,biterror,'o-');
xlabel('SNR(dB)','FontWeight', 'bold');ylabel('BER','FontWeight', 'bold');
grid on;
title('rs(127,119)级联bch(15,7)');
axis([0 3 10^-4 10^-1]);
- 1
- 2
前往页