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

合集下载

北斗B1I信号的捕获算法

北斗B1I信号的捕获算法

北斗B1I信号的捕获算法王丽黎;杨阳【摘要】北斗B1I信号的捕获是北斗2代接收机的核心模块,它是基于码相位和多普勒频移二维搜索的过程.对于捕获模块,通常采用并行码相位搜索捕获算法来实现对空中可见卫星的捕获.针对信号较弱情况下的卫星捕获,采用了非相干累加与并行码相位搜索捕获相结合的方法.测试结果表明,该捕获算法能够有效快速地实现弱信号的捕获.%BeiDou B1I signal acquisition is a hard core in a BeiDou receiver and is the two-dimension process of the search about the code delay and Doppler frequency. For acquisition, parallel search algorithm of code in frequency domain are usually adopted. For the acquisition of weak signal, a method combining non-correlation integration with parallel search algorithm of code in frequency domain was introduced. The test results show that the acquisition algorithm can effectively and quickly acquire the weak signal.【期刊名称】《计算机系统应用》【年(卷),期】2016(025)003【总页数】5页(P194-198)【关键词】北斗B1I信号;接收机;捕获;弱信号;非相干累加【作者】王丽黎;杨阳【作者单位】西安理工大学自动化与信息工程学院,西安 710048;西安理工大学自动化与信息工程学院,西安 710048【正文语种】中文随着我国成功将第16颗北斗导航卫星送入预定轨道, 北斗导航工程区域组网顺利完成[1]. 第2代北斗导航系统主要功能为定位、测速、单双向授时和短报文通信[2,3]. 因此, 针对北斗导航系统相应的接收技术的研究逐渐成为研究热点. 传统的接收机由射频前端、用于信号处理的ASIC以及高速运算的CPU核组成, 设计灵活性受到限制. 相比之下, 软件接收机只需对软件修改便可对接收机进行优化升级, 则更具有方便性和灵活性[4,5].在接收机内, 完成信号捕获是信号处理的第一步, 信号捕获重在估计两个重要参数: 一个是C/A码周期的开始, 另一个是输入信号的载波频率, 获得导航卫星信号的载波频率(或称为载波多普勒频移)和码相位这两个参数的粗略值, 然后跟踪过程则利用这些粗略值进一步得到频率和码相位的精确值并进而解算出导航电文. 因此对接收机性能好坏影响较大的是捕获跟踪算法的好坏[6,7].本文在详细分析了并行码相位搜索捕获算法原理的基础上, 为了能更好的实现对弱信号的捕获, 将并行码相位搜索捕获算法与非相干累加相结合, 不但提高捕获效率, 降低了噪声干扰, 而且有效的提高了弱信号的捕获.目前北斗2代播发B1、B2、B3三个频段的信号, 其信号复用方式为码分多址, 其中B1(1561.098 MHz)信号由I、Q两条支路的测距码和导航电文正交调制在载波上构成. 调制在B1频率上的信号可表示为式(1):其中上角标j表示卫星序号; AB1分别表示B1信号幅度; 分别表示B1信号测距码; 分别表示调制在B1测距码上的导航电文数据码; 表示B1信号载波频率; 表示B1信号载波初相.CB1I码的码速率为2.046 Mcps, 码长为2046, 码宽为488.7 ns(1/2.046 MHz). CB1I码发生的结构如图1所示, 其是由两个线性序列G1和G2模2和产生均衡Gold码后截短1个码片后生成. G1和G2序列分别由两个11级的线性移位寄存器生成, 其生成多项式如式(2)、式(3)所示.(2)(3)G1序列初始相位为************;G2序列初始相位为************.通过对产生G2序列的移位寄存器不同抽头的模2和可以实现G2序列相位的不同偏移, 与G1序列模2和后可生成不同卫星的测距码. 而之所以用这种码传输信号, 就是因为其良好的自相关和互相关特性.图1 CB1I码发生器示意图2 北斗2代B1信号CB1I码的捕获由于CB1I码除了自身完全对齐的情况外, 其余情况几乎是不相关的, 这种特性使得很容易找出两个完全对齐的相同的CB1I码. 捕获过程正是利用其这一特点.2.1 CB1I码的捕获接收机的信号捕获过程一般通过对卫星信号的载波频率和码相位进行扫描式搜索来完成. 捕获的目的就是为了对输入信号和一个测距码序列做相关运算. 并行码相位搜索捕获算法实际上是利用傅里叶变换这种数字信号处理技术来替代数字相关器的相关运算, 而我们需要证明一下两者的等价性.两个长度同为N的有限长序列和的离散傅里叶变换和计算如式(4)、式(5)所示.(4)(5)两个长度同为N的有限长序列和的循环互相关计算如式(6)所示.(6)下面的分析中均省略了中的缩放因子1/N, 的N点离散傅里叶变换计算如式(7)所示.(7)其中是的复共轭. 由式(7)可知, 两个序列与在时域内做相关运算, 相当于它们的离散傅里叶变换与在频域内做乘积运算. 于是倒过来, 乘积的离散傅里叶反变换正好是接收机需要进行检测的在各个码相位处的相关值. 一旦接收机通过傅里叶反变换计算得到相关值, 那么接下来的信号检测就同线性搜索捕获法一样, 即找出在所有搜索单元中自相关幅值的峰值, 并将该峰值与捕获门限值相比较. 若峰值超过捕获门限值, 则接收机捕获到了信号.图2 并行码相位搜索捕获算法原理图如图2所示为并行码相位搜索捕获算法的原理图, 考虑到导航数据位存在跳变的可能, 用含导航数据位的数据进行相关运算所获得的相关峰值将会有较大衰减从而造成漏捕, 在算法实现过程中, 总是采用两段连续数据进行同步相关运算, 在得到的两组相关结果中选择最大功率能量相关峰值较大者(认为该段数据中不包含导航数据位跳变)的相关结果作为捕获判断依据[8].2.2基于非相干累加的CB1I码捕获采用1 ms时长的数据进行上述捕获的时候, 由于噪声的作用可能导致误捕, 当信号较弱时, 甚至会出现漏捕. 而且在北斗MEO/IGSO卫星B1频点信号中, 因为NH 码调制的影响, 相干累加时间不能超过1 ms. 为了提高灵敏度, 只能通过提高非相干累加次数来捕获弱信号[9], 即将相干积分结果进行平方处理后再累加, 从而获得信号增益. 其非相关累加值[10]可表示为式(8):(8)其中: 为M ms的数据信息与测距码的非相干捕获相关值. 可以看出导航电文数据位翻转对积分结果的影响被平方运算有效的降低了. 因此非相干积分可以进行积分时间超过1 ms的积分.非相干累加法消除了导航电文数据位翻转造成的影响, 同时平方运算消除了相位误差造成的副作用, 而前面提到的并行码相位搜索捕获算法通过傅里叶变换实现循环相关, 将相位域捕获过程并行化, 使得搜索量减少到了只需搜索不同的载波频率, 提高运算效率. 将非相干累加法与并行码相位搜索捕获算法相结合, 在大幅降低捕获时间的前提下, 实现了对弱信号的捕获. 其原理图如图3所示.图3 非相干累加捕获原理图通过图3可知, 非相干累加捕获的方法是将并行码相位搜索捕获算法每毫秒的捕获结果按照预先设定好的累加时间进行累加, 其累加原理如式(8)所示, 由于噪声累加的结果增大不如信号累加的结果增加的快, 使得经过一段时间累加后, 可找出明显的相关峰值.3 仿真验证在Matlab环境下对本文研究的信号捕获方案进行仿真验证. 利用卫星信号模拟器对北斗B1频点中频信号进行仿真, 仿真信号的中频频率为2.098MHz, 采样频率为8.8MHz, 仿真产生60s的数据中频信号, 信号中共调制了1号、2号、3号、4号、7号、8号、10号、12号和13号等9颗卫星信号. 信号中加入的是高斯白噪声,信噪比为-35dB. 利用生成的信号, 就可以进行捕获的仿真, 捕获程序流程图如图4所示.图4 CB1I码捕获程序流程图图5是用图1所示的CB1I码发生器产生的对应10号卫星的本地伪码, 其是由两个11级移位寄存器进行模2和生成的. 不同的卫星编号对应不同的抽头, 不同卫星对应的CB1I码则通过查表的方式就可以实现. 横坐标表示采样点数, 截取了2046个码片的前100位, 纵坐标表示CB1I码的相位幅度.图5 10号卫星本地伪码部分截图CB1I码具有良好的自相关和互相关特性, 如图6和图7所示. 除了延迟为零外, 几乎没有自相关性. 只有当本地伪码与接收到的信号的伪码序列能够对齐时才可得到最大相关值. 根据这一特性可轻易找出何时两个码是严格对齐的, 本文采用并行码相位搜索捕获也正是基于此特性. 横坐标表示码片数, 纵坐标分别表示自相关值和互相关值.图6 测距码的自相关性图7 测距码的互相关性当检测门限选用最大峰值与次大峰值的比值(大于2.5)时, 首先使用两段连续的单位数据段, 本文以1 ms数据位为单位数据段, 对其做同步相关运算即对这两段数据进行并行码相位搜索捕获, 在得到的两组相关结果中选择较大的相关峰值作为捕获判断依据进行弱信号捕获的验证结果如图8所示. 其次使用5 ms和10 ms数据进行非相干积分的弱信号捕获验证结果如图9和图10所示.图8 并行码相位搜索捕获算法捕获情况图9 进行5 ms非相干累加的捕获情况图10 进行10 ms非相干累加的捕获情况由图可以看出, 在信噪比为-35dB的情况下, 图8中仅使用并行码相位搜索捕获算法得到的最大峰值与次大峰值的比值并不是很大; 而在图9和图10中采用将并行码相位搜索捕获算法与非相干累加相结合的捕获算法, 在累加时间增大时, 该比值结果明显增加. 证明当进行非相干积分所用数据长度从1ms增加到10ms时, 信号中所有可见卫星的最大峰值与次大峰值的比值增加的都很明显, 能够实现低信噪比信号的捕获, 提高接收机的灵敏度. 当然, 也可以根据实际的需要选择合适的相干累加时间, 达到设计目的.接着再从单颗卫星角度进行研究, 以10号卫星为例, 即PRN=10, 分别进行3ms、6ms和10ms数据的相干累加, 其捕获结果如图11、图12和图13所示.图11 10号卫星进行3 ms非相干累加结果图12 10号卫星进行6 ms非相干累加结果图13 10号卫星进行10 ms非相干累加结果由图11、图12和图13可以看出, 随着捕获所用数据长度的增加, 即非相干累加数据长度增加, 噪声得到一定的抑制, 可见卫星正确相位所对应的归一化相关值也更加明显, 该部分也达到了有效地捕获弱信号的预期效果.4 结语本文研究了北斗软件接收机捕获算法, 分析了并行码相位搜索捕获算法并将其与非相干积分相结合, 并通过仿真数据对算法进行了验证. 可见非相干积分与并行码相位搜索捕获算法相结合不但捕获效率高, 而且较好地抑制了噪声信号, 有效地实现了弱信号的捕获. 对于软件接收机相关模块的研究具有一定的意义, 能够使用户在接收机算法处理和软件更新等方面具有很大的灵活性.参考文献1 何敏,葛榜军.北斗卫星导航系统及应用.卫星应用,2012, (5):19–23.2 中国卫星导航系统管理办公室.北斗导航系统发展报告.国际太空,2012,(4):6–11.3 Meng WX, Liu E, Han Sh. Resaerch and development on satellite positioning and navigation in China. IEICE Trans. Commun, 2012(E95-B): 3385–3392.4 杨东凯,张飞舟,张波译.软件定义的GPS和伽利略接收机.北京:国防工业出版社,2009.5 杨俊,武奇生.GPS基本原理及其Matlab仿真.西安:西安电子科技大学出版社,2006.6 王冰.GPS信号捕获算法的研究.电子科技,2014,27(8): 154–156.7 谢刚.GPS原理与接收机设计.北京:电子工业出版社,2009.8 黄隽祎,李荣冰,王翌等.北斗B1 QPSK调制信号的高灵敏度捕获算法.航空计算技术,2012,42(5):38–42.9 史向男,巴晓辉,陈杰.北斗MEO/IGSO卫星B1频点信号捕获方法研究.国外电子测量技术,2013,32(4):19–21.10 陈军,潘高峰,李飞,余金峰,黄静华译. GPS软件接收机基础(第2版).北京:电子工业出版社,2007.Acquisition Algorithm of BeiDou B1I SignalWANG Li-Li, YANG Yang(Faculty of Automation and Information Engineering, Xi′an University of Technology, Xi’an 710048, China)Abstract:BeiDou B1I signal acquisition is a hard core in a BeiDou receiver and is the two-dimension process of the search about the code delay and Doppler frequency. For acquisition, parallel search algorithm of code in frequency domain are usually adopted. For the acquisition of weak signal, a method combining non-correlation integration with parallel search algorithm of code in frequency domain was introduced. The test results show that the acquisition algorithm can effectively and quickly acquire the weak signal.Key words:BeiDou B1I signal; receiver; acquisition; weak signal; non-coherent integration① 收稿时间:2015-07-06;收到修改稿时间:2015-09-06CB1I码的码速率为2.046 Mcps, 码长为2046, 码宽为488.7 ns(1/2.046 MHz). CB1I码发生的结构如图1所示, 其是由两个线性序列G1和G2模2和产生均衡Gold码后截短1个码片后生成. G1和G2序列分别由两个11级的线性移位寄存器生成, 其生成多项式如式(2)、式(3)所示.G1序列初始相位为************;G2序列初始相位为************.通过对产生G2序列的移位寄存器不同抽头的模2和可以实现G2序列相位的不同偏移, 与G1序列模2和后可生成不同卫星的测距码. 而之所以用这种码传输信号, 就是因为其良好的自相关和互相关特性.由于CB1I码除了自身完全对齐的情况外, 其余情况几乎是不相关的, 这种特性使得很容易找出两个完全对齐的相同的CB1I码. 捕获过程正是利用其这一特点.2.1 CB1I码的捕获接收机的信号捕获过程一般通过对卫星信号的载波频率和码相位进行扫描式搜索来完成. 捕获的目的就是为了对输入信号和一个测距码序列做相关运算. 并行码相位搜索捕获算法实际上是利用傅里叶变换这种数字信号处理技术来替代数字相关器的相关运算, 而我们需要证明一下两者的等价性.两个长度同为N的有限长序列和的离散傅里叶变换和计算如式(4)、式(5)所示. 两个长度同为N的有限长序列和的循环互相关计算如式(6)所示.下面的分析中均省略了中的缩放因子1/N, 的N点离散傅里叶变换计算如式(7)所示.其中是的复共轭. 由式(7)可知, 两个序列与在时域内做相关运算, 相当于它们的离散傅里叶变换与在频域内做乘积运算. 于是倒过来, 乘积的离散傅里叶反变换正好是接收机需要进行检测的在各个码相位处的相关值. 一旦接收机通过傅里叶反变换计算得到相关值, 那么接下来的信号检测就同线性搜索捕获法一样, 即找出在所有搜索单元中自相关幅值的峰值, 并将该峰值与捕获门限值相比较. 若峰值超过捕获门限值, 则接收机捕获到了信号.如图2所示为并行码相位搜索捕获算法的原理图, 考虑到导航数据位存在跳变的可能, 用含导航数据位的数据进行相关运算所获得的相关峰值将会有较大衰减从而造成漏捕, 在算法实现过程中, 总是采用两段连续数据进行同步相关运算, 在得到的两组相关结果中选择最大功率能量相关峰值较大者(认为该段数据中不包含导航数据位跳变)的相关结果作为捕获判断依据[8].2.2基于非相干累加的CB1I码捕获采用1 ms时长的数据进行上述捕获的时候, 由于噪声的作用可能导致误捕, 当信号较弱时, 甚至会出现漏捕. 而且在北斗MEO/IGSO卫星B1频点信号中, 因为NH码调制的影响, 相干累加时间不能超过1 ms. 为了提高灵敏度, 只能通过提高非相干累加次数来捕获弱信号[9], 即将相干积分结果进行平方处理后再累加, 从而获得信号增益. 其非相关累加值[10]可表示为式(8):其中: 为M ms的数据信息与测距码的非相干捕获相关值. 可以看出导航电文数据位翻转对积分结果的影响被平方运算有效的降低了. 因此非相干积分可以进行积分时间超过1 ms的积分.非相干累加法消除了导航电文数据位翻转造成的影响, 同时平方运算消除了相位误差造成的副作用, 而前面提到的并行码相位搜索捕获算法通过傅里叶变换实现循环相关, 将相位域捕获过程并行化, 使得搜索量减少到了只需搜索不同的载波频率, 提高运算效率. 将非相干累加法与并行码相位搜索捕获算法相结合, 在大幅降低捕获时间的前提下, 实现了对弱信号的捕获. 其原理图如图3所示.通过图3可知, 非相干累加捕获的方法是将并行码相位搜索捕获算法每毫秒的捕获结果按照预先设定好的累加时间进行累加, 其累加原理如式(8)所示, 由于噪声累加的结果增大不如信号累加的结果增加的快, 使得经过一段时间累加后, 可找出明显的相关峰值.在Matlab环境下对本文研究的信号捕获方案进行仿真验证. 利用卫星信号模拟器对北斗B1频点中频信号进行仿真, 仿真信号的中频频率为2.098MHz, 采样频率为8.8MHz, 仿真产生60s的数据中频信号, 信号中共调制了1号、2号、3号、4号、7号、8号、10号、12号和13号等9颗卫星信号. 信号中加入的是高斯白噪声,信噪比为-35dB. 利用生成的信号, 就可以进行捕获的仿真, 捕获程序流程图如图4所示.图5是用图1所示的CB1I码发生器产生的对应10号卫星的本地伪码, 其是由两个11级移位寄存器进行模2和生成的. 不同的卫星编号对应不同的抽头, 不同卫星对应的CB1I码则通过查表的方式就可以实现. 横坐标表示采样点数, 截取了2046个码片的前100位, 纵坐标表示CB1I码的相位幅度.CB1I码具有良好的自相关和互相关特性, 如图6和图7所示. 除了延迟为零外, 几乎没有自相关性. 只有当本地伪码与接收到的信号的伪码序列能够对齐时才可得到最大相关值. 根据这一特性可轻易找出何时两个码是严格对齐的, 本文采用并行码相位搜索捕获也正是基于此特性. 横坐标表示码片数, 纵坐标分别表示自相关值和互相关值.当检测门限选用最大峰值与次大峰值的比值(大于2.5)时, 首先使用两段连续的单位数据段, 本文以1 ms数据位为单位数据段, 对其做同步相关运算即对这两段数据进行并行码相位搜索捕获, 在得到的两组相关结果中选择较大的相关峰值作为捕获判断依据进行弱信号捕获的验证结果如图8所示. 其次使用5 ms和10 ms数据进行非相干积分的弱信号捕获验证结果如图9和图10所示.由图可以看出, 在信噪比为-35dB的情况下, 图8中仅使用并行码相位搜索捕获算法得到的最大峰值与次大峰值的比值并不是很大; 而在图9和图10中采用将并行码相位搜索捕获算法与非相干累加相结合的捕获算法, 在累加时间增大时, 该比值结果明显增加. 证明当进行非相干积分所用数据长度从1ms增加到10ms时, 信号中所有可见卫星的最大峰值与次大峰值的比值增加的都很明显, 能够实现低信噪比信号的捕获, 提高接收机的灵敏度. 当然, 也可以根据实际的需要选择合适的相干累加时间, 达到设计目的.接着再从单颗卫星角度进行研究, 以10号卫星为例, 即PRN=10, 分别进行3ms、6ms和10ms数据的相干累加, 其捕获结果如图11、图12和图13所示.由图11、图12和图13可以看出, 随着捕获所用数据长度的增加, 即非相干累加数据长度增加, 噪声得到一定的抑制, 可见卫星正确相位所对应的归一化相关值也更加明显, 该部分也达到了有效地捕获弱信号的预期效果.本文研究了北斗软件接收机捕获算法, 分析了并行码相位搜索捕获算法并将其与非相干积分相结合, 并通过仿真数据对算法进行了验证. 可见非相干积分与并行码相位搜索捕获算法相结合不但捕获效率高, 而且较好地抑制了噪声信号, 有效地实现了弱信号的捕获. 对于软件接收机相关模块的研究具有一定的意义, 能够使用户在接收机算法处理和软件更新等方面具有很大的灵活性.1 何敏,葛榜军.北斗卫星导航系统及应用.卫星应用,2012, (5):19–23.2 中国卫星导航系统管理办公室.北斗导航系统发展报告.国际太空,2012,(4):6–11.3 Meng WX, Liu E, Han Sh. Resaerch and development on satellite positioning and navigation in China. IEICE Trans. Commun, 2012(E95-B): 3385–3392.4 杨东凯,张飞舟,张波译.软件定义的GPS和伽利略接收机.北京:国防工业出版社,2009.5 杨俊,武奇生.GPS基本原理及其Matlab仿真.西安:西安电子科技大学出版社,2006.6 王冰.GPS信号捕获算法的研究.电子科技,2014,27(8): 154–156.7 谢刚.GPS原理与接收机设计.北京:电子工业出版社,2009.8 黄隽祎,李荣冰,王翌等.北斗B1 QPSK调制信号的高灵敏度捕获算法.航空计算技术,2012,42(5):38–42.9 史向男,巴晓辉,陈杰.北斗MEO/IGSO卫星B1频点信号捕获方法研究.国外电子测量技术,2013,32(4):19–21.10 陈军,潘高峰,李飞,余金峰,黄静华译. GPS软件接收机基础(第2版).北京:电子工业出版社,2007.。

基于某MATLAB地GPS信号仿真完整源代码123

基于某MATLAB地GPS信号仿真完整源代码123

配套毕业设计论文见百度文库请搜索《基于MATLAB的GPS信号仿真123》附录C 仿真程序代码1、数据码的产生function datacode=data(x)y=rand(1,x);for i=1:xif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendy(1)=0;show2(1)=datacode(1);q=2;for i=1:length(datacode)for j=1:100y(q)=i-1+j*0.01;show2(q)=datacode(i);q=q+1;endendplot(y,show2);axis([0 length(datacode) -0.2 1.2]);1、C/A码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);number=input('请输入卫星PRN号码:number=');cacode=CAgenerate(number);temp=cacode(1:100)x(1)=0;show(1)=temp(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(temp)for j=1:100x(p)=i-1+j*0.01;show(p)=temp(i);p=p+1;endend%画出仿真结果图subplot(4,1,2);plot(x,show);title('C/A码');axis([0 100 -0.2 1.2]);%截取CA码的前十个数据进行扩频,每个数据插入5个CA序列 cacode1=cacode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),cacode1(addr));endend%下面的循环是为了将结果显示成方波形式x(1)=0;show(1)=kuopindata(1);p=2;for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);plot(GPSsignal(1:500));title('调制后数据');C/A码产生的子程序CAgenerate:function cacode=CAgenerate(number)if (number<1)|(number>37)disp('输入参数必须在1 ~ 37之间取值');returnendCACode=zeros(1,1023); %生成一个1*1023的零矩阵% 设置寄存器初相Reg1=[1,1,1,1,1,1,1,1,1,1];Reg2=[1,1,1,1,1,1,1,1,1,1];% 设置反馈点,1表示需要反馈gp1=[0,0,1,0,0,0,0,0,0,1];gp2=[0,1,1,0,0,1,0,1,1,1];% 抽头G2Table=[ 2,3,4,5,1,2,1,2,3,2,3,5,6,7,8,9,1,2,3,4,5,6,1,4,5,6,7,8,1,2,3 ,4,5,4,1,2,4;6,7,8,9,9,10,3,4,6,7,8,9,10,4,5,6,7,8,9,3,6,7,8,9,10,6,7,8,9,10,10,7,8,10;] % 生成一个周期的伪码序列for m=1:1023CACode(m)=mod(Reg1(10)+Reg2(G2Table(1,number))+Reg2(G2Table(2,number)),2);Reg1=[mod(Reg1*gp1',2),Reg1(1:9)];Reg2=[mod(Reg2*gp2',2),Reg2(1:9)];endcacode=CACode;2、C/A码的相关性分析clc;n=input('请输入卫星PRN号码:n=');cacode1=CAgenerate(n);%在G2序列中找出-1并转换为0,找出1并转换为1ind1=find(cacode1==1);ind2=find(cacode1==0);cacode1(ind1)=-ones(1,length(ind1)); cacode1(ind2)=ones(1,length(ind2)); N=1023;z=zeros(1,1023);for i=0:N-1for k=i+1:N-1z1(k)=cacode1(k)*cacode1(k-i); z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/N;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 1300 -0.5 1.2]);n=input('请输入卫星PRN号码:n='); cacode2=CAgenerate(n);ind1=find(cacode2==1);ind2=find(cacode2==0);cacode2(ind1)=-ones(1,length(ind1)); cacode2(ind2)=ones(1,length(ind2));N=1023;h=zeros(1,1023);for i=0:N-1for k=i+1:N-1h1(k)=cacode1(k)*cacode2(k-i); h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/N;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 1300 -0.5 1]);4、 P码的产生及扩频调制clc;c=input('请输入数据码的长度:c='); y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);NumberPCode=input('enter the NumberPcode='); NumberShift=input('enter the NumberShift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);x(1)=0;show(1)=pcode(1);p=2;for i=1:length(pcode)for j=1:100x(p)=i-1+j*0.01;show(p)=pcode(i);p=p+1;endendsubplot(4,1,2);plot(x,show);title('P码');axis([0 length(pcode) -0.2 1.2]);pcode=pcode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50); elsedatacodek((i-1)*50+1:i*50)=zeros(1,50); endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),pcode(addr)); endendx(1)=0;show(1)=kuopindata(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);title('调制后数据');plot(GPSsignal(1:500));以下是P码产生的子程序Pcode:function pcode=Pcode(a,NumberPCode,NumberShift) % P码产生reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1a=0;rx1b=0;rx2a=0;rx2b=0;x1bWork=1;x2aWork=1;x2bWork=1;N=NumberShift;C1=4092*3750;C2=4093*3749;z1a=mod(N,4092);%取余数x1a=mod([(N-z1a)/4092],3750);y1a=(N-z1a-4092*x1a)/C1;if ((N-C1*y1a)>=C2)z1b=4092;x1bWork=0;x1b=3748;elsez1b=mod((N-C1*y1a),4093);x1bWork=1;x1b=(N-z1b-C1*y1a)/4093;endm=mod(N,(C1+37));y2a=(N-m)/(C1+37);if (m>=C1)dv=m-C1;elsedv=0;endz2a=mod((m-dv),4092);x2a=mod((((m-dv)-z2a)/4092),3750);z2b=mod((m-dv),4093);if (m>=C2)x2b=3748;elsex2b=(m-z2b)/4093;end%各移位寄存器的状态for i=1:z1aslave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)= reg1a(1:11);reg1a(1)=slave1a;endfor i=1:z1bslave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11 )+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;endfor i=1:z2aslave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+ reg2a(10)+reg2a(11+reg2a(12)) ,2);reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;endfor i=1:z2bslave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2);reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;end%各控制变量的判断if z1a==4091rx1a=1;endif z1b==4092rx1b==1;endif z2a==4091rx2a=1;x2aWork=0;endif z2b==4092rx2b=1;x2bWork=0;end%开始产生P码p=zeros(NumberPCode,1);x1acou=0;x1bcou=0;x2acou=0;x2bcou=0;cou37=dv;x2(1:a)=1;for i=1:(NumberPCode+37)x1(i)=mod( reg1a(12)+reg1b(12),2);x2(i+a)=mod( reg2a(12)+reg2b(12),2);%寄存器x1b的移位函数if x1bWork==1if rx1b==0slave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;else if rx1b==1reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1b=0;endendelse if x1bWork==0endendif reg1b==[0 1 0 1 0 1 0 1 0 1 0 0 ]rx1b=1;x1bcou=x1bcou+1;if x1bcou==3749x1bwork=0;x1bcou=0;endend%寄存器x1a的移位函数if rx1a==0slave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)=reg1a(1:11);reg1a(1)=slave1a;else if rx1a==1reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];rx1a=0;endendif reg1a==[0 0 1 0 0 1 0 0 1 0 0 0]rx1a=1;x1acou=x1acou+1;if x1acou==3750x1bwork=1;x1acou=0;endend%寄存器x2b的移位函数if x2bWork==1if rx2b==0slave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;else if rx2b==1x2bout=reg2b(11);reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx2b=0;endendelse if x2bWork==0reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];x2bWork=1;rx2b=0;endendif reg2b==[0 1 0 1 0 1 0 1 0 1 0 0]rx2b=1;x2bcou=x2bcou+1;if x2bcou==3749x2bWork=0;x2bcou=0;endend%寄存器x2a的移位函数if x2aWork==1if rx2a==0slave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10)+reg2a(11)+reg2a(12) ,2); reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;else if rx2a==1reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];rx2a=0;endendelse if x2aWork==0if rx2a==1cou37=cou37+1;if cou37==37rx2a=0;x2awork=1;cou37=0;endendendendif reg2a==[0 1 0 0 1 0 0 1 0 0 1 1] rx2a=1;x2acou=x2acou+1;if x2acou==3750x2awork=0;x2acou=0;endendendfor i=1:NumberPCodep(i)= mod( x1(i)+x2(i),2);endp=p';pcode=p';5、 P码的相关性分析clc;NumberPCode=input('enter the number Pcode='); NumberShift=input('enter the numbershift='); a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);ind1=find(pcode==1);ind2=find(pcode==0);pcode(ind1)=-ones(1,length(ind1));pcode(ind2)=ones(1,length(ind2));M=NumberPCode;z=zeros(1,M);for i=0:M-1for k=i+1:M-1z1(k)=pcode(k)*pcode(k-i);z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/M;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 M -0.5 1.2]);a=input('enter a=');NumberShift=input('enter the numbershift='); pcode2=Pcode(a,NumberPCode,NumberShift);h=zeros(1,M);for i=0:M-1for k=i+1:M-1h1(k)=pcode(k)*pcode2(k-i);h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/M; endsubplot(2,1,2);plot(h);title('互相关特性'); axis([-50 M -0.5 1]);。

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

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

北斗卫星导航信号串行捕获算法MATLAB仿真报告一、原理卫星导航信号的串行捕获算法如图1所示。

图1 卫星导航信号的串行捕获算法接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且接收机知道产生的伪码的相位,这个伪码按一定速率抽样后与接收的GPS中频信号相乘,然后再与同样知晓频率的本地产生的载波相乘。

GPS中频信号由接收机的射频前端将接收到的高频信号下边频得到。

实际产生对应相位相互正交的两个本地载波,分别称为同相载波和正交载波,信号与本地载波相乘后的信号分别成为,产生同相I支路信号和正交的Q 支路信号。

两支路信号分别经过一个码周期时间的积分后,平方相加。

分成两路是因为C/A码调制和P码支路正交的支路上,假设是I支路。

当然由于信号传输过程中引入了相位差,解调时的I支路不一定是调制时的I支路,Q支路也一样,二者不一定一一对应,因此为了确定是否检测到接收信号,需要同时对两支路信号进行研究。

相关后的积分是为了获取所有相关数据长度的值的相加结果,平方则是为了获得信号的功率。

最后将两个支路的功率相加,只有当本地伪码和本地载波的频率相位都与中频信号相同时,最后得到的功率才很大,否则结果近似为零。

根据这个结论考虑到噪声的干扰,在实际设计时应该设定一个判定门限,当两路信号功率和大于设定的门限时则判定为捕获成功,转入跟踪过程,否则继续扫描其它的频率或相位。

二、MATLAB仿真过程及结果仿真条件设置:抽样频率16MHz,中频5MHz,采样时间1ms,频率搜索步进1khz,相位搜索步进1chip,信号功率-200dBW,载噪比55dB(1)中频信号产生卫星导航信号采用数字nco的方式产生,如图2所示。

载波nco控制字为:carrier_nco_word=round(f_carrier*2^N/fs); 伪码nco控制字为:code_nco_word=round(f_code*2^N/fs);图 2其中载波rom存储的是正弦信号的2^12个采样点,伪码rom存储长度为2046的卫星伪码。

卫星导航定位算法与程序的设计——实验报告

卫星导航定位算法与程序的设计——实验报告

2013 级测绘工程专业卫星导航定位算法与程序设计实验报告实验名称:卫星导航基本程序设计班级:学号:姓名:实验时间: 2016年6月28日~2016年6月30中国矿业大学目录实验一时空基准转换 (2)一、实验目的 (2)二、实验容 (2)三、实验过程 (2)四、实验感想 (6)实验二 RINEX文件读写 (7)一、实验目的 (7)二、实验容 (7)三、实验过程 (7)实验三卫星轨道计算 (12)一、实验目的 (12)二、实验容 (12)三、实验过程 (12)四、实验感想 (15)实验一时空基准转换一、实验目的1、加深对时空系统及其之间转换关系的理解2、掌握常用时空基准之间的转换模型与软件实现3、每人独立完成实验规定的容二、实验容本实验容包括:容一:编程实现GPS起点1980年1月6日0时对应的儒略日容二:编程实现2011年11月27日对应的GPS周数与一周的秒数容三:在WGS84椭球的条件下,编程实现当中央子午线为117度时,计算高斯坐标x = 3548910.811290287, y = 179854.6172135982 对应的经纬度坐标?容四:WGS84椭球下,表面x=-2408000; y=4698000;z= 3566000处的地平坐标系坐标为: e=704.8615;n=114.8683;u=751.9771的点对应的直角坐标为多少?三、实验过程1.针对第一、二部分容:1.1解决思路:先建立” TimeStruct.h”的头文件,将格里高利历、GPS 时间结构、儒略日时间结构共结构体的方式放在里面;在建立“TimeTr”的头文件,建立类“CTimeT r”,创建变量“GPS Time”、“Time”、”JulDay”,并且申明函数“TIME2JUL”、“TIME2GTIME”等,用这些函数分别实现所需要的转换。

1.2具体的实现函数:“TIME2JUL”函数:double CTimeTr::TIME2JUL()//TIME Time,JULIANDAY &JulDay{double m,y;double D;//h =Time.byHour+Time.byMinute/60.0+Time.dSecond/3600.00;if(Time.byMonth<=2){y=Time.wYear-1;m=Time.byMonth+12;}else{y=Time.wYear;m=Time.byMonth;}D=floor(365.25*(y+4716))+floor(30.6001*(m+1))+Time.byDay+Time.byHour/24.0-1537 .5;JulDay.lDay = int(D);JulDay.lSecond = D-int(JulDay.lDay);return 0;}“TIME2GTIME”:void CTimeTr::TIME2GTIME(){double JD;long m,y;int WN;double Wsecend;//UT=Time.byHour+Time.byMinute/60.0+Time.dSecond/3600.00;if(Time.byMonth<=2){y=Time.wYear-1;m=Time.byMonth+12;}else{y=Time.wYear;m=Time.byMonth;}JD=int(365.25*y)+int(30.6001*(m+1))+Time.byDay+Time.byHour/24.0+1720981.5;WN = floor((JD-2444244.5)/7.0);GpsTime.lWeek=WN;Wsecend=(JD-2444244.5-7*WN)*604800;GpsTime.lSecond=Wsecend;}1.3实验结果:2 针对第三部分容:2.1解决思路:运用实验指导书中提供的matlab高斯反算的代码,进行解算;将高斯反算的公式直接输成matlab代码,绕后在函数“function [B,L] = gauss_fansuan (x,y,L0)”中,将坐标x = 3548910.811290287,y = 179854.6172135982,L0 = 117,带入函数的坐边,即可得到所需要的经纬度。

北斗并行频率捕获算法研究与分析

北斗并行频率捕获算法研究与分析

北斗并行频率捕获算法研究与分析作者:陈伟强苏凯雄来源:《现代电子技术》2014年第19期摘要:采用FFT并行频率搜索的北斗二代卫星信号捕获算法,分析了并行频率捕获原理,利用Matlab对设计的捕获模型进行仿真,通过对比分析得到不同的FFT点数、子相关器个数及抽头设置等参数设置对捕获速度、频率搜索范围及灵敏度等性能的影响。

在实际设计中考虑到资源消耗和性能的平衡,给出改进后的捕获系统的FPGA实现方案。

改进传统的相关器结构,采用同一相关器分段积分方式模拟多个子相关器,减少硬件资源开销,提高了相关器使用效率。

关键词:北斗;捕获系统; FFT;并行频率搜索中图分类号: TN967⁃34 文献标识码: A 文章编号: 1004⁃373X(2014)19⁃0075⁃04 Study and analysis on parallel frequency acquisition algorithm of CompassCHEN Wei⁃qiang, SU Kai⁃xiong(Institute of Physics and Information Engineering, Fuzhou University, Fuzhou 350002,China)Abstract: The principle of parallel frequency acquisition is analyzed with Compass⁃2 satellite signal acquisition algorithm of FFT parallel frequency search. The designed acquisition model was simulated with Matlab. The influence of the different parameter settings of FFT spot number,sub⁃correlator number and tapping winning on acquisition speed, frequency search range and sensitivity performance were obtained by comparison and analysis. The balance of resource consumption and performance were considered in the actual design. The FPGA implementation scheme of the improved acquire system is given in this paper. Structure of the traditional correlator was improved, in which the multiple sub⁃correlators are simulated with the subsection integral mode of a same correlator to reduce the spending of hardware resource and improve the efficiency of the correlator.Keywords: Compass; acquisition system; FFT; parallel frequency searching0 引言由于卫星和接收机存在相对运动,接收机收到的卫星信号中会有一个多普勒频率偏移量。

数字中频GPS信号的MATLAB仿真

数字中频GPS信号的MATLAB仿真

数字中频GPS信号的MATLAB仿真1杨勇,陈偲,王可东北京航空航天大学宇航学院,北京 (100083)E-mail:wangkd@摘要:文章以INS/GPS紧耦合为应用对象,在分析中频GPS信号结构的基础上,根据实际环境和载体运行状态,给出GPS信号延时、多普勒频移和钟差等参数,并应用中频信号解析表达式实现多颗卫星信号的合成。

最后,基于MATLAB语言进行了仿真计算,仿真结果表明信号符合实际情况,同时经过软件接收机的捕获、跟踪和解调计算,验证了信号的正确性。

关键词:GPS;高动态;紧耦合;中频;信号模拟器中图分类号:TP3911.引言随着固体弹道导弹射程的不断增加和打击精度的要求提高,纯惯性导航早已不能够满足要求。

全球定位系统(GPS)和惯性系统(INS)相结合是复合制导的重要发展方向之一,而对于GPS/INS组合导航来说,为了缩短研制周期,便于新信号开发及测试,软件信号模拟器和接收机的研究成为重要的研究方向之一。

GPS技术成长非常迅速,现在市场上的手持式GPS接收机已相当普遍,但是国内的自主知识产权的GPS技术产品的研发仍然比较薄弱,尤其是核心芯片的知识产权很少被国内所拥有。

国内的“北斗”、“GALILEO”导航定位都处在发展之中,信号模拟器的研究被越来越多的被重视。

信号模拟器具有成本低、可重复性好、数据完整等优点,不仅能用于组合导航技术研究,也能为新信号的验证研究提供支持,还可以为硬件接收机的接收性能测试提供有效的信号环境模拟。

GPS信号模拟器是软件无线电研究的一个方面,为处于设计阶段的GPS接收机提供仿真环境。

常见的GPS信号生成器产生的是射频信号,而目前接收机的设计重点侧重于基带信号处理,也就是本文中提到的数字中频GPS信号。

数字中频GPS信号模拟器目前主要是仿真载体运动、模拟时钟偏差、卫星星钟误差、电离层误差、对流层误差、多路经效应、天线的方向、弹体振动、以及云层、雷雨等实际环境对GPS信号的影响,并对接收机前端的下变频、滤波、采样和自动增益控制进行仿真,直到生成GPS接收机信号处理所需的数字信号。

基于MatLabSimulink的GPS系统仿真

基于MatLabSimulink的GPS系统仿真

(2) 我
δS = S − S 0 = δS d + δS w
引入的相位延迟为
δφ d =
(6)
们 在 仿 真 中 不 妨 采 用 一 9 位 LFSR
生成多项式为
其中 Tk 为绝对温度 P 为大气压(mbar) e0 为水汽风压(mbar) S 为实际传播路径 S0 为信号在真空中的传播路径 hs 为 90o 20o 15o 10o 5o 时 δS 的典型值分别为 2.51m 7.29 m 9.58 m 14.04 m 25.82 m 无线信道由于多径效应产生时延扩展 若收发信机处
k =1
N
ˆ(t) x
航电文经伪随机序列扩频并调制后的信号
则 L1 和 L2 载
N
波上的 GPS 信号可分别简单的建模为 S L1 (t ) = AP Pi (t )Wi (t )Di (t ) cos(w1t + ϕ1 ) + AC Ci (t )Di (t ) sin(w1t + ϕ1 )
S L 2 (t ) = B P Pi (t )W i (t ) D i (t ) cos( w 2 t + ϕ 2 )
• 1857 •
第 18 卷第 7 期 2006 年 7 月
系 统 仿 真 学 报 其中 hs 为 GPS 卫星相对观测站的高度角
11 12
Vol. 18 No. 7 July, 2006
组成 生成多项式分别为
X 1A ( x) = 1 + x + x + x + x
6 8
δS d = 1.552 × 10 − 5
[1]
ˆ (t ) − rq (t ) x ˆ (t ) 们采用 Jake 移动信道模型[7] y (t ) = ri (t ) x

自动实验一——典型环节的MATLAB仿真报告

自动实验一——典型环节的MATLAB仿真报告

自动实验一——典型环节的MATLAB仿真报告引言:典型环节的MATLAB仿真是一种常见的模拟实验方法,通过使用MATLAB软件进行建模和仿真,可以有效地研究和分析各种复杂的物理系统和控制系统。

本报告将介绍一个典型环节的MATLAB仿真实验,包括实验目的、实验原理、实验步骤、实验结果和讨论等内容。

一、实验目的本实验旨在通过MATLAB仿真实验,研究和分析一个典型环节的动态特性,深入了解其响应规律和控制方法,为实际系统的设计和优化提供理论支持。

二、实验原理典型环节是控制系统中的重要组成部分,一般包括惯性环节、惯性耦合和纯滞后等。

在本实验中,我们将重点研究一个惯性环节。

惯性环节是一种常见的动态系统,其特点是系统具有自身的动态惯性,对输入信号的响应具有一定的滞后效应,并且在输入信号发生变化时有一定的惯性。

三、实验步骤1.建立典型环节的数学模型。

根据实际情况,我们可以选择不同的数学模型描述典型环节的动态特性。

在本实验中,我们选择使用一阶惯性环节的传递函数模型进行仿真。

2.编写MATLAB程序进行仿真。

利用MATLAB软件的控制系统工具箱,我们可以方便地建立惯性环节的模型,并利用系统仿真和分析工具进行仿真实验和结果分析。

3.进行仿真实验。

选择合适的输入信号和参数设置,进行仿真实验,并记录仿真结果。

4.分析实验结果。

根据仿真结果,可以分析典型环节的动态响应特性,比较不同输入信号和控制方法对系统响应的影响。

四、实验结果和讨论通过以上步骤,我们成功地完成了典型环节的MATLAB仿真实验,并获得了仿真结果。

通过对仿真结果的分析,我们可以得到以下结论:1.惯性环节的响应规律。

惯性环节的响应具有一定的滞后效应,并且对输入信号的变化具有一定的惯性。

随着输入信号的变化速度增加,惯性环节的响应时间呈指数级减小。

2.稳态误差与控制增益的关系。

控制增益对稳态误差有重要影响,适当调整控制增益可以减小稳态误差。

3.不同输入信号的影响。

如何使用Matlab进行卫星导航与定位

如何使用Matlab进行卫星导航与定位

如何使用Matlab进行卫星导航与定位卫星导航与定位是一门广泛应用于航空、航海、地理信息系统等领域的技术。

在这个时代,人们越来越依赖全球定位系统(GPS)来获取准确的位置信息。

而Matlab作为一种功能强大的数学软件工具,可以帮助我们进行卫星导航与定位的模拟和算法设计。

本文将介绍如何使用Matlab进行卫星导航与定位的相关内容。

在开始之前,我们需要明确一些基础知识。

首先,我们需要了解GPS工作的原理。

GPS系统主要由卫星、地面控制站和接收器三部分组成。

卫星发送信号,接收器接收并计算信号传播的时间差来确定位置。

其次,我们需要了解GPS的信号类型。

GPS信号包括C/A码和P码两种类型,其中C/A码用于民用接收器,P码用于军用接收器。

最后,我们需要了解GPS的误差来源。

GPS的定位误差主要来自多普勒效应、大气延迟、钟差等因素。

使用Matlab进行卫星导航与定位需要用到一些特定的工具和函数。

首先,我们需要导入相应的工具箱。

Matlab提供了GPS工具箱和导航工具箱,可以帮助我们进行相关的计算和模拟。

在导入工具箱之后,我们可以使用相关函数进行卫星导航与定位的模拟和计算。

例如,可以使用gpscoordinates函数来计算卫星的位置信息,使用gps2utc函数来进行时间转换等。

在进行卫星导航与定位的模拟和计算之前,我们需要准备相关的数据。

首先,我们需要获取卫星的星历数据。

星历数据包括卫星的位置、速度和加速度等信息,可以帮助我们计算卫星的轨道和位置。

其次,我们需要获取接收器的观测数据。

观测数据包括接收器接收到的信号的时间和信号的强度等信息,可以帮助我们计算信号传播的时间差和定位误差。

最后,我们需要获取地球的几何形状数据。

地球的几何形状数据包括地球的椭球体参数和地球的地理坐标系等信息,可以帮助我们进行地球坐标和地理位置的转换。

在得到所需的数据之后,我们就可以开始使用Matlab进行卫星导航与定位的模拟和计算了。

基于MATLAB的GPS信号仿真完整源代码123.doc

基于MATLAB的GPS信号仿真完整源代码123.doc

配套毕业设计论文见百度文库请搜索《基于MATLAB的GPS信号仿真123》附录C 仿真程序代码1、数据码的产生function datacode=data(x)y=rand(1,x);for i=1:xif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendy(1)=0;show2(1)=datacode(1);q=2;for i=1:length(datacode)for j=1:100y(q)=i-1+j*0.01;show2(q)=datacode(i);q=q+1;endendplot(y,show2);axis([0 length(datacode) -0.2 1.2]);1、C/A码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);number=input('请输入卫星PRN号码:number=');cacode=CAgenerate(number);temp=cacode(1:100)x(1)=0;show(1)=temp(1);p=2;%下面的循环是为了将结果显示成方波形式 for i=1:length(temp)for j=1:100x(p)=i-1+j*0.01;show(p)=temp(i);p=p+1;endend%画出仿真结果图subplot(4,1,2);plot(x,show);title('C/A码');axis([0 100 -0.2 1.2]);%截取CA码的前十个数据进行扩频,每个数据插入5个CA序列cacode1=cacode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),cacode1(addr));endend%下面的循环是为了将结果显示成方波形式x(1)=0;show(1)=kuopindata(1);p=2;for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave];for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);plot(GPSsignal(1:500));title('调制后数据');C/A码产生的子程序CAgenerate:function cacode=CAgenerate(number)if (number<1)|(number>37)disp('输入参数必须在1 ~ 37之间取值');returnendCACode=zeros(1,1023); %生成一个1*1023的零矩阵% 设置寄存器初相Reg1=[1,1,1,1,1,1,1,1,1,1];Reg2=[1,1,1,1,1,1,1,1,1,1];% 设置反馈点,1表示需要反馈gp1=[0,0,1,0,0,0,0,0,0,1];gp2=[0,1,1,0,0,1,0,1,1,1];% 抽头G2Table=[ 2,3,4,5,1,2,1,2,3,2,3,5,6,7,8,9,1,2,3,4,5,6,1,4,5,6,7,8,1,2,3,4,5,4,1,2,4;6,7,8,9,9,10,3,4,6,7,8,9,10,4,5,6,7,8,9,3,6,7,8,9,10,6,7,8,9,10,10,7,8,10;]% 生成一个周期的伪码序列for m=1:1023CACode(m)=mod(Reg1(10)+Reg2(G2Table(1,number))+Reg2(G2Table(2,number)),2); Reg1=[mod(Reg1*gp1',2),Reg1(1:9)];Reg2=[mod(Reg2*gp2',2),Reg2(1:9)];endcacode=CACode;2、C/A码的相关性分析clc;n=input('请输入卫星PRN号码:n=');cacode1=CAgenerate(n);%在G2序列中找出-1并转换为0,找出1并转换为1ind1=find(cacode1==1);ind2=find(cacode1==0);cacode1(ind1)=-ones(1,length(ind1));cacode1(ind2)=ones(1,length(ind2));N=1023;z=zeros(1,1023);for i=0:N-1for k=i+1:N-1z1(k)=cacode1(k)*cacode1(k-i); z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/N;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 1300 -0.5 1.2]);n=input('请输入卫星PRN号码:n='); cacode2=CAgenerate(n);ind1=find(cacode2==1);ind2=find(cacode2==0);cacode2(ind1)=-ones(1,length(ind1)); cacode2(ind2)=ones(1,length(ind2)); N=1023;h=zeros(1,1023);for i=0:N-1for k=i+1:N-1h1(k)=cacode1(k)*cacode2(k-i); h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/N;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 1300 -0.5 1]);4、 P码的产生及扩频调制clc;c=input('请输入数据码的长度:c=');y=rand(1,c);for i=1:cif y(i)<0.5datacode(i)=0;elsedatacode(i)=1;endendx(1)=0;show(1)=datacode(1);p=2;for i=1:cfor j=1:100x(p)=i-1+j*0.01;show(p)=datacode(i);p=p+1;endendsubplot(4,1,1);plot(x,show);title('数据码');axis([0 c -0.2 1.2]);NumberPCode=input('enter the NumberPcode='); NumberShift=input('enter the NumberShift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift);x(1)=0;show(1)=pcode(1);p=2;for i=1:length(pcode)for j=1:100x(p)=i-1+j*0.01;show(p)=pcode(i);p=p+1;endendsubplot(4,1,2);plot(x,show);title('P码');axis([0 length(pcode) -0.2 1.2]);pcode=pcode(1:10);for i=1:cif datacode(i)==1datacodek((i-1)*50+1:i*50)=ones(1,50);elsedatacodek((i-1)*50+1:i*50)=zeros(1,50);endendfor i=1:cfor j=1:50addr=rem(((i-1)*50+j),10);if addr==0addr=10;endkuopindata((i-1)*50+j)=xor(datacodek((i-1)*50+j),pcode(addr));endendx(1)=0;show(1)=kuopindata(1);p=2;%下面的循环是为了将结果显示成方波形式for i=1:length(kuopindata)for j=1:100x(p)=i-1+j*0.01;show(p)=kuopindata(i);p=p+1;endendsubplot(4,1,3);plot(x,show);title('扩频数据');axis([0 length(kuopindata) -0.2 1.2]);%每位数据通过正弦波来调制Sinwave=sin([0:2*pi/8:2*pi*7/8]);Sinwave=single(Sinwave);GPSsignal=zeros(1,1);Sinwave=[Sinwave Sinwave Sinwave Sinwave Sinwave]; for i=1:length(kuopindata)GPSsignal=[GPSsignal kuopindata(i)*Sinwave];endGPSsignal=GPSsignal(2:length(GPSsignal));subplot(4,1,4);title('调制后数据');plot(GPSsignal(1:500));以下是P码产生的子程序Pcode:function pcode=Pcode(a,NumberPCode,NumberShift) % P码产生reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1a=0;rx1b=0;rx2a=0;rx2b=0;x1bWork=1;x2aWork=1;x2bWork=1;N=NumberShift;C1=4092*3750;C2=4093*3749;z1a=mod(N,4092);%取余数x1a=mod([(N-z1a)/4092],3750);y1a=(N-z1a-4092*x1a)/C1;if ((N-C1*y1a)>=C2)z1b=4092;x1bWork=0;x1b=3748;elsez1b=mod((N-C1*y1a),4093);x1bWork=1;x1b=(N-z1b-C1*y1a)/4093;endm=mod(N,(C1+37));y2a=(N-m)/(C1+37);if (m>=C1)dv=m-C1;elsedv=0;endz2a=mod((m-dv),4092);x2a=mod((((m-dv)-z2a)/4092),3750);z2b=mod((m-dv),4093);if (m>=C2)x2b=3748;elsex2b=(m-z2b)/4093;end%各移位寄存器的状态for i=1:z1aslave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)= reg1a(1:11);reg1a(1)=slave1a;endfor i=1:z1bslave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+ reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;endfor i=1:z2aslave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10) +reg2a(11+reg2a(12)) ,2);reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;endfor i=1:z2bslave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;end%各控制变量的判断if z1a==4091rx1a=1;endif z1b==4092rx1b==1;endif z2a==4091rx2a=1;x2aWork=0;endif z2b==4092rx2b=1;x2bWork=0;end%开始产生P码p=zeros(NumberPCode,1);x1acou=0;x1bcou=0;x2acou=0;x2bcou=0;cou37=dv;x2(1:a)=1;for i=1:(NumberPCode+37)x1(i)=mod( reg1a(12)+reg1b(12),2);x2(i+a)=mod( reg2a(12)+reg2b(12),2);%寄存器x1b的移位函数if x1bWork==1if rx1b==0slave1b=mod(reg1b(1)+reg1b(2)+reg1b(5)+reg1b(8)+reg1b(9)+reg1b(10)+reg1b(11)+reg1b(12),2);reg1b(2:12)=reg1b(1:11);reg1b(1)=slave1b;else if rx1b==1reg1b=[0 0 1 0 1 0 1 0 1 0 1 0];rx1b=0;endendelse if x1bWork==0endendif reg1b==[0 1 0 1 0 1 0 1 0 1 0 0 ]rx1b=1;x1bcou=x1bcou+1;if x1bcou==3749x1bwork=0;x1bcou=0;endend%寄存器x1a的移位函数if rx1a==0slave1a=mod(reg1a(6)+reg1a(8)+reg1a(11)+reg1a(12),2);reg1a(2:12)=reg1a(1:11);reg1a(1)=slave1a;else if rx1a==1reg1a=[0 0 0 1 0 0 1 0 0 1 0 0];rx1a=0;endendif reg1a==[0 0 1 0 0 1 0 0 1 0 0 0]rx1a=1;x1acou=x1acou+1;if x1acou==3750x1bwork=1;x1acou=0;endend%寄存器x2b的移位函数if x2bWork==1if rx2b==0slave2b=mod(reg2b(2)+reg2b(3)+reg2b(4)+reg2b(8)+reg2b(9)+reg2b(12) ,2); reg2b(2:12)=reg2b(1:11);reg2b(1)=slave2b;else if rx2b==1x2bout=reg2b(11);reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];rx2b=0;endendelse if x2bWork==0reg2b=[0 0 1 0 1 0 1 0 1 0 1 0];x2bWork=1;rx2b=0;endendif reg2b==[0 1 0 1 0 1 0 1 0 1 0 0]rx2b=1;x2bcou=x2bcou+1;if x2bcou==3749x2bWork=0;x2bcou=0;endend%寄存器x2a的移位函数if x2aWork==1if rx2a==0slave2a=mod(reg2a(1)+reg2a(3)+reg2a(4)+reg2a(5)+reg2a(7)+reg2a(8)+reg2a(9)+reg2a(10)+reg2a(11)+reg2a(12) ,2); reg2a(2:12)=reg2a(1:11);reg2a(1)=slave2a;else if rx2a==1reg2a=[1 0 1 0 0 1 0 0 1 0 0 1];rx2a=0;endendelse if x2aWork==0if rx2a==1cou37=cou37+1;if cou37==37rx2a=0;x2awork=1;cou37=0;endendendendif reg2a==[0 1 0 0 1 0 0 1 0 0 1 1]rx2a=1;x2acou=x2acou+1;if x2acou==3750x2awork=0;x2acou=0;endendendfor i=1:NumberPCodep(i)= mod( x1(i)+x2(i),2);endp=p';pcode=p';5、 P码的相关性分析clc;NumberPCode=input('enter the number Pcode='); NumberShift=input('enter the numbershift=');a=input('enter a=');pcode=Pcode(a,NumberPCode,NumberShift); ind1=find(pcode==1);ind2=find(pcode==0);pcode(ind1)=-ones(1,length(ind1));pcode(ind2)=ones(1,length(ind2));M=NumberPCode;z=zeros(1,M);for i=0:M-1for k=i+1:M-1z1(k)=pcode(k)*pcode(k-i);z(i+1)=z(i+1)+z1(k);endz(i+1)=z(i+1)/M;endsubplot(2,1,1);plot(z);title('自相关特性');axis([-50 M -0.5 1.2]);a=input('enter a=');NumberShift=input('enter the numbershift='); pcode2=Pcode(a,NumberPCode,NumberShift); h=zeros(1,M);for i=0:M-1for k=i+1:M-1h1(k)=pcode(k)*pcode2(k-i);h(i+1)=h(i+1)+h1(k);endh(i+1)=h(i+1)/M;endsubplot(2,1,2);plot(h);title('互相关特性');axis([-50 M -0.5 1]);。

GPS信号捕获

GPS信号捕获

GPS课程设计实验报告(2)学院姓名LSC班级学号指导教员一、试验名称:GPS信号捕获二、试验目的:1. 熟悉GPS信号捕获基本概念;2. 掌握串行搜索算法、并行频率搜索算法和并行码相位搜索捕获算法的基本思想、特点及算法流程;3. 训练在实际当中分析问题、解决问题的能力。

三、试验内容1. 编写GPS信号捕获子程序,算法自选。

f的多普勒频移,2. 将实验一最终生成的信号延迟 时间,并加上大小为D使用以上编写的信号捕获子程序对该信号进行捕获。

3. 画出三维捕获结果图(要求至少画出两幅,一幅对应信号成功捕获,一幅对应未捕获到信号)。

四、试验原理4.1 概述为了跟踪和解码GPS信号, 首先要捕获到GPS信号。

将捕获到的GPS信号的必要参数立刻传递给跟踪过程,再通过跟踪过程便可得到卫星的导航电文。

GPS卫星处于高速运动中,因此,其频率会产生多普勒频移。

为覆盖高速卫星预期中的所有多普勒频率范围,捕获方法覆盖的频率范围必须在±10 kHz之内。

针对某个特定的卫星信号,捕获过程就是要找到C/A码的起始点,并利用找到的起始点展开C/A码频谱,一旦复现了C/A码的频谱,输出信号将变成连续波(Continuous Wave,CW),于是便得到其载波频率。

也就是说,捕获过程就是要获得输入信号的C/A码的起始点和载波频率,然后传递给跟踪过程。

4.2 卫星信号捕获的考虑4.2.1 捕获时的最大电文长度C/A码长1 ms,那么至少要用1ms的电文来捕获,甚至只用1 ms的电文来捕获时,都可能发生导航电文相位偏移。

因此,为了保证捕获电文中不含有数据偏移,需要用两组连续的电文来捕获,这个电文最大长度是10 ms。

如果使用两组连续的10 ms电文来捕获,就保证了在某一组电文中不含相位偏移。

限制电文长度的第二个因素是C/A码的多普勒效应。

4.2.2 捕获中的频率步长捕获时的另一个考虑因素是捕获中剥离载波所需的频率。

步进频率的大小与捕获中的电文长度紧密相关。

matlab 仿真实验报告

matlab 仿真实验报告

matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。

通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。

Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。

本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。

实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。

而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。

为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。

实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。

实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。

根据实际情况,我选择了常见的高斯信道模型作为仿真对象。

通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。

2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。

在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。

通过调整不同的调制参数,我可以模拟不同的传输效果。

3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。

通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。

4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。

通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。

5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。

通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。

实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。

首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。

matlab与通信仿真实验报告

matlab与通信仿真实验报告

matlab与通信仿真实验报告《Matlab与通信仿真实验报告》摘要:本实验报告通过使用Matlab软件进行通信仿真实验,对通信系统的性能进行了评估和分析。

首先介绍了通信系统的基本原理和模型,然后利用Matlab软件搭建了通信系统的仿真模型,并进行了实验验证。

通过实验结果的分析,得出了通信系统的性能指标,为通信系统的设计和优化提供了重要参考。

一、引言通信系统是现代信息社会中不可或缺的基础设施,它承载着各种类型的信息传输和交换。

通信系统的性能直接影响着信息传输的质量和效率,因此对通信系统的性能评估和分析具有重要意义。

Matlab软件是一种功能强大的科学计算软件,它提供了丰富的工具和函数库,可以用于通信系统的建模、仿真和分析。

本实验报告将利用Matlab软件进行通信系统的仿真实验,对通信系统的性能进行评估和分析。

二、通信系统的基本原理和模型通信系统由发送端、信道和接收端组成,发送端将信息转换成电信号发送出去,经过信道传输后,接收端将电信号转换成信息。

通信系统的性能评估主要包括信号传输质量、误码率、信噪比等指标。

在本实验中,我们将以常见的调制解调技术为例,建立通信系统的仿真模型。

三、Matlab软件在通信系统仿真中的应用Matlab软件提供了丰富的工具和函数库,可以用于通信系统的建模、仿真和分析。

在本实验中,我们将利用Matlab软件搭建通信系统的仿真模型,包括信号调制、信道传输、信号解调等过程。

通过Matlab软件的仿真实验,我们可以得到通信系统的性能指标,如误码率、信噪比等。

四、实验结果分析通过Matlab软件进行通信系统的仿真实验,我们得到了一系列实验结果。

通过对实验结果的分析,我们可以评估通信系统的性能,比如误码率随信噪比的变化规律、不同调制方式的性能比较等。

这些实验结果对于通信系统的设计和优化具有重要的参考价值。

五、结论本实验报告利用Matlab软件进行通信系统的仿真实验,对通信系统的性能进行了评估和分析。

基于MATLAB的GPS信号的仿真

基于MATLAB的GPS信号的仿真

摘要扩频通信是近几年来迅速发展起来的一种通信技术。

在早期研究这种技术的主要目的是为提高军事通信的保密和抗干扰性能,因此这种技术的开发和应用一直是处于保密状态。

扩频技术在军事应用上的最成功范例可以以美国和俄国的全球定位系统(GPS和GLONASS)为代表;在民用上GPS和GLONASS也都得到了广泛的应用,这些系统的基础就是扩频技术。

全球定位系统(GPS)用于对全球的民用及军用飞机、舰船、人员、车辆等提供实时导航定位服务。

GPS系统采用典型的CDMA体制,这种扩频调制信号具有低截获概率特性。

该系统主要利用直接序列扩频调制技术,采用的伪码有C/A码和P(Y)码两种。

本文讲述的是直接序列扩频通信技术在全球定位系统(GPS)中的应用。

主要介绍扩频通信中的伪码仿真,简要论述M序列和伪随机噪声码(P码和C/A码)及其产生,并使用MATLAB7.0仿真M序列、P码和C/A码的编码过程和仿真结果,介绍直扩频技术伪码的相关知识,重点介绍P码。

关键字:全球定位系统;直接扩频通信;伪码仿真AbstractSpread spectrum communication is a communications technology developed rapidly in recent years. In early studies the main purpose of this technology is to improve the military communications confidential and anti-jamming performance, therefore the development and application of this technology is always in secret state. Spread spectrum technology in the most successful military application examples are the United States and Russia could the global positioning system (GPS and GLONASS) for representative; In civil GPS and GLONASS also have been widely used,which foundation of system is the spread spectrum technology.Global positioning system (GPS) is used to provide real-time navigation and positioning services for global civil and military aircraft, ships, personnel, vehicles and so on. GPS system adopts the typical CDMA system, which kind of spread spectrummodulation signals have low intercept probability characteristic. This system mainly used the direct sequence spread spectrum modulation technology, using the PRN code including C/A code, P codes and Y codes.This article tells the direct sequence spread spectrum communication technology applied in global positioning system (GPS) .The article mainly introduces the pn code spread spectrum communication simulation, briefly discussing M sequence and pseudo random noise code (P yards and C/A yards) and its produce and use MATLAB7.0 simulate M series, P yards and C/A yards of encoding process and the simulation results, introducing pn code straight spread-spectrum technology knowledge, especially P yards.Key: GPS; DS-SS;Pn code simulation目录引言 (4)1GPS理论及其特性 (5)1.1GPS系统概述 (5)1.2GPS信号构成 (7)1.2.1M序列 (10)1.2.2C/A码 (13)1.2.3P码 (15)1.3小结 (20)2MATLAB软件 (21)2.1MATLAB软件简介 (21)2.2MATLAB应用概述 (22)2.2.1 MATLAB功能介绍 (22)2.2.2 MATLAB使用方法 (24)3 GPS卫星导航信号算法及其MATLAB仿真 (31)3.1 C/A码仿真代码及其仿真结果 (31)3.2 P码的仿真代码及其仿真结果 (34)3.3 结果分析及其相关性分析 (38)结论 (39)致谢 (40)参考文献 (41)附录A 英文原文 .................................................................................................. 错误!未定义书签。

本科毕业论文北斗卫星信号快速捕获方法研究汇总

本科毕业论文北斗卫星信号快速捕获方法研究汇总

太原理工大学现代科技学院毕业设计(论文)设计(论文)题目:北斗卫星信号快速捕获方法研究学生:专业:测控技术与仪器班级:10-1指导教师:设计日期:2014年6月16日北斗卫星信号快速捕获方法研究摘要卫星信号捕获与跟踪是北斗全球导航卫星定位系统的重要组成部分,而快速捕获性能是影响卫星导航定位速度的重要因素。

北斗卫星导航定位系统可以为中国以及周边地区提供卫星导航及定位服务,促进卫星导航产业发展,满足用户交换信息的需求。

在北斗卫星导航定位系统中,如何快速捕获卫星信号,跟踪卫星信号是一件非常有难度的事情。

本课题研究与实现的内容是卫星导航定位中最重要的技术之一:微弱卫星信号快速捕获技术。

本文首先阐述了卫星导航定位系统的信号编码模型,并对二次编码技术进行了分析,包括其分类、产生方式、相关性、作用、设计准则。

然后本文介绍了现有微弱信号快速捕获算法研究,主要是串行捕获算法。

本文介绍了串行捕获算法的原理,并给出了原理框图,并分析了其性能。

串行捕获易于实现,但捕获时间很长。

最后,本文介绍了基于FFT并行捕获算法,包括其算法原理、实现方法、使用环境以及优缺点。

并对FFT并行捕获算法进行了仿真,分析了算法的性能,提出了改进方向。

关键词:全球定位系统,快速捕获,二次编码,卫星信号THE RESEARCH OF BEIDOU SATELLITE SIGNAL FAST ACQUISITION AND TRACKING TECHNOLOGY BASED ON SECONDARY CODINGABSTRACTSatellite signal acquisition and tracking is an important part of the Beidou global navigation satellite system, and the performance of fast acquisition the important factors that affect satellite navigation and positioning speeds. Beidou satellite navigation and positioning system can provide satellite navigation and positioning services to China and the surrounding areas, promote the development of the satellite navigation industry, meet the needs of users to exchange information. The Beidou satellite navigation and positioning system, how to fast acquisition the satellite signal and tracking satellite signals is a very difficult thing. The research and implementation is one of the most important technologies of satellite navigation and positioning: Fast acquisition weak satellite signal tracking technology.First, describes the signal encoding model of satellite navigationand positioning system, and analysis of the Secondary Coding,including classification, generation method, correlation, function, design guidelines.This article describes the weak signal fast acquisition algorithm of existing, serial acquisition algorithm. Introduces the principle of serial acquisition algorithm, schematics, analysis of the performance. Serial capture easy to implement, but to capture a very long time.Finally, Introduction parallel FFT acquisition algorithm, including the algorithm principle, implementation methods, use of the environment and the advantages and disadvantages. Implemented Parallel FFT acquisition algorithm simulation, analysis of the performance of the algorithm, suggestions for improvement.KEY WORDS: The Global Positioning System, Fast Acquisition, Secondary Coding, Satellite Signals目录摘要 (II)ABSTRACT (II)第一章绪论 (1)1.1 研究背景和意义 (1)第二章卫星导航系统的信号编码模型与二次编码分析 (4)2.1 卫星导航系统的信号编码模型 (4)2.1.1 卫星信号产生原理与特性 (4)2.1.2 卫星信号结构 (7)2.1.3 卫星信号的调制解调 (8)2.1.4 卫星信号导航电文 (9)2.2 二次编码分析 (10)2.2.1 二次编码概述 (10)2.2.2 二次编码的作用 (10)2.2.3 二次编码设计准则 (11)2.3 本章小结 (11)第三章基于FFT并行捕获算法研究 (13)3.1 捕获方法分析 (13)3.1.1 串行捕获算法 (14)3.1.2 并行捕获算法 (14)3.1.3 FFT捕获算法 (15)3.1.4 并行FFT快速捕获算法总结 (16)3.2 算法的选择 (16)3.2.1 滑动相关捕获方法 (16)3.2.2 基于FFT的并行捕获算法 (18)3.2.3 算法性能比较 (20)3.2.4 复杂性分析 (21)3.3 基于FFT快速捕获 (22)3.3.1 基于FFT快速捕获的多通道信号捕获流程 (23)3.4 本章小结 (25)第四章改进的捕获算法 (26)4.1 传统基于FFT的并行捕获算法 (26)4.2 改进的基于FFT的快速并行捕获算法 (28)4.2.1 捕获算法基本原理 (28)4.2.2 捕获算法的计算量分析 (30)4.2.3 基于内插的精细捕获算法 (30)4.3 本章小结 (31)第五章结论 (32)参考文献 (34)附录外文资料及译文 (38)致谢 (56)第一章绪论1.1 研究背景和意义全球导航卫星系统(Global Navigation Satellite System, GNSS)是为了打破美国的 GPS 在卫星定位、导航、授时方面的垄断,由欧盟提出的一种综合星座系统,是所有在轨工作的导航卫星系统的统称。

北斗B3I信号捕获方法的研究与实现

北斗B3I信号捕获方法的研究与实现

第38卷第6期 计算机应用与软件Vol 38No.62021年6月 ComputerApplicationsandSoftwareJun.2021北斗B3I信号捕获方法的研究与实现沈周锋(漳州职业技术学院电子工程学院 福建漳州363000)收稿日期:2019-10-16。

福建省中青年教师教育科研项目(JAT191401)。

沈周锋,讲师,主研领域:电子测量技术,通信技术。

摘 要 针对北斗导航系统B3I频段信号捕获计算量大、速度慢的难题,提出具有码相位检测和频偏估计的自适应捕获方法。

利用本地伪码检测接收序列码相位,采用扫频方法进行频偏估计。

扫频过程中自适应改变本地伪码编号,累加时长和扫频步长,从而帮助终端优先捕获信噪比高的卫星信号。

理论分析和仿真表明,该方法在信噪比大于-25dB时只需7次扫频即可达到100%的捕获概率。

信噪比在-40dB至-25dB之间时,累加时长自适应增大,捕获概率仍然维持在100%。

总之,该算法总是以最小计算量尝试捕获质量最优信号,恶劣环境下仍能可靠捕获,符合导航终端信号搜索要求。

关键词 信号捕获 同步 北斗导航系统 B3I信号中图分类号 TP393 TN967.1 文献标志码 A DOI:10.3969/j.issn.1000 386x.2021.06.018RESEARCHANDIMPLEMENTATIONOFBDSB3ISIGNALACQUISITIONMETHODShenZhoufeng(ElectronicEngineeringDepartment,ZhangzhouInstituteofTechnology,Zhangzhou363000,Fujian,China)Abstract FortheproblemsoflargeamountofcalculationandlowspeedofsignalacquisitioninB3IbandofBDS,anadaptiveacquisitionmethodwithcodephasedetectionandfrequencyoffsetestimationisproposed.Localpseudo codewasusedtodetectthephaseofreceivedsequencecode,andthenfrequencyoffsetwasestimatedbyscanningfrequencymethod.Inthescanningprocess,thenumberoflocalpseudo code,thecumulativetimeandthescanningsteplengthwereadaptivelychangedtohelptheterminaltocapturethesatellitesignalwithhighsignal to noiseratiofirst.Thetheoreticalanalysisandsimulationshowthatacquisitionprobabilityofthismethodcanreach100%withonly7sweepswhenthesignal to noiseratioisgreaterthan-25dB.WhentheSNRisbetween-40dBand-25dB,thecumulativetimeincreasesadaptively,andtheacquisitionprobabilityremainsat100%.Inaword,thisalgorithmalwaystriestocapturethebestqualitysignalwiththeleastamountofcomputation,anditcanstillbereliablycapturedinharshenvironment,whichmeetstherequirementsofnavigationterminalsignalsearch.Keywords Signalacquisition Synchronization BDS B3Isignal0 引 言北斗导航系统(BeiDouNavigationSatelliteSys tem,BDS)是我国着眼于国家安全和经济发展需要,自主建设、独立研发的导航系统。

matlab信号处理——算法、仿真与实现

matlab信号处理——算法、仿真与实现

matlab信号处理——算法、仿真与实现MATLAB信号处理是一种广泛应用于各种工程领域的计算机语言和软件环境,其核心理念是用数字信号来处理实际的物理信号,使其在控制、通信、生物医学、天文学等应用中得到应用。

本文将简要介绍MATLAB信号处理的算法、仿真和实现。

算法:MATLAB信号处理的算法通常由两个主要部分组成:滤波和谱分析。

滤波是一种数字信号处理技术,可以从信号中过滤出所需的频率范围内的成分。

同时,还可以去除噪声和干扰信号,让信号更加清晰。

谱分析是一种用于检测信号频率组成的技术,可以将信号中不同频率的成分分解出来,并显示其功率谱和频率谱等分析结果。

MATLAB的信号处理工具箱中,有着很多种滤波和谱分析算法,比如数字滤波器设计、窗函数处理、FFT、STFT等等。

具体使用哪种算法,取决于所要处理的信号的特殊需要和噪声干扰的情况。

仿真:MATLAB信号处理提供了一种方便快捷的方式,将设计的算法模拟成一个完整的信号处理系统,以有效的验证其功能和正确性。

MATLAB的仿真工具包括仿真模型设计、数据可视化、参数调整等等,并可以集成其他MATLAB工具箱中的算法,如图像处理、统计分析等。

钟形图、波形图、频谱图等类型的可视化功能,让仿真数据的输出更加直观明了,以及可以快速检验算法和调整参数。

实现:MATLAB信号处理是通过在计算机中实现信号处理算法来实现的。

实现的具体方式,即设计一个MATLAB程序,将处理算法编写成代码并运行。

程序可以接受实时或离线信号,并对其进行处理和分析。

MATLAB的实现方式具有非常高的灵活性和可定制性,可以满足各种不同应用场景的需要。

总之,MATLAB信号处理可以通过对算法的选择、仿真的建模和实现的编写来完成,进而用于控制、通信、生物医学、天文学等各种应用中。

适用于北斗GNSS-R接收机的反射信号捕获算法

适用于北斗GNSS-R接收机的反射信号捕获算法

适用于北斗GNSS-R接收机的反射信号捕获算法
杨锐;黄海生;李鑫;曹新亮
【期刊名称】《电子技术应用》
【年(卷),期】2018(044)008
【摘要】针对北斗反射信号捕获难度大问题,提出一种适用于北斗GNSS-R接收机中反射信号的捕获算法.该算法利用直射信号中的导航数据剥离掉反射信号中的导航数据,并通过周期累加运算和FFT相关,改进了传统的反射信号捕获算法.算法可以降低长时间相干积分的运算量,提高算法捕获速率.对新算法进行了MATLAB仿真,并与传统的捕获算法(相干非相干算法、差分相干算法)做了比较,仿真结果表明,该算法在捕获性能上明显优于传统的相干非相干与差分相干捕获算法.
【总页数】5页(P118-121,125)
【作者】杨锐;黄海生;李鑫;曹新亮
【作者单位】西安邮电大学电子工程学院,陕西西安710121;西安邮电大学电子工程学院,陕西西安710121;西安邮电大学电子工程学院,陕西西安710121;延安大学物理学与电子信息学院,陕西延安716000
【正文语种】中文
【中图分类】TN961
【相关文献】
1.北斗软件接收机B1频点信号捕获算法研究 [J], 毛新凯;李世光;杨军
2.直射通道辅助的北斗弱反射信号捕获算法 [J], 周继航;杨俊安;黄科举;刘辉
3.关于北斗卫星接收机信号捕获策略仿真研究 [J], 覃新贤;管志伟;洪冰清
4.适用于GPS软件接收机的弱信号捕获方法 [J], 黎山;易清明;陈庆;石敏
5.GNSS-R接收机信号捕获算法设计 [J], 腾小霁;孙越强;吴迪;陶鹏
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北斗卫星导航信号串行捕获算法MATLAB仿真报告(附MATLAB 程序)北斗卫星导航信号串行捕获算法MATLAB仿真报告一、原理卫星导航信号的串行捕获算法如图1所示。

××∑∫( )2本地PRN发生器∫( )2本地载波发生器GPS中频信号×判决检波器≥VT?Yes 转跟踪NO 继续搜索图1 卫星导航信号的串行捕获算法接收机始终在本地不停地产生对应某特定卫星的本地伪码,并且接收机知道产生的伪码的相位,这个伪码按一定速率抽样后与接收的GPS中频信号相乘,然后再与同样知晓频率的本地产生的载波相乘。

GPS中频信号由接收机的射频前端将接收到的高频信号下边频得到。

实际产生对应相位相互正交的两个本地载波,分别称为同相载波和正交载波,信号与本地载波相乘后的信号分别成为,产生同相I支路信号和正交的Q 支路信号。

两支路信号分别经过一个码周期时间的积分后,平方相加。

分成两路是因为C/A码调制和P码支路正交的支路上,假设是I支路。

当然由于信号传输过程中引入了相位差,解调时的I支路不一定是调制时的I支路,Q支路也一样,二者不一定一一对应,因此为了确定是否检测到接收信号,需要同时对两支路信号进行研究。

相关后的积分是为了获取所有相关数据长度的值的相加结果,平方则是为了获得信号的功率。

最后将两个支路的功率相加,只有当本地伪码和本地载波的频率相位都与中频信号相同时,最后得到的功率才很大,否则结果近似为零。

根据这个结论考虑到噪声的干扰,在实际设计时应该设定一个判定门限,当两路信号功率和大于设定的门限时则判定为捕获成功,转入跟踪过程,否则继续扫描其它的频率或相位。

二、 MATLAB 仿真过程及结果仿真条件设置:抽样频率16MHz ,中频5MHz ,采样时间1ms ,频率搜索步进1khz ,相位搜索步进1chip ,信号功率-200dBW ,载噪比55dB(1) 中频信号产生卫星导航信号采用数字nco 的方式产生,如图2所示。

载波nco 控制字为:carrier_nco_word=round(f_carrier*2^N/fs); 伪码nco 控制字为:code_nco_word=round(f_code*2^N/fs);32位Adder12位载波rom模2046计数器伪码rom32位Adder Divide by 2^20溢出时输出脉冲carrier_nco_wordcode_nco_wordfsample××+幅度加性噪声图 2其中载波rom 存储的是正弦信号的2^12个采样点,伪码rom 存储长度为2046的卫星伪码。

这样伪码采用2psk 的方式调制到射频,加性噪声很小是理想接收中频信号如图3所示。

-10图3 理想中频信号(2)噪声功率估计实际接收机接收到的导航信号淹没在噪声中,本程序对接收到的信号进行了噪声估计并进行了放大。

采用滑动平均估计法估计噪声功率,滑动平均估计法原理如图4所示。

图4 噪声功率滑动平均估计法原理迭代滤波器因子取0.8.功率估计结果是-191.48dBW 。

仿真中将接收中频信号放大到了signal_power_dB=-4.94dBW 。

这个功率与后面的判决门限有关系。

(2) 检测门限的确定常见的检测方法有幅度检波、平方检波和平方律检波。

幅度检波器的输出为在H0假设下,z(k) 服从瑞利分布,其概率密度函数为:幅度检波器NQ ∑=iN n niQ N 121迭代低通滤波器标度因子比较器+-σTV 比较结果XI psQ )()()(22k Q k I k Z +=2在H(1)假设下,z(k)服从莱斯分布,其概率密度函数为式中,为零阶修正的贝塞尔函数。

平方律检波输出为:在H0假设下,z(k)服从自由度为 2M 的 伽马分布,其概率密度函数为在H1假设下,z(k)服从自由度为 2M 的 卡方分布,其概率密度函数为当 M=1时,平方检波累积器就变成平方律检波器 ,可以计算出当归一化门限为Vt 时其虚警概率为:其中 采用恒虚警率检测,设虚警率为pfa ,本仿真取0.1 ,采用平方律检波,归一化判决门限为Vt=(-2*log2(pfa))^0.5,实际判决门限为VT=Vt*signal_power (3) 判决算法常见判决算法有单次判决、M/N 判决、(M/N+1)判决和Tong 判决,采用单次判决,虚警率为pfa=0.1 . 归一化检测门限为Vt=2.5776,判决门限为VT=0.8248; (5)仿真结果2210222000(/)exp[]() 02kk k k kk k Z Z D D Z f Z H I Z σσσ+=-⋅≥)(0⋅I ∑=+=Mi i Q i I k Z 122)]()([)(0)2exp()()2(1)/(21200≥-⋅Γ=-k kM k M k Z Z Z M H Z f σσ11/22112220001()(/)()exp()() 022M k k k k M k Z Z Z f Z H I Z λλσλσσ--+=⋅-⋅≥02201(/)exp[]221exp 2TTkfa k k k V V t Z P f Z H dZ dZ V σσ+∞+∞==-⎧⎫=-⎨⎬⎩⎭⎰⎰2t T V V σ=搜索21个多普勒频点和40和相位点,仿真设置接收中频为4.991MHz ,相位为2,结果如图5所示。

4.99555.0055.01x 1061020304050100150dopplercodephase图中最大处的相关结果是144,其他非峰值最大的约为1.约21dB。

部分相关值如下表:可以看出绝大部分数值都在门限之下,但也存在若干个在门限之上的数值,这些点可能造成虚警。

附:仿真主程序%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%´®ÐⶻñËã·¨·ÂÕæ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%clear all;clc;% f_doppe=5000;fsample=21e6;f_m=5e6;t_sim=1e-3/1;df=1/t_sim;cnt_det=1; %Åоö´ÎÊýf_carrier=f_m-9*df; %½ÓÊÕÔز¨ÆµÂÊf_code=2.046e6; %αÂëËÙÂÊcode_phase_init=2; %Ê×´ÎËÑË÷ʱ½ÓÊÕÂëÏàλcode_phase_init_cmp=code_phase_init;f_local_init=f_m-10*df; %±¾µØÔز¨nco³õʼƵÂÊlocal_code_phase=3; %%%%±¾µØαÂëÏàλcnt_doppler=21;cnt_phase=40;dot_num=t_sim*fsample; %·ÂÕæÒ»¸öαÂëÖÜÆڵĵãÊýdBW_signal_pow=-200;dB_C_I=60;Am=10^(dBW_signal_pow/20)*2^0.5;pre_noise_power=dBW_signal_pow-dB_C_I+(10*log10(f_carrier));corr_result1=zeros(cnt_doppler,cnt_phase);for dect_num=1:cnt_det %Åоö´ÎÊýfor num_phase=1:cnt_phase %²éÕÒÏàλµãµãfor num_doppeler=1:cnt_doppler %µ¥´Î²éÕÒ¶àÆÕÀÕµãif num_doppeler==1f_local=f_local_init;elsef_local=f_local+df;endsignal_r=signal_gen(fsample,f_carrier,f_code,code_phase_init,dBW_sign al_pow,dB_C_I,dot_num); %%%%%ÕâÀïÔز¨Ö¸Ï±ßƵºóµÄÖÐƵ,ÊÕµ½ºó´¦Àí·¢Ë͵Ļ¬¶¯±êÖ¾£¬ËÑË÷ÏÂÒ»¸öÏàλ%%%%Ê×´ÎËÑË÷¹À¼ÆÐźŹ¦ÂÊif num_doppeler==1 & num_phase==1Ni=10;signal_r1=zeros(1,length(signal_r)+Ni);Qn1=zeros(1,length(signal_r)+Ni);Qn2=zeros(1,length(signal_r)+Ni);Qn3=zeros(1,length(signal_r)+Ni);pow_noise=zeros(1,10);for bbb=1:10for aaa=1:length(signal_r)/10signal_r1(aaa)= signal_r(aaa)*signal_r(aaa) ;a=0.8; %µü´úÂ˲¨Æ÷ϵÊý% Qn2(aaa+1)= signal_r1(aaa)*signal_r1(aaa);Qn1(aaa+Ni)=sum(signal_r1( (aaa):(aaa+Ni)))/Ni;%»¬¶¯Æ½¾ùQn(aaa)= Qn1(aaa+1)^0.5;Qn3(aaa+1)= a*Qn1(aaa)+(1-a)*Qn1(aaa+1);pow_noise1=Qn3(aaa+1);endpow_noise2(bbb)=pow_noise1;endpow_noise=sum(pow_noise2(1:10))/10;pow_noise_dB=10*log10(pow_noise);AD_min_volt=0.8;AD_R=1;AD_power=0.5*AD_min_volt*AD_min_volt/AD_R;AD_power_dB=10*log10(AD_power);Am1=AD_power_dB-pow_noise_dB;Am1=10^(Am1/20);endsignal_r=signal_r*Am1; %ÖÐƵ·Å´óAm_local=0.9;local_carrier=local_carrier_gen(fsample,dot_num,f_local,Am_local);%%%flocal°üº¬Á˶àÆÕÀÕlocal_code=local_code_gen(f_code,fsample,dot_num,local_code_phase)*Am _local;corr_result(num_phase,num_doppeler)=deal_local(signal_r,local_carrier ,local_code);% corr_result1(num_doppeler,cnt_phase)=corr_result;end% pulse_next_phase=1;code_phase_init=mod(code_phase_init+1,2046);% local_code_phase=local_code_phase+1;end%%%%²éÕÒµ¥´Î²¶»ñ×î´óÖµ¼«Î»ÖÃ[phase_max(dect_num)doppler_max(dect_num)]=find(corr_result==max(max(corr_result)));mod_max(dect_num)=max(max(corr_result));det_phase=local_code_phase-phase_max+1;det_doppler=(doppler_max-1)*df+f_m-10*df;disp(det_phase); disp(det_doppler);%%%%%%% %%%%%%% %%%%%%% %%%%%%% ÇóÅоöÃÅÏÞ ºãÐ龯ÂÊ%±ê¶ÈÒò×ÓÊÇÅоöÃÅÏÞÓëÔëÉù¹¦ÂʵıÈÖµfa=0.1;Vt=(-2*log2(fa))^0.5; %¹éÒ»»¯ÅоöÃÅÏÞ% Vt=0;%¾-¹ý·Å´óºó¹¦ÂÊΪAD_power% VT=( Vt*pow_noise );VT=Vt*AD_power ;if mod_max(dect_num)> VT %ƽ·½Âɼ첨flag_det=1;elseflag_det=0;end%Tong¼ì²âK=1;B=2;if flag_det==1K=K+1;elseK=K-1;endif K>=Bdisp('success!');elseif dect_num==cnt_detdisp('failed!');endendendcorr_result_dB=10*log10(corr_result/mod_max);cnt_doppler1=f_m-10*df:df:f_m+10*df;mesh(1:cnt_doppler,1:cnt_phase,corr_result);xlabel('doppler');ylabel( 'code_phase');11。

相关文档
最新文档