




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1软件无线电实验报告基于FPGA的直接序列扩频发射机的设计姓名:学号:联系电话:班级:指导老师:完成时间:2010-07-03目录摘要2正文一、项目名称2二、项目描述2三、实验要求3四、实验设备与仿真环境4五、总体设计与系统框图4六、各模块设计与仿真1)时钟模块52)待发射模块设计73)卷积模块设计104)扩频模块设计.135)极性变换与内插模块设计156)基带滤波模块设计16七、系统联调仿真17八、MATLAB仿真18九、实验总结与体会20【摘要】扩展频谱通信系统(SpreadSpectrumCommunicationSystem)是指将待传输信息的频谱用某个特定的扩频函数扩展后成为宽频带信号,送入信道中传输,接收端再利用相应手段将其解扩,从而获取传输信息的通信系统。扩频信号是不可预测的伪随机的宽带信号;它的带宽远大于欲传输信息(数据)带宽;具有类似于噪声的随机特性等。直接序列扩频(DSSS)是扩频通信方式中的一种,实现简单,应用广泛。【正文】一、项目名称本文以Altera公司的FPGA为硬件平台,以MAX-PLUSII为设计工具,实现直接基于FPGA的直接序列扩频发射机的设计序列扩频(DSSS)发射机,顶层采用图形设计方式,各模块是基于VerilogHDL设计的。本设计中待发射信息是以循环读ROM的方式读取,信道编码采用(2,1,7)卷积码,扩频模块采用扩频长度255的kasami码,极性变换模块为3bit二、项目描述量化模式,内插模块为每两比特间插入7bit,输出滤波为16阶的FIR滤波器。文中给出了本设计实现的系统整体方框图,VerilogHDL代码实现及其仿真结果。仿真结果表明本设计精确度高,稳定且输出无毛刺。三、实验要求(1)用QUARTUS或者MAXPLUS软件实现直接序列扩频发射机基带部分硬件描述语言程序设计。要求有时序仿真的结果。(2)自己根据信号流图设计。先估计所用资源的多少,选取合适的芯片。(3)芯片请选用ALTERA公司系列芯片。(4)按正规实验报告格式撰写,并上交打印后的文稿,要附程序。四、实验设备与仿真环境整个试验过程要用到的实验设备主要是一台PC机以及相关的软件,主要的开发环境是Altera公司的Quartus软件,并使用Matlab软件进行仿真检验。五、总体设计与系统框图将整个系统划分为如下几个模块:时钟模块,这个模块将为其它各个模块提供时时钟信号;待发射模块,在时钟的控制下将待发射信息采用循环方式读取ROM中的待发射信息,而ROM中存储固定的200bit信息;卷积模块的作用是对发射出来的信息进行卷积方式的信道编码,这样可以提高信号的抗干扰能力;扩频模块采用直接序列扩频的调制方式对卷积输出的信码进行数字调制;极性变换与内插模块是对调制后的信息码进行处理来提高译码的准确性;最后的滤波模块对基带信号进行基带成型滤波。各模块之间的信号流向如下图所示:六、各模块设计与仿真1)时钟模块根据信号流程图,发现整个系统所需要的时钟有8Khz、16Khz、4.08Mhz、16.32Mhz。为了能让各个模块之间的信号实现更好的同步,设计思想如下:8Khz、16Khz、4.08Mhz的时钟由32.64Mhz的时钟信号产生,其中8K=32.64M/4080、16K=32.64M/2040,4.08M=32.64M/8,而32.64M时钟信号由65.28M时钟信号分频而来,32.64M=65.28M/2。该模块代码如下:modulefenpin(reset,clk6528,clk3264,clk408,clk16,clk8);inputclk6528,reset; outputclk3264,clk408,clk16,clk8;regclk3264,clk408,clk16,clk8;reg[2:0]count1; reg[10:0]count2;reg[11:0]count3;always@(posedgeclk6528) clk3264<=~clk3264; always@(posedgeclk3264) begin if(!reset) begin count1<=0; count2<=0; count3<=0; end else begin count1<=count1+1; count2<=count2+1; count3<=count3+1; if(count1==7) begin count1<=0; clk408<=~clk408; end if(count2==2039) begin count2<=0; clk16<=~clk16; end if(count3==4079) begin count3<=0; clk8<=~clk8; end end endendmodule其仿真结果图如下所示:(因为频率的跨度大,所以分开观察仿真图)下图可观察65.28Mhz、32.64Mhz、4.08Mhz时钟信号间的关系:下图为16Khz与8Khz时钟信号之间的关系:最后生成symbolfile供顶层设计用。调试过程中遇到的问题:软件使用不是很熟悉,对于8Khz和16Khz时钟信号的观察总是没有结果,因为endtime总是不能到几十us的范围,怎么也没有结果。上网查了资料,主要是默认的endtime没有设置好,系统默认的为1us,需要修改,tools下可以修改参数。初次仿真的时候总是存在很大的时延,程序也没有问题,不知道怎么修改,请教同学,说是仿真模式没有选对,试了一下,果然是模式的问题。2)待发射模块设计该模块有两个小模块组成:send与myrom模块。本模块设计时是将待发射的信息存于固定的ROM中,Quartus中是在.mif文件中。通过地址指定发射信息的位置,然后在时钟的控制下,循环读取存在ROM中的200bit信息。读取信息的算法如下:modulesend(reset,clk8,address);inputreset,clk8;output[7:0]address;reg[7:0]address;always@(negedgeclk8,negedgereset)beginif(!reset)address[7:0]<=8'b00000000;elsebeginif(address[7:0]==8'b11111001)address[7:0]<=8'b00000000;elseaddress[7:0]<=address[7:0]+1;endendendmodule该模块仿真图如下:(0到249的地址)该模块的框图如下所示:而待发射信息存于LPM_ROM0中如下所示:dss_sendrom模块时序仿真(SimulationmodeTiming)结果如下:(存在时延)前48位数据:01001010、01100110、10100100、01001010、10010100、10101000,仿真输出结果与原始ROM中的数据一致。最后生成symbolfile供顶层设计用。调试过程中遇到的问题:存储器一开始还不会使用,只能得到初始化的mif如下:不知道怎么得到待发射数据。请教同学,才知道只要直接点击修改即可。3)卷积模块设计卷积模块是整个系统中的一个主要模块,本模块采用(2,1,7)卷积来实现卷积编码。卷积编码原理框图如下所示生产多项式为(133,171),相应的表达式如下:C0<=cov_in^temp[1]^temp[3]^temp[4]^temp[6];//卷积码的低位C1<=cov_in^temp[3]^temp[4]^temp[5]^temp[6];//卷积码的高位卷积后是并行的两位输出,设计时需要进行并串转换,使输出为串行输出,控制输出的时钟频率应该是输入时钟频率的两倍。相应代码如下所示:moduleconv217(in,reset,clk16,clk8,outs,outc0,outc1);inputin,clk8,reset,clk16;outputouts,outc0,outc1;reg[5:0]temp;regouts,flag,outc0,outc1;always@(posedgeclk8) begin temp[0]<=in; temp[5:1]<=temp[4:0]; end always@(posedgeclk8)begin outc0<=temp[0]^temp[2]^temp[3]^temp[5]^in; outc1<=temp[2]^temp[3]^temp[4]^temp[5]^in; endalways@(posedgeclk16,negedgereset) begin if(!reset) flag<=0; else begin if(flag==0) begin outs<=outc0; flag=~flag; end else begin outs<=outc1; flag=~flag; end end endendmodule代码相应的功能在代码注释中已指明,ylq是一个标志,用它来指示是输出并行的低位C0还是高位C1。为了更好的观察并行输出结果与并串转换后的串行输出结果之间的关系,将C0、C1和cov_out一起输出。dss_covolution217模块功能仿真结果如下:最后生成symbolfile供顶层设计用。调试过程中遇到的问题:得不到卷积输出,其输出结果只有开头几个数据,之后部分全部为零。仔细想应该是输入in没有设置好。一开始的设置仿真结果如下:发现in输入跟时钟信号是一样的,得出的卷积结果自然不正确。2)需要修改in的输入值,但是软件使用还不熟悉,请教同学帮忙才修改好。得到最后正确的结果。4)扩频模块设计这个模块的设计是整个系统的一个关键设计,设计中采用了一下机制使得PN码与信息码保持相位对齐,并且没有毛刺。这里的PN码是以255位为单位进行循环的,采用一个8bit的计数器,使得每一个周期开始的时候(也就是计数器为0的时候),与PN码作异或运算的都是一位新的信码,而这一位信码采样在PN一个周期的中部,即计数器为127的时候。经过仿真验证,这种机制既能使得PN码和信码保持对齐,又有效的消除了这一模块可能产生的毛刺。该部分的代码如下:modulekuopin(reset,clk408,ins,outk,count);inputreset,clk408,ins;outputoutk,count;regoutk1,outk;reg[3:0]m1;reg[7:0]m2;reg[7:0]count;regtemp1,temp2;always@(negedgeclk408,negedgereset) if(!reset) begin m1[3:0]<=4'b0101; m2[7:0]<=8'b10100101; temp1<=0; temp2<=0; count<=0; end else begin m1<=m1>>1; m2<=m2>>1; m1[3]<=m1[1]^m1[0]; m2[7]<=m2[0]^m2[2]^m2[3]^m2[4]; outk1<=m1[0]^m2[0]; count<=count+1; if(count==8'd127) temp1<=ins; elseif(count==8'd254) count<=0; elseif(count==0) begin outk<=!(temp1^outk1); temp2<=temp1; end else outk<=!(temp2^outk1); endendmodule仿真结果图如下所示:我们可以看出时序仿真结果与前面功能仿真相比,波形上会有毛刺,同时还有延时。最后生成symbolfile供顶层设计用。5)极性变换与内插模块设计为了进行数字信号处理,需要对0、1码字进行级性变换,即将1变为-1,0变为1。然后进行3bit量化,将1变为111,0变为001。而该部分采用了3bit并行输出,因此比特率不改变。在内插过程中,每一个码片插入7个0,比特率增大为原来的8倍。这样处理可以减少译码误差。该模块实现代码如下:moduleconv_insert(clk3264,ink,outdata);inputclk3264,ink;output[2:0]outdata;reg[2:0]outdata;reg[2:0]count;always@(posedgeclk3264)beginif(count==0)begin if(ink==1) outdata<=3'b111; else outdata<=3'b001; end else outdata<=3'b000; count<=count+3'b001;endendmodule时序仿真:可以看出存在一点毛刺,时延。最后生成symbolfile供顶层设计用。6)基带滤波模块设计此模块使用了老师提供的代码。在次,省略该模块的设计过程。它的symbolfile如下:七、系统联调仿真在对系统各模块设计仿真完之后,需要将各个模块级联起来进行综合的调试。在这个层次,采用图形输入设计方法,新建一个.bdf文件,然后将前面各个模块生成的symbolfile框图输入到上述文件。系统框图如下:保存顶层文件,然后进行仿真,其中功能仿真结果如下:将结果以有符号十进制形式显示。调试中遇到的问题:级联的时候总是遇到编译不成功的问题,自己修改了下之前各级的程序,编译总算成功,但是仿真的时候输出为零。请教同学帮忙,才知道主要问题出在conv127、conv_insert与fir这3级,这三级的输入输出设计到数组形式的数据。一开始的时候自己把所有数组形式的输入输出都该为一般的形式,编译成功,但是没有输出结果。后来讲数组形式的输入输出修改回来,再重新修改了下程序,级联编译成功,同时有了输出显示。八、.MATLAB仿真为了验证系统最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 媒体发布服务合同书
- 八钢公司建军节活动方案
- 公交公司文体活动方案
- 公交活动优惠活动方案
- 公交集团植树节活动方案
- 农业合作网络技术推广服务协议
- 六年级童话寓言作文雪中送炭800字9篇
- 公共文明健康活动方案
- 给新老师的一封信400字(8篇)
- 法律常识民商法测试卷
- 农产品购销合同范本版
- 语文五年级下册第六单元大单元整体教学设计
- 鸡毛信的故事-红色故事课件
- 中国古都西安英文介绍课件
- 国家开放大学《合同法》章节测试参考答案
- 初中英语七选五经典5篇(附带答案)
- (完整版)2019年安徽中考化学真题(版含答案)
- 2024年晋城市国有资本投资运营有限公司招聘笔试参考题库附带答案详解
- 安全技术交底书(一级)
- 《预防脊柱侧弯》课件
- 政府与非营利组织会计第8版王彦习题答案
评论
0/150
提交评论