软件无线电实验报告

软件无线电实验报告

基于 FPGA 的直接序列扩频发射机的设计

姓 名:学 号:联系电话:班 级:指导老师:完成时间: 2010-07-03

目录

摘要.............................................................2 正文

一、项目名称....................................................2 二、项目描述....................................................2 三、实验要求....................................................3 四、实验设备与仿真环境........................................4 五、总体设计与系统框图........................................4 六、各模块设计与仿真

1)时钟模块.....................................................5 2)待发射模块设计..............................................7 3)卷积模块设计................... ............................10 4)扩频模块设计....................... .......... . ...........13 5)极性变换与内插模块设计................... ................15 6)基带滤波模块设计............................ ..............16 七、系统联调仿真........ ................ .... ...............17 八、MATLAB 仿真................................................18 九、实验总结与体会............................................20

【摘要】

扩展频谱通信系统(Spread Spectrum Communication System)是指将待传输信息的频谱用某个特定的扩频函数扩展后成为宽频带信号,送入信道中传输,接收端再利用相应手段将其解扩,从而获取传输信息的通信系统。扩频信号是不可预测的伪随机的宽带信号;它的带宽远大于欲传输信息(数据)带宽;具有类似于噪声的随机特性等。直接序列扩频(DSSS)是扩频通信方式中的一种,实现简单,应用广泛。

【正文】

一、项目名称

本文以Altera 公司的FPGA 为硬件平台, 以MAX-PLUSII 为设计工具, 实现直接基于FPGA 的直接序列扩频发射机的设计序列扩频(DSSS)发射机, 顶层采用图形设计方式, 各模块是基于Verilog HDL设计的。本设计中待发射信息是以循环读ROM 的方式读取, 信道编码采用(2,1,7)卷积码, 扩频模块采用扩频长度255的kasami 码, 极性变换模块为3bit

二、项目描述

量化模式, 内插模块为每两比特间插入7bit, 输出滤波为16阶的FIR 滤波器。文中给出了本设计实现的系统整体方框图,Verilog HDL 代码实现及其仿真结果。仿真结果表明本设计精确度高, 稳定且输出无毛刺。

三、实验要求

(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。 该模块代码如下:

module fenpin(reset,clk6528,clk3264,clk408,clk16,clk8); input clk6528,reset;

output clk3264,clk408,clk16,clk8; reg clk3264,clk408,clk16,clk8; reg [2:0] count1; reg [10:0] count2; reg [11:0] count3;

always @(posedge clk6528) clk3264

if(!reset) begin

count1

begin

count1

count3

count1

clk408

if(count2==2039) begin

count2

clk16

if(count3==4079) begin

count3

其仿真结果图如下所示:(因为频率的跨度大,所以分开观察仿真图) 下图可观察65.28Mhz 、32.64Mhz 、4.08Mhz 时钟信号间的关系:

下图为16Khz 与8Khz 时钟信号之间的关系

:

最后生成 symbol file 供顶层设计用。

调试过程中遇到的问题:

1) 软件使用不是很熟悉,对于8Khz 和16Khz 时钟信号的观察总是没有结果,因为endtime 总是不能到几十us 的范围,怎么也没有结果。上网查了资料,主要是默认的endtime 没有设置好,系统默认的为1us ,需要修改,tools 下可以修改参数。

2) 初次仿真的时候总是存在很大的时延,程序也没有问题,不知道怎么修改,请教同学,说是仿真模式没有选对,试了一下,果然是模式的问题。

2)待发射模块设计

该模块有两个小模块组成:send 与myrom 模块。本模块设计时是将待发射的信息存于固定的 ROM 中,Quartus 中是在.mif 文件中。通过地址指定发射信息的位置,然后在时钟的控制下,循环读取存在 ROM 中的 200bit 信息。

读取信息的算法如下:

module send(reset,clk8,address); input reset,clk8; output [7:0] address;

reg [7:0] address;

always @(negedge clk8,negedge reset)

begin

if(!reset)

address[7:0]

begin

if(address[7:0]==8'b11111001)

address[7:0]

address[7:0]

end end endmodule

该模块仿真图如下:(0到249的地址)

该模块的框图如下所示:

而待发射信息存于 LPM_ROM0 中如下所示

:

dss_sendrom 模块时序仿真(Simulation mode Timing)结果如下:(存在时延)

前48位数据:01001010、01100110、10100100、01001010、10010100、10101000,

仿真输出结果与原始 ROM 中的数据一致。 最后生成 symbol file 供顶层设计用。

调试过程中遇到的问题:

存储器一开始还不会使用,只能得到初始化的mif 如下:

不知道怎么得到待发射数据。请教同学,才知道只要直接点击修改即可。

3)卷积模块设计

卷积模块是整个系统中的一个主要模块,本模块采用(2,1,7)卷积来实现卷积编码。卷积编码原理框图如下所示

生产多项式为(133,171),相应的表达式如下:

C0

卷积后是并行的两位输出,设计时需要进行并串转换,使输出为串行输出,控制输出的时钟频率应该是输入时钟频率的两倍。 相应代码如下所示:

module conv217(in,reset,clk16,clk8,outs,outc0,outc1);

input in,clk8,reset,clk16;

output outs,outc0,outc1;

reg [5:0] temp;

reg outs,flag,outc0,outc1;

always @(posedge clk8)

begin

temp[0]

temp[5:1]

end

always @(posedge clk8)

begin

outc0

outc1

end

always @(posedge clk16,negedge reset)

begin

if(!reset)

flag

else

begin

if(flag==0)

begin

outs

flag=~flag;

end

else

begin

outs

flag=~flag;

end

end

end

endmodule

代码相应的功能在代码注释中已指明,ylq 是一个标志,用它来指示是输出并行的低位 C0还是高位 C1。为了更好的观察并行输出结果

与并串转换后的串行输出结果之间的关系,将 C0、C1 和 cov_out 一起输出。

dss_covolution217 模块功能仿真结果如下:

最后生成 symbol file 供顶层设计用。

调试过程中遇到的问题:

1) 得不到卷积输出,其输出结果只有开头几个数据,之后部分全部为零。仔细想应该是输入in 没有设置好。一开始的设置仿真结果如下:

发现in 输入跟时钟信号是一样的,得出的卷积结果自然不正确。

2)需要修改in 的输入值,但是软件使用还不熟悉,请教同学帮忙才修改好。得到最后正确的结果。

4)扩频模块设计

这个模块的设计是整个系统的一个关键设计,设计中采用了一下机制使得PN 码与信息码保持相位对齐,并且没有毛刺。

这里的PN 码是以255 位为单位进行循环的, 采用一个8bit 的计数器, 使得每一个周期开始的时候(也就是计数器为0的时候), 与PN 码作异或运算的都是一位新的信码, 而这一位信码采样在PN 一个周期的中部, 即计数器为127 的时候。经过仿真验证, 这种机制既能使得PN 码和信码保持对齐, 又有效的消除了这一模块可能产生的毛刺。

该部分的代码如下:

module kuopin(reset,clk408,ins,outk,count);

input reset,clk408,ins;

output outk,count;

reg outk1,outk;

reg [3:0] m1;

reg [7:0] m2;

reg [7:0] count;

reg temp1,temp2;

always @(negedge clk408,negedge reset)

if(!reset)

begin

m1[3:0]

m2[7:0]

temp1

temp2

count

end

else

begin

m1>1;

m2>1;

m1[3]

m2[7]

outk1

count

if(count==8'd127)

temp1

else if(count==8'd254)

count

else if(count==0)

begin

outk

temp2

end

else

outk

end

endmodule

仿真结果图如下所示:

我们可以看出时序仿真结果与前面功能仿真相比,波形上会有毛刺,同时还有延时。

最后生成 symbol file 供顶层设计用。

5)极性变换与内插模块设计

为了进行数字信号处理, 需要对0、1 码字进行级性变换, 即将1 变为- 1, 0 变为1。然后进行3bit 量化, 将1 变为111, 0变为001。而该部分采用了3bit 并行输出, 因此比特率不改变。在内插过程中, 每一个码片插入7 个0, 比特率增大为原来的8倍。这样处理可以减少译码误差。

该模块实现代码如下:

module conv_insert(clk3264,ink,outdata);

input clk3264,ink;

output [2:0] outdata;

reg [2:0] outdata;

reg [2:0] count;

always @(posedge clk3264)

begin

if(count==0)

begin

if(ink==1)

outdata

else

outdata

end

else

outdata

count

end

endmodule

时序仿真:可以看出存在一点毛刺,时延。

最后生成 symbol file 供顶层设计用。

6)基带滤波模块设计

此模块使用了老师提供的代码。在次,省略该模块的设计过程。 它的 symbol file 如下:

七、系统联调仿真

在对系统各模块设计仿真完之后, 需要将各个模块级联起来进行综合 的调试。在这个层次,采用图形输入设计方法,新建一个.bdf 文件,然后将前面各个模块生成的 symbol file 框图输入到上述文件。 系统框图如下:

保存顶层文件,然后进行仿真,其中功能仿真结果如下:将结果以有符号十进制形式显示。

调试中遇到的问题:

级联的时候总是遇到编译不成功的问题,自己修改了下之前各级的程序,编译总算成功,但是仿真的时候输出为零。请教同学帮忙,才知道主要问题出在conv127、conv_insert与fir 这3级,这三级的输入输出设计到数组形式的数据。一开始的时候自己把所有数组形式的输入输出都该为一般的形式,编译成功,但是没有输出结果。后来讲数组形式的输入输出修改回来,再重新修改了下程序,级联编译成功,同时有了输出显示。

八、.MATLAB 仿真

为了验证系统最后一级fir 滤波器的输出,采用MATLAB 软件对输出进行仿真。方法如下:首先将Quartus 仿真的输出波形文件另存为.tbl 文件,然后启动MATLAB 仿真软件并新建一个.M 文件,键入如下代码:

仿真结果如下图所示:

调试过程遇到的问题:

Matlab 软件以前使用过,已经生疏了,这次重新使用还是遇到不少问题,首先巩固了下软件的使用。在仿真的时候发现如果使用quartus 软件仿真的时候如果设置的endtime 不同,存储得到的tbl 文件不一样,由此使得matlab 仿真得到的结果不一样,主要是疏密的区别以及仿真横纵坐标的区别。上图仿真所设置的endtime 为15us 。

九、实验总结与体会

此次实验的过程中,收获很大。首先是一些常用软件的使用方法。一开始使用Quartus 建新工程的时候就遇到问题,实体名和文件名要一致,跟工程名没关系。其次,是matlab 软件的使用方法,以前用过这个软件,但是学得不深,这次使用此软件进行仿真,了解到matlab 软件的强大作用。第三,此实验要求基于FPGA 的设计,并采用硬件描述语言Verilog-HDL 语言为主要设计语言。此次实验中更加深入的学习了硬件描述语言。第四,为了加强信号的抗干扰能力,采用了卷积信道编码。之前通信原理课程中有学习过相关知识,但是理解不深,在此次实验中加深了对卷积信道编码的理解。另外,实验的过程中遇到了不少问题,并不是一帆风顺。遇到问题的时候烦躁过,但也清楚的认识到烦躁的心情根本不能解决实际问题。只有静下心来,仔细分析研究或者查阅相关资料,才可以找到问题的根源,解决问题。实验过程中得到同学的很大帮助,才可以比较成功的完成实验。

20


相关文章

  • 北京理工大学物联网工程专业培养计划
  • 北京理工大学 卓越工程师培养计划方案 物联网工程专业(本科) 目录 物联网工程专业本科(3+1)卓越工程师培养标准............................................................... 1物联网工程专业本科(3+1)卓越工程师培养方案..... ...

  • 物联网产业在国内外发展现状和趋势综述
  • 目录 前言: ...................................................................... 3 物联网概述................................................................. ...

  • 南开大学物流实验室建设经验--陆岚
  • 南开大学物流实验室建设经验 南开大学现代物流研究中心 刘秉镰 陆 岚 南开大学现代物流中心是南开大学在 1988 年底独立设置的交通经济研究所的基础上,整合经济学院.国际商学院物流领域研究资源,于 1999 年成立的跨学科.跨院系的集教学与科研.咨询与服务于一体的现代物流专业研究机构.中心研究领域广 ...

  • 北邮移动通信技术实验报告
  • 移动通信技术实验报告 班 姓 学 级:名:号: 班 内 序 号 : 这是我们第一次走出校园进行专业课实验,来到了位于海淀区的大唐电信科技股份有限公司.公司的大楼前花团锦簇,更加衬托出大唐的辉煌业绩.我想大家心中,都有一种由衷的向往之情. 进入公司内部,我感受到了浓厚的工作氛围,实验室里还有几个埋头工 ...

  • 高校物联网实验室建设总体方案
  • 物联网实验室建设总体方案 目录 一.公司介绍 二.物联网实验室建设背景 三.总体设计方案介绍 四.体验区系统建设方案 五.基础教学区建设方案 目录 一. 公司介绍 二.物联网实验室建设背景 三.总体设计方案介绍 四.体验区系统建设方案(示例) 五.基础教学区建设方案 浙大网新介绍(一) 浙大网新规模 ...

  • 毕业设计(论文)的目的要求与成绩评定
  • 1.目的 (1)培养学生综合运用所学知识,结合实际独立完成课题的工作能力. (2)对学生的知识面,掌握知识的深度,运用理论结合实际去处理问题的能力,实验能力,外语水平,计算机运用水平,书面及口头表达能力进行考核. 2.要求 (1)要求一定要有结合实际的某项具体项目的设计或对某具体课题进行有独立见解的 ...

  • 智能家居系统工程案例
  • 智能家居系统工程案例 目录 案例一:智能家居实训平台 . .................................................................................................. 4 1 概述 . ............. ...

  • 无人机的使用与拍摄技巧
  • 无人机的使用和拍摄技巧 实验指导 无人机航空拍摄是空中摄像的新方式,在保证画面质量的同时,具有成本较低.结构简单.操作简易.场景灵活的特点,在新闻报道.纪录片摄制等领域均有应用,是一门锻炼学生画面构图能力.理论实践能力与心理素质的课程.如今,在传媒公司与各高校传媒学院,都有无人机的身影.课程将以实践 ...

  • 成都电子科技大学20**年博士招生简章
  • 成都电子科技大学 2014年博士研究生 招生简章 教育部直属重点大学 国家"211工程"."985工程"重点建设高校 学校代码10614 yz.uestc.edu.cn 目 录 学校概况 .................................... ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn