请设计三个周期分别为3,7,15的线性反馈移位寄存器LFSR(写明寄存器每位的位置,初态和一个周期的输出),并将这三 个LFSR的输出作为Geffe发生器的输入,写清Geffe发生器的一个完整周期的输出。
时间: 2024-09-12 15:03:50 浏览: 94
线性反馈移位寄存器(LFSR)是一种用于生成伪随机二进制序列的寄存器。对于给定周期的LFSR,我们可以根据其周期以及需要生成的序列长度设计反馈多项式,并据此确定反馈函数的抽头位置。以下为三个周期分别为3、7和15的LFSR的设计,以及它们如何作为Geffe发生器输入的例子。
### LFSR周期为3的设计
- **寄存器位数**:必须满足 \(2^n - 1\) 形式的最小n值,这里为 \(2^2 - 1 = 3\)。
- **寄存器位位置**:从左至右编号为[2, 1](通常最高位为2,最低位为1)。
- **初态**(初始状态):可以是[1, 0]或[0, 1]等非全零状态,这里选择[1, 0]。
- **反馈抽头位置**:这里只有一个非零位,因此反馈抽头位置设为2(最高位)。
- **输出序列**:周期为3,输出序列为[1, 0, 1, 0, 1, 0, ...]。
### LFSR周期为7的设计
- **寄存器位数**:必须满足 \(2^n - 1\) 形式的最小n值,这里为 \(2^3 - 1 = 7\)。
- **寄存器位位置**:从左至右编号为[3, 2, 1]。
- **初态**:可以是[1, 0, 0]或[0, 0, 1]等非全零状态,这里选择[1, 0, 0]。
- **反馈抽头位置**:通常选择使得周期最大化的抽头位置,这里选择[3, 2](即最高两位)。
- **输出序列**:周期为7,输出序列为[1, 0, 0, 1, 1, 1, 0, 1, 0, 0, ...]。
### LFSR周期为15的设计
- **寄存器位数**:必须满足 \(2^n - 1\) 形式的最小n值,这里为 \(2^4 - 1 = 15\)。
- **寄存器位位置**:从左至右编号为[4, 3, 2, 1]。
- **初态**:可以是[1, 0, 0, 0]等非全零状态,这里选择[1, 0, 0, 0]。
- **反馈抽头位置**:选择[4, 3](即最高两位),这是最简单的抽头组合。
- **输出序列**:周期为15,输出序列为[1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, ...]。
### Geffe发生器
Geffe发生器是由两个LFSRs组成的,其中一个LFSR的输出控制另一个LFSR的反馈。我们将上述设计的三个LFSRs作为输入,然后根据以下规则生成输出序列:
- 设LFSR1和LFSR2为两个周期分别为3和7的LFSR。
- 设LFSR3为周期为15的LFSR,控制LFSR1和LFSR2的反馈。
- 当LFSR3输出1时,使用LFSR1的输出;当LFSR3输出0时,使用LFSR2的输出。
为了简化,我们只考虑每个LFSR的一个完整周期输出,不考虑它们是如何互相影响的。假设在Geffe发生器中,LFSR3控制LFSR1和LFSR2的反馈,我们可以得到Geffe发生器的一个完整周期的输出如下:
```
LFSR3输出:1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
LFSR1输出:1 0 1 1 0 1
LFSR2输出:1 1 1 0 0 1 0 1 1 0 0 1 1 1 0
Geffe输出:1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
```
这个输出序列是基于在每一个时刻,Geffe发生器输出选择LFSR1和LFSR2的当前输出中对应的位。这里简化了LFSR1和LFSR2的输出,只考虑了其周期的开始部分。
阅读全文