发明名称 基于数字匹配滤波器的多星座导航弱信号的捕获方法
摘要 本发明公开了一种基于数字匹配滤波器的多星座导航弱信号的捕获方法,其特征在于,包括下述步骤:复现序列分组:取出一组进行初始化集合:接收序列分组后的求和运算:复现序列与接收序列的相关运算:对全部分组进行集合、接收序列分组后的求和运算和相关运算步骤:输出全部相关结果;在弱信号环境下,还可再利用非相干积分方式来提高信号增益。本发明采用提前处理复现序列信号的方法,在相关运算前充分利用处理器处理复现序列,而在相关过程中只进行加减运算。这样就减少了计算量,可以节省处理器在相关过程中的处理时间。
申请公布号 CN101206259A 申请公布日期 2008.06.25
申请号 CN200710188596.2 申请日期 2007.12.13
申请人 西安华迅微电子有限公司 发明人 王江安;周文益
分类号 G01S5/02(2006.01);G01S5/14(2006.01);H03H17/02(2006.01) 主分类号 G01S5/02(2006.01)
代理机构 西安通大专利代理有限责任公司 代理人 刘国智
主权项 1.一种基于数字匹配滤波器的多星座导航弱信号的捕获方法,其特征在于,包括下述步骤:a.复现序列分组:假设接收序列码长为N,当复现码相位的增量选取1/2码片时,复现的序列数则为2N,为了减少计算量,这里选取每组的复现序列数为M(M<<N),对于2N个复现序列,需要分成<img file="S2007101885962C00011.GIF" wi="199" he="73" />组;b.取出一组进行初始化集合:对于码长为N,复现序列数为M的一组序列,可以把这组序列看作一个N行M列的二维矩阵R,矩阵R按照下述方法进行变换:对矩阵R进行加1除2操作,形成另外一个矩阵R<sub>1</sub>,该矩阵R<sub>1</sub>各元素取值为0或1,且与矩阵R中各元素一一对应,矩阵R<sub>1</sub>也可看作是由N个行向量组成的矩阵,其中每个向量由M维元素组成,那么N个向量中最多有2<sup>M</sup>个不同的向量,即如果把相同的行向量分为一组,最多可以形成2<sup>M</sup>组;进一步,把每个M维行向量的所有元素顺序组合在一起形成一个一维向量,如把一个M维向量<maths num="0001"><![CDATA[<math><mrow><msub><mover><mi>r</mi><mo>^</mo></mover><mi>i</mi></msub><mo>=</mo><mo>{</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msub><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>M</mi><mo>)</mo></mrow></msub><mo>}</mo><mo>=</mo><mo>{</mo><mn>10</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mn>1</mn><mo>}</mo></mrow></math>]]></maths>中的所有元素组合在一起形成由M位二进制数组成的一维向量<maths num="0002"><![CDATA[<math><mrow><mrow><mo>{</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msub><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>M</mi><mo>)</mo></mrow></msub><mo>}</mo><mo>=</mo><mo>{</mo><mn>10</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mn>1</mn><mo>}</mo></mrow><mo>,</mo></mrow></math>]]></maths>或者说把两个向量对应起来,其中<img file="S2007101885962C00014.GIF" wi="85" he="84" />表示矩阵中第i行第a列的元素;同时把这个有M位二进制数的一维向量<maths num="0003"><![CDATA[<math><mrow><mo>{</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>1</mn><mo>)</mo></mrow></msub><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mn>2</mn><mo>)</mo></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>M</mi><mo>)</mo></mrow></msub><mo>}</mo><mo>=</mo><mo>{</mo><mn>10</mn><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mn>1</mn><mo>}</mo></mrow></math>]]></maths>与{0,1,…2<sup>M</sup>-1}共2<sup>M</sup>个数据中的某个数据A对应起来,因为A也可以表示为M位的二进制数据10…1;经过上述步骤进行分组,这个码长为N,复现序列数为M的一组序列,可以看作由N个M位的二进制数据组成的一个矩阵,然后把相同数据所对应的行数分为一组,可以得到2<sup>M</sup>组,用下式定义:U<sub>i</sub>={j|D(R<sub>1</sub>(j))=i}其中,i∈{0,1,…,2<sup>M</sup>-1},R<sub>1</sub>(j)表示由复现序列矩阵R<sub>1</sub>中第j行上M个元素组成的一维向量,D(R<sub>1</sub>(j))表示该向量根据上述对应关系所确定的数字;所以U<sub>i</sub>就表示由复现序列矩阵R<sub>1</sub>中的每行元素各自组成的M位一维向量所对应的数字等于i的所有行号的集合;c.接收序列分组后的求和运算:根据步骤b的分组方法,把U<sub>i</sub>中各行号对应的行向量划分为一组后,相应的,对接收序列也进行同样的分组,由于两者分组相同,因此也可使用下式表示:U<sub>i</sub>={j|D(R<sub>1</sub>(j))=i}其中,i∈{0,1,...,2<sup>M</sup>-1},R<sub>1</sub>(j)表示由复现序列矩阵R<sub>1</sub>中第j行上M个元素组成的一维向量,D(R<sub>1</sub>(j))表示该向量根据上述对应关系所确定的数字;所以U<sub>i</sub>就表示由复现序列矩阵R<sub>1</sub>中的每行元素各自组成的M位一维向量所对应的数字等于i的所有行号的集合;为了方便说明,这里再引入一个2<sup>M</sup>行2M+2列的存储矩阵SEQ,其中第M+1列从上到下依次存储0,1,…,2<sup>M-1</sup>共2<sup>M</sup>个十进制数据,每个十进制数都对应一个K位的二进制数;而这K位就依次存储在同行第1列到第K列的对应位置上,如第M+1列的第13行保存十进制数据12,其中M≥4,它对应的M位二进制数应该是:<img file="S2007101885962C00021.GIF" wi="236" he="67" />那么该行第1列到第M列对应存储此二进制数的每一位;第M+3列到第2M+2列依次保存同行第1列到第M列各对应元素乘2减1后的运算结果;第M+2列用于保存接收码中所有j行元素的和,其中j∈U<sub>i</sub>,(i=0,1,...,2<sup>M</sup>-1);上述组合结果提前保存在存储器中,如果得到了如下描述的接收序列:          x<sub>N-1</sub>,x<sub>N-2</sub>,...,x<sub>3</sub>,x<sub>2</sub>,x<sub>1</sub>,x<sub>0</sub>其中,N是采样值的编号,则可以把接收序列看作一个N行1列的矩阵,它的行数与复现序列一致,根据上述的分组方法,该序列也分成了2<sup>M</sup>组,然后按照下述方程进行求和运算,并把计算结果保存在存储矩阵SEQ中相应的位置:<maths num="0004"><![CDATA[<math><mrow><msub><mi>S</mi><mi>i</mi></msub><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&Element;</mo><msub><mi>U</mi><mi>i</mi></msub></mrow></munder><msub><mi>x</mi><mi>j</mi></msub></mrow></math>]]></maths>其中,i∈{0,1,...,2<sup>M</sup>-1};d.复现序列与接收序列的相关运算:把存储矩阵SEQ中第M+2列所存储的和值与第M+3列到第2M+2列中所保存的值合并起来以获得M个相关值C<sup>m</sup>,其中m∈M,根据下列方程确定其相关值:<maths num="0005"><![CDATA[<math><mrow><msup><mi>C</mi><mi>m</mi></msup><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mrow><msup><mn>2</mn><mi>M</mi></msup><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>b</mi><mrow><mo>(</mo><mi>M</mi><mo>+</mo><mn>2</mn><mo>+</mo><mi>m</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow></msub><msub><mi>S</mi><mi>j</mi></msub></mrow></math>]]></maths>其中b<sub>(M+2+m,j)</sub>表示上述矩阵SEQ中第M+2+m行第j列的元素,其值已经提前知道,且为1或-1;因此,每个序列的相关值实际上就是把步骤c中得到的和S<sub>i</sub>经过符号变化再求和得到;e.对全部分组进行步骤b~d的集合、接收序列分组后的求和运算和相关运算:输出全部相关结果。
地址 710075陕西省西安市科技三路58号汇豪国际3层