1-m序列的产生
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 m 序列的产生
使用的本源多项式是651)(x x x F ++= ,M = 31
查表n=6,可得到相应的反馈网络的函数f 为(6,5),反馈f 表示为:
根据f 的反馈函数,假设初始状态为111000,可以写出其64-1=63长度的序列信号;具体做法为:将每一列的6和5位置的数字相异或,得到的数字放在下一行的1位置,该行的54321位置上的数字移到下一行的65432位置上,合成下一行的6位数字。
初始状态为111000,则真值表为:
6 5 4 3 2 1
1 1 1 1 0 0 0
2 1 1 0 0 0 0
3 1 0 0 0 0 0
4 0 0 0 0 0 1
5 0 0 0 0 1 0
6 0 0 0 1 0 0
7 0 0 1 0 0 0
8 0 1 0 0 0 0
9 1 0 0 0 0 1
10 0 0 0 0 1 1
11 0 0 0 1 1 0
12 0 0 1 1 0 0
13 0 1 1 0 0 0
14 1 1 0 0 0 1
15 1 0 0 0 1 0
16 0 0 0 1 0 1
17 0 0 1 0 1 0
18 0 1 0 1 0 0
19 1 0 1 0 0 1
65Q Q f ⊕=
20 0 1 0 0 1 1
21 1 0 0 1 1 1
22 0 0 1 1 1 1
23 0 1 1 1 1 0
24 1 1 1 1 0 1
25 1 1 1 0 1 0
26 1 1 0 1 0 0
27 1 0 1 0 0 0
28 0 1 0 0 0 1
29 1 0 0 0 1 1
30 0 0 0 1 1 1
31 0 0 1 1 1 0
32 0 1 1 1 0 0
33 1 1 1 0 0 1
34 1 1 0 0 1 0
35 1 0 0 1 0 0
36 0 0 1 0 0 1
37 0 1 0 0 1 0
38 1 0 0 1 0 1
39 0 0 1 0 1 1
40 0 1 0 1 1 0
41 1 0 1 1 0 1
42 0 1 1 0 1 1
43 1 1 0 1 1 1
44 1 0 1 1 1 0
45 0 1 1 1 0 1
46 1 1 1 0 1 1
47 1 1 0 1 1 0
48 1 0 1 1 0 0
49 0 1 1 0 0 1
50 1 1 0 0 1 1
51 1 0 0 1 1 0
52 0 0 1 1 0 1
53 0 1 1 0 1 0
54 1 1 0 1 0 1
55 1 0 1 0 1 0
56 0 1 0 1 0 1
57 1 0 1 0 1 1
58 0 1 0 1 1 1
59 1 0 1 1 1 1
60 0 1 1 1 1 1
61 1 1 1 1 1 1
62 1 1 1 1 1 0
63 1 1 1 1 0 0
根据上面,可得到最长线性序列信号:
11111111
寻找起跳状态
Q6输出序列为:
Ⅰ:11100111
左移32位,
Ⅱ:11111111
Ⅰ⊕Ⅱ=Ⅲ:
10111111
序列Ⅲ中100000(5个连0)处对应序列Ⅰ的四位代码为111100,此即为起跳状态。
求M=31的序列信号
可以在63长度的序列中,从起跳状态开始,消去32位码元,剩下的码元即组成31长度的序列信号:
111110111
设计产生长度为31的序列信号的逻辑表达式
可直接通过修改m=63序列信号发生器的反馈函数f得到M=31的序列信号发生器的反馈函数f’:
f’= f⊕起跳状态 + /Q6/Q5/Q4/Q3/Q2/Q1
= Q6⊕Q5⊕Q6Q5Q4Q3/Q2/Q1 + /Q6/Q5/Q4/Q3/Q2/Q1
=/(Q6⊕Q5)Q6Q5Q4Q3/Q2/Q1 + Q6⊕Q5 /(Q6Q5Q4Q3/Q2/Q1)+
/Q6/Q5/Q4/Q3/Q2/Q1
=(/Q5/Q6 +Q5Q6)Q6Q5Q4Q3/Q2/Q1 +(/Q5Q6 +Q5/Q6)(/Q6+/Q5+/Q4+/Q3+Q2+Q1)+ /Q6/Q5/Q4/Q3/Q2/Q1
= Q6Q5Q4Q3/Q2/Q1 +/Q5Q6+ Q5/Q6 + /Q6/Q5/Q4/Q3/Q2/Q1
=/Q5Q6+ Q5/Q6 + Q6Q4Q3/Q2/Q1+ /Q6/Q4/Q3/Q2/Q1
2 C语言验证
经过C语言程序验证,M=31的序列信号111110111
C语言运行结果如图2-6所示。
图1 C语言验证结果
C语言源程序代码
程序运行环境:DEV C++ 4.9.9.2 , Windows XP
/*
F(x)=1+X5+X6 M = 31
初始数列 111000
起跳状态 111100
f=/Q5Q6+ Q5/Q6 + Q6Q4Q3/Q2/Q1+ /Q6/Q4/Q3/Q2/Q1
验证输出数列是否为111110111