1 m序列的产生

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

根据上面,可得到最长线性序列信号:

111000001000011000101001111010001110010010110111011001101010111

寻找起跳状态

Q6输出序列为:

Ⅰ:111000001000011000101001111010001110010010110111011001101010111

左移32位,

Ⅱ:000001000011000101001111010001110010010110111011001101010111111

Ⅰ⊕Ⅱ=Ⅲ:

000001000011000101001111010001110010010110111011001101010111111

序列Ⅲ中100000(5个连0)处对应序列Ⅰ的四位代码为111100,此即为起跳状态。

求M=31的序列信号

可以在63长度的序列中,从起跳状态开始,消去32位码元,剩下的码元即组成31长度的序列信号:

1110010010110111011001101010111

设计产生长度为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的序列信号1110010010110111011001101010111 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

验证输出数列是否为1110010010110111011001101010111

相关文档
最新文档