tpc编解码扩展采用bch(64,57)与缩短bch(46,39)相乘可得
clc;clear all;
N = ;
K = ;
S = ;
msg =randi(,prod(S),1);%;%
msg1=reshape(msg,S(1,:),S(2,:))';
%%tpc【bch(64,57)*bch(46,39)】编码
pol=cyclpoly(N(1,:)-1,K(1,:));
=cyclgen(N(1,:)-1,pol);%求生成多项式
G=circshift(G,);
cc=mod(msg1*G,2);%bch行编码
%%bch缩短码列编码
k=K(2,:)-S(2,:);
G(1:k,:)=[];%生成矩阵删减前i行,前i列
G(:,1:k)=[];
cc1=mod(cc'*G,2)';
%添加行偶校验位
=size(cc1);
for i=1:m
sum=0;
for j=1:n
sum=sum+cc1(i,j);
z=sum;
end
if rem(z,2)==0
cc1(i,n+1)=0;
else
cc1(i,n+1)=1;
end
end
%添加列偶校验位
=size(cc1);
for i=1:m
sum=0;
for j=1:n
sum=sum+cc1(j,i);
z=sum;
end
if rem(z,2)==0
cc1(n+1,i)=0;
else
cc1(n+1,i)=1;
end
end
%%tpc函数编码
code = tpcenc(msg,N,K,S);
c=reshape(code,N(1,:),N(2,:)+S(2,:)-K(2,:));
c1=c';
tf = isequal(cc1,c1);
tf
% N = ;
% K = ;
% S = ;
% msg = randi(,prod(S),1);
% code = tpcenc(msg,N,K,S);
页:
[1]