我为线性反馈移位寄存器编写代码。我的代码如下:
X=5712;
D1(1)=0;
D2(1)=0;
D3(1)=0;
D4(1)=0;
D5(1)=0;
D6(1)=1;
for i=1:X-1
D6(i+1)=D1(i);
D5(i+1)=xor(D1(i),D6(i));
D4(i+1)=D5(i);
D3(i+1)=D4(i);
D2(i+1)=D3(i);
D1(i+1)=D2(i);
end
在我的代码中,我只能使用6个移位寄存器。我知道度,n=2,3,4,6,7,15,22
,多项式是x^n+x+1
。由于多项式对于那些度数是相同的,所以我想写一个公共代码为了所有人。
Matlab专家请你帮忙。
答案 0 :(得分:3)
你的问题是你正在为每个寄存器制作单独的向量。而是创建一个矩阵(即D
替换所有D1
,D2
,...,Dn
),以便循环:
X = 20;
n = 6;
D = zeros(X, n);
D(1,n) = 1;
for ii = 1:X-1
D(ii+1, 1:n-2) = D(ii, 2:n-1);
D(ii+1, n-1) = xor(D(ii,1), D(ii,n));
D(ii+1, n) = D(ii, 1);
end
E = D(:, end:-1:1)