简易北斗C/A码matlab仿真

1.C/A码产生原理
BD2B1 CA码产生原理框图如图所示,图中的方框可以通过移位寄存器来实现,模2加用异或来实现。从图下可见,码由两个线性序列G1 和G2 模二和产生平衡Gold 码后截短1 码片生成。G1 和G2 序列分别由两个11 级线性移位寄存器生成,其生成多项式为:
G1(X)=1+X+X7+X8+X9+X10+X11(系数为代码中的S1)
G2(X)=1+X+X2+X3+X4+X5 +X8+X9+X11(系数为代码中的S2)
G1 和G2 的初始相位为:01010101010

图1 C/A码原理框图

通过对产生 G2 序列的移位寄存器不同抽头的模二和可以实现 G2 序列相位的不同偏移(图中G2序列的两个抽头用虚线表示,证明这两个抽头是任意的,而不仅仅是图中的6和11),与 G1 序列模二和后可生成不同卫星的 CA 码。G2不同抽头对应的不同PRN码如下表:

图2 北斗2卫星的相位分配表

详细可参考“北斗卫星导航系统空间信号接口控制文件 2.0 版”规范。
2.设计思路
由图一我们可进行编程,先设置两个11位的寄存器reg1和reg2以及G1G2系列对应的多项式系数矩阵s1和s2,因为北斗的Gold码为2^11-1-1=2046位,故而在进行移位时for函数需要循环2046次。
G1的for循环,先是确定抽头为11,即g1(i)=reg1(11);然后是系数多项式s1和寄存器reg1进行模二和完事后,先将寄存器向右移位,即1位到10位的数给2位到11位,即reg1(1,2:11)=reg1(1,1:10);再之后是将模二和的值给寄存器reg1的第一位。共循环2046次。
G2因为有两个抽头所以,把其先分为G21和G22,他两的运行原理和G1是一样的,就是在抽头部分可以任意选择是哪一位置,如上图一表示选择6和11位。
G2等于G21和G22的模二和也就是异或(即相同为0,不同为1),所以我们先是对两序列相加,因为序列中只有0和1,故其结果只有0,1和2,由异或可知当数为1时,标准G21和G22的数是相异的,为0和2时标准其是相同的(0+0或1+1)。故当其输出值为1时为1,数值为0或2时,为0,所以用find函数找出是2的位再将其换成0。其仿真代码如下:

简易代码如下:

reg1=[0 1 0 1 0 1 0 1 0 1 0]; %寄存器1初始相位为01010101010s1=[1 0 0 0 0 0 1 1 1 1 1];%G1多项式系数矩阵
for i=1:2046       %循环2046次g1(i)=reg1(11); %G1抽头为寄存器的第11位slave1=mod( sum(reg1.*s1),2 ) ;%多项式系数与寄存器模2和reg1(1,2:11)=reg1(1,1:10);%寄存器移位幅值reg1(1)=slave1;%给寄存器第一位重新赋值
end
reg2=[0 1 0 1 0 1 0 1 0 1 0]; %寄存器2初始相位为01010101010
s2=[1 1 1 1 1 0 0 1 1 0 1];%G1多项式系数矩阵
for i=1:2046g21(i)=reg2(4);%G21抽头为寄存器的第4位(随机可改)slave2= mod( sum(reg2.*s2) , 2 );%多项式系数与寄存器模2和reg2(1,2:11)=reg2(1,1:10);%寄存器移位reg2(1)=slave2;%给寄存器第一位重新赋值
end
for i=1:2046g22(i)=reg2(9);%G21抽头为寄存器的第9位(随机可改)slave3=mod( sum(reg2.*s2) , 2 ) ;reg2(1,2:11)=reg2(1,1:10);reg2(1)=slave3;
end
g2=g21+g22;
ind1=find(g2==2);%选出序列中为2的值
g2(ind1)=zeros(1,length(ind1));%为2的值全替换为0ca=g1+g2;
ind2=find(ca==2);
ca(ind2)=zeros(1,length(ind2));
temp=ca(1:200);%抽出1到200的值
x(1)=0;show(1)=temp(1);p=2;
for i=2:length(temp)  %将其以方波形式显示出来if((temp(i)~=temp(i-1))) x(p)=i;show(p)=temp(i-1);x(p+1)=i+0.01;show(p+1)=temp(i);p=p+2;elseshow(p)=temp(i);x(p)=i;p=p+1;end
end
plot(x,show);
axis([0 length(x)+5 0 1.5]);grid;

简易北斗C/A码matlab仿真相关推荐

  1. 差动双相码matlab仿真,数字双相码的仿真.docx

    数字双相码的仿真 通信原理上机实验报告年级:姓名:学号:时间:数字双相码的仿真一.实验目的1.熟悉MATLAB软件的工作环境2.熟练掌握数字双相码的MATLAB仿真3.熟练掌握数字双相码的Simuli ...

  2. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)[互联网+]>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLA ...

  3. 用matlab仿真导航信号,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)...

    <北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)>由会员分享,可在线阅读,更多相关<北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序)(9 ...

  4. 卫星测控matlab程序,北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB程序).docx...

    PAGE 4 北斗卫星导航信号串行捕获算法MATLAB仿真报告 原理 卫星导航信号的串行捕获算法如图1所示. 图1 卫星导航信号的串行捕获算法 接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且 ...

  5. matlab双极性眼图,实验报告三编程做单极性码眼图仿真

    <实验报告三编程做单极性码眼图仿真>由会员分享,可在线阅读,更多相关<实验报告三编程做单极性码眼图仿真(4页珍藏版)>请在人人文库网上搜索. 1.1.实验目的(1)掌握单极性码 ...

  6. 通信使用matlab三元码实验报告,Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验...

    Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验 Matlab 仿真 DSB-SC 信号与双极性不归零码通信原理实验报告二实验题目:Matlab 仿真 DSB-SC 信号与双极性不 ...

  7. MATLAB仿真m序列,Gold序列,Kasami序列扩频码性能仿真分析

    MATLAB仿真m序列,Gold序列,Kasami序列扩频码性能仿真分析 形式:程序+课程设计报告 程序实现功能: t1.m序列生成和抽取(自相关和互相关特性分析) t2.生成m序列优选对 t3.Go ...

  8. matlab画极化码,极化码的matlab仿真(1)——参数设置

    根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...

  9. 数字双向码的matlab仿真,数字双相码的仿真 文字版.pdf

    通信原理上机实验报告 年级: 姓名: 学号: 时间: 数字双相码的仿真 一.实验目的 1.熟悉MATLAB软件的工作环境 2.熟练掌握数字双相码的MATLAB仿真 3.熟练掌握数字双相码的Simuli ...

最新文章

  1. matlab动力学方程,机器人动力学方程(二):拉格朗日法
  2. Django实战(17):ajax !
  3. innodb下的mvcc_从InnoDB了解MVCC
  4. 【Java】辨析jvm.dll、java.exe、javaw.exe、javaws.exe
  5. 我们用计算机做什么大餐英语怎么说,感恩用英语怎么说
  6. PHP学习总结(3)——PHP入门篇之PHP的echo语句
  7. 2018年6月1号(线段树(1))
  8. python邮箱格式验证_学会使用正则表达式——验证邮箱地址格式
  9. 哈希原理与常见哈希函数
  10. 【安卓Android】VibratorService分析
  11. 计算机linux二级试题,浙江省计算机等级考试二级考试试题库
  12. SQL Server数据并发处理
  13. java读取apk、ipa包名、版本名、版本号等信息
  14. 前端模块化- ES Module 和 CommonJS 的使用
  15. 基于MSP432控制的红外循迹爬坡小车设计报告
  16. 关于python的字符串(str)的函数(附带解释)
  17. 19. Redis的使用
  18. 2022—SWJTU-寒假ACM校队选拔赛第二场-题解
  19. firefox与IE9不显示icon字体图标
  20. mklink命令使用教程

热门文章

  1. 第十三章 使用系统监视器 - 系统监视器
  2. vue的is和v-bind:is怎么用
  3. swiper在IE8下失效
  4. Linux 终极装机指南
  5. 华中电网项目日志:再梳理一下SG186概念
  6. JWT验证机制【Python版Flask或自己写的后端可以用】【刘新宇】
  7. 2020-01-15 Vba Union用法
  8. 三脉冲对消matlab实现,DSP多普勒雷达测速测距 MTD
  9. 灌溉草场POJ2373
  10. 热模块替换实现与原理