如何编写通用代码

时间:2013-10-17 12:09:14

标签: matlab

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

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专家请你帮忙。

1 个答案:

答案 0 :(得分:3)

你的问题是你正在为每个寄存器制作单独的向量。而是创建一个矩阵(即D替换所有D1D2,...,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)