-1

我为线性反馈移位寄存器编写了一个代码。我的代码如下:

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 专家 请需要您的帮助。

4

1 回答 1

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)
于 2013-10-17T12:28:30.170 回答