PN码产生与特性分析实验

实验一 PN码特性实验

一、实验目的

1、掌握PN码的编解码原理。 2、掌握PN码的软件仿真方法。 3、掌握PN码的硬件仿真方法。 4、掌握PN码的硬件设计方法。

二、预习要求

1、掌握PN码的编解码原理和方法。 2、熟悉matlab的应用和仿真方法。 3、熟悉Quatus的应用和FPGA的开发方法。

三、实验原理

1、m序列简介

m序列主要功能为:扩展调制信号的带宽到更大的传输带宽,即扩展频谱,提高系统抗干扰能力;区分通过多址接入方式使用同一传输频带的不同用户的信号,在移动通信CDMA系统中作为用户地址码和基站地址码;除此外还可以作为扰码,平衡通信中”0”和”1”的数目。

m序列是有n级线性移位寄存器产生的周期为2?1的码序列,是最大长度线性回馈移位寄存器序列的简称。码分多址系统主要采用两种长度的m序列:一种是周期为2?1的m序列,又称短PN码。另一种是周期为2?1的m序列,又称长PN序列。 2、产生原理

m序列产生的一般结构模型如图1所示。其中ak?i(i?1,2,3,......n)是各移位寄存器的状态,

42n15ci(i?1,2,......n)对应各各移位寄存器的回馈系数,ci?1表示该级移位寄存器参与回馈,ci?0表示该级

移位寄存器不参与回馈。c0和cn不能为0,这是因为c0?0意味着移位寄存器无回馈,而cn?0则意味着回馈移位寄存器蜕化为n-1级或更少的级数的回馈。

图1 回馈移位寄存器的结构模型

回馈函数为: ak?c1ak?1?c2ak?2?...?cnak?n(mod 2) ( 1-1 )

上述的回馈函数是一个线性递归函数。当级数(n)和回馈系数确定后,输出就确定了。回馈的移位寄存器级数不同,则m序列的回馈系数也不同,表1列出了部分的m序列发生器的回馈系数,供读者使用

时参考。表中给出的是八进制值,经转换成二进制数值后,可求出相应的回馈系数。m序列的 一个重要性质是:任一m序列的循环移位仍是一个m序列,序列的长度为m?2?1。 表1 部分m序列发生器的回馈系数 级数(n) 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535 1311071 262143 524387 1048575 序列长度 13 23 45,67,75 103,147,155 203,211,217,235,277,313,325,345,367 435,453,537,543,545,551,703,747 1021,1055,1131,1157,1167,1175 2011,2033,2157,2443,2745,3471 4005,4445,5023,5263,6211,7363 10123,11417,12515,13505,14124,15053 20033,23261,24633,30741,32535,37505 42103,51761,55753,60153,71147,67401 100003,110013,120265,133663,142305,164705 210013,233303,307572,311405,347433,375213 400011,411335,444257,527427,646775,714303 1000201,1002241,1025711,1703601 2000047,2020471,2227023,2331067,2570103,3610353 4000011,4001151,4004515,6000031 回馈系数 n3、m序列发生器的建模与设计举例

从表中选m序列的级数n为7,序列长度为m=127, 若选回馈系数的八进制数值为255,转换成二进制数值为10011101,即 C7 1 C6 0 C5 0 C4 1 C3 1 C2 1 C1 0 C0 1

图2 n=7的回馈移位寄存器的结构模型

4、m序列的性质

(1)均衡性:在一个周期中“1”的个数比“0”的个数多1;

(2)游程特征:一个周期中长度为1的游程数占游程总数的1/2;长度为2的游程数占游程总数的1/4;长度为k的游程数占游程总数的1/2k。

(3)移位相加特性: m序列与其移位序列模2相加的序列仍是原序列的移位序列。

(4)相关特性:m序列自相关函数输出为2?1,m序列与其移位序列的相关函数输出为-1。

(5)计数:同长度不同反馈逻辑的m序列的数目等于同幂次的本原多项式的数目。可以证明:n幂次本原

n多项式的数目为:

N??(2n?1)n。其中?(x)为欧拉函数,它等于小于

x且与x互质的数的个数(包含1)。

四、PN码产生和特性分析仿真 1、建立仿真文件(pn.mdl)

PN13的Sample Time设置为SampleTime; PN13的Generator polynomial设置为[1 0 1 1]; PN13的Initial states设置为[0 0 1]; PN15的Sample Time设置为SampleTime; PN15的Generator polynomial设置为[1 1 0 1]; PN15的Initial states设置为[0 0 1]; 2、编程完成PN码特性分析 SampleTime=1/8; sim('pnsim'); len=length(pn13); N=7; N_sample=64;

gt=ones(1,N_sample); %每码元对应的载波信号 pn1=pn13' %输出pn码 pntemp1=sigexpand(pn1,N_sample); %码元扩展 pnx1=conv(pntemp1,gt); %码元成形 pn2=pn15' %输出pn码 pntemp2=sigexpand(pn2,N_sample); %码元扩展 pnx2=conv(pntemp2,gt); %码元成形 spn=conv(1-2*pn1,1-2*pn1(N:-1:1))/N %自相关函数 dpn=conv(1-2*pn1,1-2*pn2(N:-1:1))/N %互相关函数 t=0:1/N_sample:len-1/N_sample;

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4