System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及fpga实现,具体涉及一种单载波同步算法的fpga实现方法及装置。
技术介绍
1、单载波通信体制下,一般会使用pn(pseudo-noise)序列作为本地相关序列。一般的bpsk(binary phase shift keying,二进制相移键控)单载波通信体制,对基带算法的解调门限要求都不会太高(0db以上),所以对同步相关算法的检测门限要求也就不高(0db以上)。因此,pn序列的长度设计就不会太长,一般为256点即可。那么在相关算法的fpga(field programmable gate array,现场可编程逻辑门阵列)实现上,就需要一个256点的移位寄存器,并且有iq两路,则需要512点的移位寄存器。这在fpga寄存器资源的消耗上,还是可以承受的。
2、但在单载波直序扩频抗干扰通信体制下,往往要求基带算法的sinr(signal tointerference plus noise ratio,信号与干扰加噪声比)解调门限为-15db以下,那么对同步算法的检测门限要求也要达到-15db以下。因此,pn序列的长度设计就会很长,以满足苛刻的同步检测sinr门限指标。比如,对于一套单载波直序扩频(dsss),rake接收物理层通信算法,32倍扩频因子下可达到-14.5db的解调门限,那么所需要的精同步算法pn序列长度至少为1024点。
3、为了实现较为精确的采样恢复(位同步),会在收端产生多路下抽后样点,每一路都进行1024个iq样点本地相关操作,最终选取相关峰值最高的一路作为最佳下抽后数据,
4、如图1所示,为传统1024个iq样点本地相关其的fpga实现结构。可见每经过一个clock(时钟),1024个iq样点的移位寄存器就会向右移动移位一次。在1个clock周期里,fpga要完成以下计算:
5、1)和本地1024个iq样点pn序列的点乘操作。
6、2)1024个iq样点的求和操作。
7、如果使用传统的fpga实现方法,可以估计一下dff(d类触发器)的资源消耗情况。设定:iq两路下抽后样点位宽为16bit,转换速率为8msps(million samples per second,每秒采样百万次),发端6倍的上抽因子上抽到48msps,收端6倍下抽后产生6路下抽后数据。
8、所需dff资源为:(32*1024)*6=196608bits
9、可见dff资源消耗过高,对于大部分中端fpga都是完全不能承受的,因此产品对于fpga的选型成本也比较高。
技术实现思路
1、本申请提供一种单载波同步算法的fpga实现方法及装置,可以解决现有技术中存在dff资源消耗过高,造成fpga的选型成本较高的技术问题。
2、第一方面,本申请实施例提供一种单载波同步算法的fpga实现方法,所述fpga实现方法包括:
3、将1024个iq样点,写入n个块随机存储器构成的第一存储矩阵中;将1024个iq样点的pn序列构造成一个第二存储矩阵,所述第二存储矩阵和第一存储矩阵行列数量相同;
4、以8m时钟的f倍作为读时钟,从所述第一存储矩阵中读取iq样点,产生n个iq样点地址序列;从第二存储矩阵读取pn码,产生n个pn序列;其中,f、n均为2的多次幂整数,且f×n=1024;
5、将所述n个iq样点地址序列和n个pn序列进行点乘再求和,f个和累加后,得到1024个iq样点的本地相关结果。
6、结合第一方面,在一种实施方式中,所述n为64,f为16;或者,所述n和f均为32。
7、结合第一方面,在一种实施方式中,所述第一存储矩阵包括n个按列排布的块随机存储器,每行为各块随机存储器的深度f,地址取值范围为1至f-1。
8、结合第一方面,在一种实施方式中,所述将1024个iq样点,写入n个块随机存储器构成的第一存储矩阵中,包括:
9、iq样点以8m个时钟作为写时钟,将1024个iq样点的地址逐列写入第一存储矩阵中,直至第一存储矩阵首次全部写满。
10、结合第一方面,在一种实施方式中,所述第一存储矩阵首次写满iq样点之后,立即在写入iq样点的同时,按照读时钟从所述第一存储矩阵中读取iq样点,读取方式包括:
11、每f个读时钟为一轮小循环,每一轮小循环读出iq样点的起始位置都向后移动一格,其余的读出位置也相应向后移动一格;即
12、首轮读取时,以读时钟按列依次读取,直至一轮小循环读取完毕;
13、之后每轮读取iq样点时,通过轮数减1得到行数;每个采样时钟按纵向读取n个块随机存储器,并且在该行及之前的行中,读取iq样点的位置比前一轮向后移动一格,该行以下读取iq样点的位置不变;最后一个采样时钟读取iq样点的位置为对应行的第一个位置;
14、结合第一方面,在一种实施方式中,按照第一存储矩阵读取iq样点的方式产生n个块随机存储器的读地址,每相隔64轮小循环,读取iq样点产生的首地址自加1,其余地址每个读时钟增加1;每个读时钟同时产生n个块随机存储器的n个读地址。
15、结合第一方面,在一种实施方式中,所述第二存储矩阵为动态矩阵,每f个读时钟为一个小循环,第二存储矩阵按列向下小循环移位一次。
16、结合第一方面,在一种实施方式中,所述第二存储矩阵读取方式与第一存储矩阵读取方式相同,包括:
17、每f个读时钟为一轮小循环,首轮读取时,以读时钟按列依次读取,直至m个读时钟读取完毕;
18、之后每轮读取iq样点时,通过轮数减1得到行数;每个读时钟按纵向读取n个块随机存储器,并且在该行及之前的行中,读取iq样点的位置比前一个向后移动一格,该行以下读取iq样点的位置不变;最后一个读时钟读取iq样点的位置为对应行的第一个位置。
19、结合第一方面,在一种实施方式中,将所述n个iq样点地址序列和n个pn序列进行点乘再求和,f个和累加后,得到1024个iq样点的本地相关结果,包括:
20、第一存储矩阵每个读时钟读出n个iq样点地址序列,第二存储矩阵每个读时钟能读出n个pn序列,二者点乘并全部相加求和,得到第一结果;
21、当前的第一结果和前一个读时钟得到的第一结果进行累加,直至f个第一结果累加结束,得到最终的所述1024个iq样点的本地相关结果。
22、第二方面,本申请实施例提供了一种基于上述任一项单载波同步算法的fpga实现方法的实现装置,所述实现装置包括:
23、构造模块,其用于将1024个iq样点,写入n个块随机存储器构成的第一存储矩阵中;还用于将1024个iq样点的pn序列构造成一个第二存储矩阵,所述第二存储矩阵和第一存储矩阵行列数量相同;
24、序列读取模块,其用于以8m时钟的f倍作为读时钟,从所述第一存储矩阵中读取iq样点,产生n个iq样点地址本文档来自技高网...
【技术保护点】
1.一种单载波同步算法的FPGA实现方法,其特征在于,所述FPGA实现方法包括:
2.如权利要求1所述的单载波同步算法的FPGA实现方法,其特征在于,
3.如权利要求1所述的单载波同步算法的FPGA实现方法,其特征在于,所述第一存储矩阵包括N个按列排布的块随机存储器,每行为各块随机存储器的深度F,地址取值范围为1至F-1。
4.如权利要求3所述的单载波同步算法的FPGA实现方法,其特征在于,所述将1024个IQ样点,写入N个块随机存储器构成的第一存储矩阵中,包括:
5.如权利要求4所述的单载波同步算法的FPGA实现方法,其特征在于,所述第一存储矩阵首次写满IQ样点之后,立即在写入IQ样点的同时,按照读时钟从所述第一存储矩阵中读取IQ样点,读取方式包括:
6.如权利要求5所述的单载波同步算法的FPGA实现方法,其特征在于,按照第一存储矩阵读取IQ样点的方式产生N个块随机存储器的读地址,每相隔64轮小循环,读取IQ样点产生的首地址自加1,其余地址每个读时钟增加1;每个读时钟同时产生N个块随机存储器的N个读地址。
8.如权利要求7所述的单载波同步算法的FPGA实现方法,其特征在于,所述第二存储矩阵读取方式与第一存储矩阵读取方式相同,包括:
9.如权利要求1所述的单载波同步算法的FPGA实现方法,其特征在于,将所述N个IQ样点地址序列和N个PN序列进行点乘再求和,F个和累加后,得到1024个IQ样点的本地相关结果,包括:
10.一种基于权利要求1-9任一项所述的单载波同步算法的FPGA实现方法的实现装置,其特征在于,所述实现装置包括:
...【技术特征摘要】
1.一种单载波同步算法的fpga实现方法,其特征在于,所述fpga实现方法包括:
2.如权利要求1所述的单载波同步算法的fpga实现方法,其特征在于,
3.如权利要求1所述的单载波同步算法的fpga实现方法,其特征在于,所述第一存储矩阵包括n个按列排布的块随机存储器,每行为各块随机存储器的深度f,地址取值范围为1至f-1。
4.如权利要求3所述的单载波同步算法的fpga实现方法,其特征在于,所述将1024个iq样点,写入n个块随机存储器构成的第一存储矩阵中,包括:
5.如权利要求4所述的单载波同步算法的fpga实现方法,其特征在于,所述第一存储矩阵首次写满iq样点之后,立即在写入iq样点的同时,按照读时钟从所述第一存储矩阵中读取iq样点,读取方式包括:
6.如权利要求5所述的单载波同步算法的fpga实现方法,其特征在于,按照第一存储矩阵读...
【专利技术属性】
技术研发人员:黄立,潘勇,郑浩,
申请(专利权)人:武汉高德红外股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。