GPS载波伪码的matlab实现与分析.docx
《GPS载波伪码的matlab实现与分析.docx》由会员分享,可在线阅读,更多相关《GPS载波伪码的matlab实现与分析.docx(9页珍藏版)》请在冰豆网上搜索。
GPS载波伪码的matlab实现与分析
GPS载波、伪码的matlab实现与分析
1、伪码生成及分析
1、1生成M序列和Gold码序列
1 由于本原多项式分别为[2011]和[2411](八进制)。
从而知道两M序列的生成多项式为
和
。
此部分的程序设计思路为:
先为两个十位移位寄存器赋初值(全1);后利用循环,每次把寄存器的输出放到M序列储存器中,从而获得M序列。
2 第一个Gold码,使用第一个移位寄存器的第十级输出和第二个寄存器的第2级、第6级作为抽头的输出进行异或,异或的过程也在上部的循环中完成,每次异或的结果存于Gold寄存器。
第二个Gold码的生成与第一个类似,只是改为第二个寄存器的第3级、第7级作为抽头.
1、2对生成的伪随机码进行分析
1 利用xcorr函数对以上生成的两个M序列分别进行自相关和互相关运算,其中需要将两M序列进行双极性变换(xcorr函数的要求)。
并画出自相关、互相关函数图像。
2 后利用FFT函数,求取以上自相关函数的功率谱,并画出图像。
图像如下:
图1
3 图像分析:
由上图可验证,M序列作为近似白噪声的伪随机序列,其自相关函数近于冲击函数;互相关函数幅值近于0;功率谱密度函数是自相关函数的傅里叶变换,所以幅值近于常数1。
但在图像中有较多毛刺,与理想的图像有较大差别,可能是由于xcorr函数造成。
4 利用xcorr函数对以上生成的两个Gold码序列分别进行自相关和互相关运算,其中需要将两Gold码序列进行双极性变换(xcorr函数的要求)。
并画出自相关、互相关函数图像。
图像如下:
图2
图像分析:
由上图可验证,Gold码序列作为近似白噪声的伪随机序列,其自相关函数近于冲击函数;互相关函数幅值近于0。
但在图像中有较多毛刺,与理想的图像有较大差别,可能是由于xcorr函数造成。
2、生成混沌序列并得到跳频序列
2、1生成混沌序列的原始序列
1 采用Logistic(
)映射,设定初值为0.121381和0.121380,分别迭代50次,从而获得两个混沌序列。
图像如下:
图3
图像分析:
由图可见混沌序列对初值很敏感,即使初值在小数点后第6位有微小差别,但迭代一定次数后,序列也会有很大区别。
2.2跳频序列的生成
1 使用排序法,在上述混沌序列基础上生成调频序列:
首先利用sort函数对原始序列进行降序排列,然后利用find函数查找原始序列的各元素在新序列中的位置,也即是跳频序列;结果输出到matlab的commandwindow。
结果如下:
使用方法一的混沌序列X1的跳频序列为:
Columns1through15
2754537211230348443618191623
Columns16through30
103415258402824946392493822
Columns31through45
113314266423274131447433517
Columns46through50
201329150
使用方法一的混沌序列X2的跳频序列为:
Columns1through15
2944538211231248443617201525
Columns16through30
8371819162210331132347433413
Columns31through45
30150494639239351428542276
Columns46through50
412674024
2 使用T位截断法,生成调频序列:
首先设定门限Th=0;原始序列中大于Th的值置1,小于等于的置0;截断位数T设为5;利用循环,将置位后的新序列每隔5位就转换为十进制数,从而获得跳频序列。
结果输出到matlab的commandwindow。
结果如下:
使用方法二的混沌序列X1的跳频序列为:
2520152312132341726
使用方法二的混沌序列X2的跳频序列为:
2520152326178132713
3、伪码调制、载波调制及频谱分析
3.1C/A码调制
1 首先用randi函数随机生成4bit数据码;由于1bit数据码占20ms,每1ms有1023bit的C/A码,所以在4bit的数据码上去了81840个点。
2 将以上81840个点与80=4*20个周期的Gold1码进行异或。
3 画出原始数据码与C/A码调制后的数据码。
3.2BPSK调制
1 由于要把4bit数据码都进行C/A码调制后再进行在波调制,数据量太大,所以只去了C/A码调制后的数据码的前10bit进行在波调制。
2 每bit的C/A码占1540个周期的载波(1575.42MHz),每周期载波取20个点。
3 利用
进行BPSK调制,其中t单位为ms,data_CA是C/A码调制后的数据码。
4 画出BPSK调制后的波形。
3.3频谱分析
1 利用FFT函数对以上三组数据进行傅里叶变换,得到频域信息。
2 分别画出3个频谱图像。
图像如下:
图4
图像分析:
从以上总的图像可以看出,4bit数据码占80ms,以及BPSK调制后可以在其频谱中看见一高一低两个频点。
但由于数据量很大,以及采样频率很高,难以在全局图像中进行详细分析,于是采用matlab的放大镜工具查看其局部图像。
图5
从以上两幅局部图像看C/A码调制后的数据码在第2到第3bit发生跳变,BPSK调制后,在1.955e-3ms,载波的确发生了相位变化。
图6
从以上两幅图可以看出,下图除第一点外,其他部分都体现了扩频后频谱幅值会大幅下降。
而且配合图4可以看出,原数据码的频谱宽度被大幅扩宽。
但图5下部第一点,我不理解。
图7
从此局部图像中可以看出,BPSK调制后,信息集中到了1575.42MHz。
而且与图6的图像吻合。
但为什么会出现方波负载波调制中的那种双瓣,我还不会解释。