本文简述伪随机序列产生的方法及其变换的不同码型。研究了m序列本原多项式与线性移位寄存器的反馈方式间的关系,验证了m序列的伪随机性以及伪随机序列的自相关函数的双值特性。同时,提供了基于atmega16的单片机程序。
### 伪随机序列产生及其特性研究
#### 实验目的
本次实验旨在深入了解伪随机序列的产生方法,并通过观察不同码型的变化,进一步探究m序列的基本原理。具体目标包括:
1. **了解伪随机序列产生的方法**:理解如何通过特定算法或设备产生伪随机序列,并观察在不同参数设置下序列的变化。
2. **研究m序列本原多项式与线性移位寄存器的反馈方式间的关系**:探究m序列的生成与多项式的内在联系,以及线性反馈移位寄存器如何依据这些多项式进行反馈操作。
3. **验证m序列的伪随机性**:通过实验数据验证m序列是否具有良好的随机性特征。
4. **验证伪随机序列的自相关函数的双值特性**:通过对序列的数学分析,验证其自相关函数是否呈现双值性。
#### 实验内容
1. **选择合适的m序列本原多项式**:选择适合的本原多项式来设计n级(n=3~8)线性反馈移位寄存器,以生成m序列。
2. **分析记录m序列的周期P与级数n之间的关系**:通过实验数据,确认m序列的周期P与级数n之间的数学关系是否符合预期。
3. **讨论m序列的性质和相关函数特性**:深入探讨m序列的各种性质,包括其周期性、随机性以及自相关函数的特点。
#### 实验设备
- **直流稳压电源**:提供稳定的电压供应。
- **示波器**:用于观测信号波形,分析信号特性。
- **单片计算机实验电路装置**:包含必要的硬件资源和支持单片机开发的环境。
#### 实验原理
**伪随机序列**具有类似随机序列的统计特性,但可以通过特定算法重复生成。**m序列**是最著名的二进制伪随机序列之一,由n级线性反馈移位寄存器生成,其周期长度为\(2^n - 1\)。
m序列具有以下性质:
- 周期长度为\(2^n - 1\)。
- 在一个周期中,“1”出现\((2^{n-1} - 1)\)次,“0”出现\((2^{n-1})\)次。
- 在一个周期内共有\(2^n - n - 1\)个游程,其中:
- 长度为k的游程有\((2^{n-k} - 2^{n-k-1})\)个,对于\(1 \leq k < n\);
- 长度为n的有1个“0”游程;
- 长度为n的有1个“1”游程。
- 归一化自相关函数为\(\delta(k)\),且周期为\(P = 2^n - 1\)。
#### 设计要求
- **利用单片机编程实现**:设计n级(n=3~8) m序列的发生器,每级可以实现1种序列码型。
- **序列码元速率**:建议设置为100Baud。
- **提供序列周期同步信号**:便于示波器观测m序列波形。
#### 实验步骤
1. **设计线性反馈移位寄存器**:根据给定的本原多项式设计n级(n=3~8)线性反馈移位寄存器,并编写Atmega16单片机程序,以产生m序列及相应的周期同步信号。
2. **验证m序列的伪随机性**:记录产生的n级(n=3~8) m序列,并通过分析验证其伪随机性。
3. **验证m序列的性质**:通过Matlab等工具编程,验证m序列的相关性质。
#### 实验结果
实验记录了n级(n=3~8) m序列的具体情况,并通过示波器观测到了序列的波形。实验结果显示,产生的m序列确实满足周期为\(2^n - 1\)的要求,显示出了良好的随机性特征。
#### 实验总结
本次实验成功地通过Atmega16单片机实现了n级(n=3~8) m序列的发生器,并验证了m序列的周期性和伪随机性。此外,通过Matlab编程进一步验证了m序列的相关性质。实验不仅加深了对伪随机序列及其特性的理解,也为后续的研究工作提供了有力的数据支持和技术基础。