![b5f41d843234ed78a66af0402b2db8d8.png](https://i-blog.csdnimg.cn/blog_migrate/c73d21cce840d3ddc3a9cb02646fa8f3.jpeg)
- C/A码产生方法
根据GPS ICD描述,CA码发射发生器使用2个M序列构成,分别被称为G1序列和G2序列。每个卫星测距码信号使用的唯一C/A码序列就是通过将G1序列和一定抽头选择后的G2序列模2和(modulo-2 sum,其实就是异或运算(^,xor()),就是二进制加法)产生的。
每个M序列寄存器都是10Bit,则根据M序列性质,G1序列和G2序列的周期都是2^10-1=1023。两个序列模2和运算得到的Gold码周期也是1023,也就是书上到处说的1023个码片(CA Chip)。
由于Gold码周期是1023个码片,所以在1.023MHz时钟驱动下,一个周期信号长度(1023个码片)为1ms,即每隔1ms产生一个周期的全部1023个码片,每个码片持续时间长度为1ms/1023 ≈1us.
如下图是2个线性移位寄存器组,每个寄存器组是10bit,上本部分产生G1序列,下半部分产生G2序列,受GPS时钟控制。CA码时钟是1.023MHz。
输出的C/A码是G1的最后一级寄存器内容和G2抽头选择寄存器输出,进行模2和运算输出。
![824b15692fc3006bdfa44898e2f961c8.png](https://i-blog.csdnimg.cn/blog_migrate/cc2576c6a00a48e77871ac5d896a804c.jpeg)
M序列的使用一般都是提供一个多项式,说明抽头控制;
![49e665dc33649e546afb5cf828e95029.png](https://i-blog.csdnimg.cn/blog_migrate/85dc14a1680d009652a61ceb694bf50e.png)
G1和G2的初始相位设置为全1.M寄存器初始值不能全0,否则反馈值即