首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
LS码及其FPGA的实现
来源:本站整理  作者:佚名  2009-11-11 08:23:05




    LS码的自相关特性如图2所示,从图中可以看出,LS码的自相关的副峰值除了原点外处处为0。由于LS码的特性,任意两个码字之间的“零相关窗”长度并不相同。图3是LS码的互相关特性,可以看出,LS码的互补互相关性在原点周围的一定范围内为0,这个范围也就是所谓的“零相关窗”,所选的两个LS码字的“零相关窗”长度为127。


2 LS码在FPGA中的实现
    和一般的FPGA开发过程一样,LS码在FPGA中的实现需要经过可行性分析、算法验证、设计输入、仿真和下载测试几个过程。针对某个软件无线电平台的要求,可以合理地设计码速率和码长,扩频前的码速率为64 Kb/s,C码和S码的长度都为16,扩频后的码速率为1.024 Mb/s。
2.1 LS码的实现算法
    为了提高FPGA的处理效率,采用查找表的形式,首先生成了长度为16的C码和S码,生成码的算法是基于图1的树形结构,C码和S码关系为:
   
式中:n为C码和S码每一位的位置编号,N为码长。表1是所生成的长度为16,个数也为16的C码。S码可以根据式(1)求得,限于篇幅,这里不再单独列出,实验中只选取了表1中序号为1的一组C码和相应的S码作为查找表使用。

2.2 设计输入和仿真
    FPGA的设计输入有多种表达方式,最常用的是原理图方式和HDL文本方式,这里采用的是混合输入方式,首先采用Verilog HDL的文本输入方式将算法做成模块,然后再通过原理图的方式定义连接和接口,这样不仅使得逻辑描述性、可重用性和移植性强,而且使得接口描述和连接关系清晰、直观。图4是所设计的原理图结构,为了表示清楚,只截取了C码的扩频和解扩模块,其中spread C_part是C码的扩频模块,Baud_parr和serial_out模块的输出分别为并行输出和串行输出,这样做的目的是为了方便之后其他算法功能模块的输入,如果后面要加入例如调制、波形成型之类的模块,就可以方便地选择并行输入或者串行输入,提高了设计的灵活性。receiveC_parr为C码的并行解扩模块,这里只考虑了对Baud_parr所输出的并行数据进行解扩,这样能提高接收端的处理效率。输入端口SCLK为32.768 MHz的时钟,输出端口SERIAL C为seri al_out模块的串行输出,Cout为receiveCparr模块的解扩输出。
    在设计中,spreadC_part模块的扩频输出速率并不是所需的码速率,而是经过Baud_parr和serial_out模块后再构成所需的码速率。

    当完成设计输入后,就需要对所设计的算法进行时序仿真,验证算法的正确性。图5的时序图是采用ModelSim对C码的扩频模块spreadC_part、扩频的并行输出模块Baud_parr、串行输出模块serial_out以及并行解扩模块receiveC_parr所进行的仿真时序。如图5所示,Baud16x是一个1.024 MHz的时钟,INDATA是速率为64 Kb/s的输入码元、D C(15:0)为spreadC_part模块输出的扩频数据。注意到此时的D_c(15:0)为总线结构的16位数据,速率为Baud16x/8=128 Kb/s,在空闲时刻输出的都是0,这个数据输入到Baud_parr模块和seriaI_out模块。SC(15:0)和SERIAL_C分别对应这两个模块的并行输出和串行输出。可以看出SC(15:0)是16位总线数据,速率为1.024 Mb/s,SERIAL_C的串行数据速率也为1.024.Mb/s。Cout为将SC(15:0)的并行数据解扩后恢复出来的码元,可以看出,Cout正确地恢复出了IN-DATA的码元。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:108,109.40000 毫秒