clear all;
clc;
n=255;
k=239;
m=8;
t=8;
p=[ 1 0 1 1 1 0 0 0 1];
alpha_to=[1 2 4 8 16 32 64 128 29 58 116 232 205 135 19 38 76 152 45 90 180 117 234 201 143 3 6 12 24 48 96 192 157 39 78 156 37 74 148 53 106 212 181 119 238 193 159 35 70 140 5 10 20 40 80 160 93 186 105 210 185 111 222 161 95 190 97 194 153 47 94 188 101 202 137 15 30 60 120 240 253 231 211 187 107 214 177 127 254 225 223 163 91 182 113 226 217 175 67 134 17 34 68 136 13 26 52 104 208 189 103 206 129 31 62 124 248 237 199 147 59 118 236 197 151 51 102 204 133 23 46 92 184 109 218 169 79 158 33 66 132 21 42 84 168 77 154 41 82 164 85 170 73 146 57 114 228 213 183 115 230 209 191 99 198 145 63 126 252 229 215 179 123 246 241 255 227 219 171 75 150 49 98 196 149 55 110 220 165 87 174 65 130 25 50 100 200 141 7 14 28 56 112 224 221 167 83 166 81 162 89 178 121 242 249 239 195 155 43 86 172 69 138 9 18 36 72 144 61 122 244 245 247 243 251 235 203 139 11 22 44 88 176 125 250 233 207 131 27 54 108 216 173 71 142 0 ];
index_of=[0 1 25 2 50 26 198 3 223 51 238 27 104 199 75 4 100 224 14 52 141 239 129 28 193 105 248 200 8 76 113 5 138 101 47 225 36 15 33 53 147 142 218 240 18 130 69 29 181 194 125 106 39 249 185 201 154 9 120 77 228 114 166 6 191 139 98 102 221 48 253 226 152 37 179 16 145 34 136 54 208 148 206 143 150 219 189 241 210 19 92 131 56 70 64 30 66 182 163 195 72 126 110 107 58 40 84 250 133 186 61 202 94 155 159 10 21 121 43 78 212 229 172 115 243 167 87 7 112 192 247 140 128 99 13 103 74 222 237 49 197 254 24 227 165 153 119 38 184 180 124 17 68 146 217 35 32 137 46 55 63 209 91 149 188 207 205 144 135 151 178 220 252 190 97 242 86 211 171 20 42 93 158 132 60 57 83 71 109 65 162 31 45 67 216 183 123 164 118 196 23 73 236 127 12 111 246 108 161 59 82 41 157 85 170 251 96 134 177 187 204 62 90 203 89 95 176 156 169 160 81 11 245 22 235 122 117 44 215 79 174 213 233 230 231 173 232 116 214 244 234 168 80 88 175 0 ];
gx=[1 118 52 103 31 104 126 187 232 17 56 183 49 100 81 44 79]; %生成多项式
disp('输入信息序列:')
% m_xi=[87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92 78 112 58 66 107 9 46 39 56 29 97 117 4 87 19 92];
m_xi=3:241
for i=1:k
mm(i)=m_xi(k+1-i);
end
mm
% encode
disp('编码后生成序列:')
r=zeros(1,n-k+1);
% for i=1:k % k级编码。因为信息码长度为k。
% % i
% % % n-k+1
% % d11=r(n-k)
% % datain=m_xi(i)
% % % n-k
% % % k+1-i
% r(n-k+1)=rs_add(r(n-k),m_xi(i),m);
% % temp=r(n-k+1)
% for j=n-k:-1:2
% % j
% % % j-1
% % % n-k+1
% % % n-k+2-j
% % r(j)
% % temp=r(n-k+1)
% % gco=gx(n-k+2-j)
% r(j)=rs_add(r(j-1),rs_mul(r(n-k+1),gx(n-k+2-j),m,alpha_to,index_of),m);
% % r(j)
% end
% r(1)=rs_mul(r(n-k+1),gx(n-k+1),m,alpha_to,index_of);
% end
% t_x=[r(1:n-k),m_xi];
% t_x
%t_x=[m_xi,r(16),r(15),r(14),r(13),r(12),r(11),r(10),r(9),r(8),r(7),r(6),r(5),r(4),r(3),r(2),r(1)]
for i=1:k
feedback=rs_add(r(n-k),m_xi(k-i+1),m);
r(16)=rs_add(r(15),rs_mul(feedback,gx(16),m,alpha_to,index_of),m);
r(15)=rs_add(r(14),rs_mul(feedback,gx(15),m,alpha_to,index_of),m);
r(14)=rs_add(r(13),rs_mul(feedback,gx(14),m,alpha_to,index_of),m);
r(13)=rs_add(r(12),rs_mul(feedback,gx(13),m,alpha_to,index_of),m);
r(12)=rs_add(r(11),rs_mul(feedback,gx(12),m,alpha_to,index_of),m);
r(11)=rs_add(r(10),rs_mul(feedback,gx(11),m,alpha_to,index_of),m);
r(10)=rs_add(r(9),rs_mul(feedback,gx(10),m,alpha_to,index_of),m);
r(9)=rs_add(r(8),rs_mul(feedback,gx(9),m,alpha_to,index_of),m);
r(8)=rs_add(r(7),rs_mul(feedback,gx(8),m,alpha_to,index_of),m);
r(7)=rs_add(r(6),rs_mul(feedback,gx(7),m,alpha_to,index_of),m);
r(6)=rs_add(r(5),rs_mul(feedback,gx(6),m,alpha_to,index_of),m);
r(5)=rs_add(r(4),rs_mul(feedback,gx(5),m,alpha_to,index_of),m);
r(4)=rs_add(r(3),rs_mul(feedback,gx(4),m,alpha_to,index_of),m);
r(3)=rs_add(r(2),rs_mul(feedback,gx(3),m,alpha_to,index_of),m);
r(2)=rs_add(r(1),rs_mul(feedback,gx(2),m,alpha_to,index_of),m);
r(1)=rs_mul(feedback,gx(1),m,alpha_to,index_of);
end
t_x=[m_xi,r(16),r(15),r(14),r(13),r(12),r(11),r(10),r(9),r(8),r(7),r(6),r(5),r(4),r(3),r(2),r(1)]
% error
disp('信道产生的错误位置:')
site=[5 16 30 54 62 78 103 1]
disp('新到产生的错误数值')
err_value=[22 50 9 110 98 65 0 0]
disp('接收序列')
%r_x=t_x;
r_x=[m_xi,r(16),r(15),r(14),r(13),r(12),r(11),r(10),r(9),r(8),r(7),r(6),r(5),r(4),r(3),r(2),r(1)];
for i=1:8
r_x(site(i)+1)=rs_add(t_x(site(i)+1),err_value(i),m);
end
r_x
disp('伴随多项式:')
s=zeros(1,n-k); % n-k个校正子(伴随式)。
for j=1:n-k
s(j)=rs_poly(r_x,alpha_to(j+1),m,alpha_to,index_of); % 用函数rs_poly(x,alpha)计算s(j)=r(alpha(j))
end
% s=[r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1)];
% for i=1:126
% s(1)= rs_add(s(1),rs_mul(r_x(i+1),alpha_to(mod(i,(2^m-1))+1),m,alpha_to,index_of),m);
% s(2)= rs_add(s(2),rs_mul(r_x(i+1),alpha_to(mod(i*2,(2^m-1))+1),m,alpha_to,index_of),m);
% s(3)= rs_add(s(3),rs_mul(r_x(i+1),alpha_to(mod(i*3,(2^m-1))+1),m,alpha_to,index_of),m);
% s(4)= rs_add(s(4),rs_mul(r_x(i+1),alpha_to(mod(i*4,(2^m-1))+1),m,alpha_to,index_of),m);
% s(5)= rs_add(s(5),rs_mul(r_x(i+1),alpha_to(mod(i*5,(2^m-1))+1),m,alpha_to,index_of),m);
% s(6)= rs_add(s(6),rs_mul(r_x(i+1),alpha_to(mod(i*6,(2^m-1))+1),m,alpha_to,index_of),m);
% s(7)= rs_add(s(7),rs_mul(r_x(i+1),alpha_to(mod(i*7,(2^m-1))+1),m,alpha_to,index_of),m);
% s(8)= rs_add(s(8),rs_mul(r_x(i+1),alpha_to(mod(i*8,(2^m-1))+1),m,alpha_to,index_of),m);
% s(9)= rs_add(s(9),rs_mul(r_x(i+1),alpha_to(mod(i*9,(2^m-1))+1),m,alpha_to,index_of),m);
% s(10)= rs_add(s(10),rs_mul(r_x(i+1),alpha_to(mod(i*10,(2^m-1))+1),m,alpha_to,index_of),m);
% s(11)= rs_add(s(11),rs_mul(r_x(i+1),alpha_to(mod(i*11,(2^m-1))+1),m,alpha_to,index_of),m);
% s(12)= rs_add(s(12),rs_mul(r_x(i+1),alpha_to(mod(i*12,(2^m-1))+1),m,alpha_to,index_of),m);%
% end
%s=[r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1) r_x(1)];
%for i=1:126
% s(1)= rs_add(r_x(i+1),rs_mul(s(1),alpha_to(1+1),m,alpha_to,index_of),m);
% s(2)= rs_add(r_x(i+1),rs_mul(s(2),alpha_to(2+1),m,alpha_to,index_of),m);
% s(3)= rs_add(r_x(i+1),rs_mul(s(3),alpha_to(3+1),m,alpha_to,index_of),m);
% s(4)= r
评论3