威望0
积分7946
贡献0
在线时间763 小时
UID1
注册时间2021-4-14
最后登录2024-11-21
管理员
- UID
- 1
- 威望
- 0
- 积分
- 7946
- 贡献
- 0
- 注册时间
- 2021-4-14
- 最后登录
- 2024-11-21
- 在线时间
- 763 小时
|
[mw_shl_code=applescript,true]clc;
clear all;
N = [64;64];
K = [57;57];
S = [57;39];
msg =randi([0 1],prod(S),1);%[1;1;0;0;1;1;0;1];%
msg1=reshape(msg,S(1,,S(2,)';
%%tpc【bch(64,57)*bch(46,39)】编码
pol=cyclpoly(N(1,-1,K(1,);
[H G]=cyclgen(N(1,-1,pol);%求生成多项式
G=circshift(G,[0,K(1,]);
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)';
%添加行偶校验位
[m,n]=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
%添加列偶校验位
[n,m]=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 = [64;64];
% K = [57;57];
% S = [57;39];
% msg = randi([0 1],prod(S),1);
% code = tpcenc(msg,N,K,S);
[/mw_shl_code] |
|