直接序列扩频发射机的设计与实现

上传人:hs****ma 文档编号:506356424 上传时间:2023-05-14 格式:DOCX 页数:13 大小:640KB
返回 下载 相关 举报
直接序列扩频发射机的设计与实现_第1页
第1页 / 共13页
直接序列扩频发射机的设计与实现_第2页
第2页 / 共13页
直接序列扩频发射机的设计与实现_第3页
第3页 / 共13页
直接序列扩频发射机的设计与实现_第4页
第4页 / 共13页
直接序列扩频发射机的设计与实现_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《直接序列扩频发射机的设计与实现》由会员分享,可在线阅读,更多相关《直接序列扩频发射机的设计与实现(13页珍藏版)》请在金锄头文库上搜索。

1、直接序列扩频发射机的设计与实现实验要求:(1) 用QUARTUS或者MAXPLUS软件实现直接序列扩频发射机基带部分 硬件描述语言程序设计。要求有时序仿真的结果。(2) 自己根据信号流图设计。先估计所用资源的多少,选取合适的芯片。(3) 芯片请选用ALTERA公司系列芯片。( 4)按正规实验报告格式撰写,并上交打印后的文稿,要附程序。其中 kasami 码生成多项式(c c .c c )为ml = 23 (n = 4); n n-110m2 = 435 (n = 8) ; ml 和 m2 的初相(a a .a a ,a a .a a ,): 010110100101n n -1 1 0 n n

2、 -1 1 0卷积编码生成多项式为(133, 171);编码效率R = 1/2 ;约束长度K = 7 ;框图如下:待发射信息(输出:4Kbps、200bits,量化位数:1bit)1对上述信息(250bits)卷积 (输出:400bits,8Kbps,量化位数:lbit)1F扩频(扩频码自选,扩频长度N=255,输出Chip 速率:2.04Mchips,量化位数:lbit)r极性变换(o-+i,i-i)(输出:2.04Mbps,量化位数:3bit)内插 (2.04M 变到 16.32M)r(输出基带成型滤8bits:波器量化位数:实验内容:一总体描述:用Verilog HDL实现直接序列扩频发

3、射机的基带部分,其中各子模块用Verilog HDL编 写,顶层用图形的形式级联。发射信息200bit从ROM中读取,位宽lbit。卷积用(2, 1, 7)码生成多项式133、171。 扩频码用KASAMI码,扩频后的信号经极性变换后内插,每个码片后插入7个0。 基带成型滤波器用的是16阶FIR低通滤波器。开发工具使用的是QUARTUS II。系统的原理框图同上页的要求。二子模块设计及仿真结果:共设计了八个子模块,分别为时钟分频、ROM地址产生、ROM、卷积、并串转 换、扩频、极性变换和内插、FIR低通滤波器。1时钟分频。 整个系统共需16.32M,2.04M,8K,4K四个时钟。为了让四个时

4、钟严格同步,使用同一个外部的输入32.64M时钟分频得到,核心代码如下: always (posedge clk32m)beginif(!rese t)/复位清零begin count16=0;clk2m=0; endelsebeginif(countl6=7)/8 进制记数,16 分频begin count16=0; clk2m=!clk2m; endelse count16=count16+1;endend每个时钟用一个always块输出,各always块并行执行,实现了各时钟同步。 在跳变时刻放大的仿真波形如下,可以看到16.32M,2.04M,8K,4K四个时钟的跳变时刻重合。2待发射

5、信息输出。这个部分有两个小模块,一个是存储待发射信息的ROM,一个是为取ROM中 的数据产生地址的 adr1 模块。ROM模块由QUARTUS生成,其中存储200bit的数据,(最后六位为0),它 在时钟的上升沿输出数据,所以我把adr1模块的地址输出时刻选在4k时钟的下 降沿,地址以0-199循环。保证在地址稳定后才从ROM中输出数据。adr1模块 部分代码如下:always (negedge clk or negedge rest)beginif(!res t)/复位清零adr= 0;elsebeginif(adr=199)/0T99循环记数,作为ROM的地址 adr=0;elseadr1

6、1-clk4kUU UUUUUU0000000resetI DU176t): la+6+700000000000010100000000000000000000图中OUtl为ROM中输出的数据,可以看到与存储的数据相同。(显示的波形为从0开始的 若干个bt)t): la3卷积部分。这一部分我也用了两个小模块实现,首先是卷积,输出两位并行信号(4kHz), 然后将两路并行信号转换成一路8KHz的串行信号。前一级的ROM输出数据是在 4k时钟的上升沿所以卷积的输入取在4k的下降沿,卷积的输出取在4k时钟的 上升沿,而4k的跳变时刻总是和8k时钟的下降沿重合,所以并串转换的输入输 出时刻取在8k时钟

7、的上升沿,可以在卷积的输出数据稳定后再输入到并串模块 中。卷积部分编码生成多项式为(133, 171),(2, 1, 7)编码,每次输入一位, 输出两位(并行),记忆长度为7,所以用一个6位的移位寄存器存储输入。输出为jout1.0。joutl输出171的编码,jout0输出为133的编码。卷积的示意图如下:JoutlJoutO部分代码如下:always(negedge clk4)/移位begintemp=temp1; temp0=u;endalways(posedge clk4)/卷积begin jout0二u templtemp2temp4temp5;/133 joutl二u temp0t

8、empltemp2temp5;/171 end并串转换模块把两路 4KHz 的 jout 信号合并成一路 8kHz 信号,使用一个标志 位 temp 来控制输出 jout0 还是 jout1 ,当 temp 为 0 时,输出 jout0;temp 为 1 时,输出joutl.复位时把temp清0,先输出jout0,即133卷积码。每次输出一 个后temp取反,就把两路信号插到一路里。时钟用8kHz。代码如下: always(posedge clk8 or negedge reset)begin if(!reset) temp=0; /指定输出为 jout0还是 juot1,/复位初始先输出ju

9、ot0,即133卷积elsebeginif(temp=0)beginbout=jout0;temp=temp;/temp取反,下次输出 jout1endelsebeginbout=jout1;temp=temp; /temp 取反,下次输出 jout0 endendend仿真波形:(bingchuan为并串转换后的输出,此图也可以验证前几个模块级 联的输出)clktik1- j out 0 b i rLgchii:diL clk4k00天辽曲丁订 極迤以n 回(辽费* 懑叵烂極 mii 湎爭 io XPoj11 11 _11 _1_1Ljl_tj ,n_;1 il_ji iii : i i i

10、 i i inn r! i ijLr_LT1_TLTLrirLJTrLmT_mTTLrT_n_nLJTJT_a_ajT_rLrLrL_r jumjiwLwmmmjumnwLnjmjTrLWLjuumwmmmjuij4扩频部分。主要功能是产生位随机码,再将其与输入的信号相乘,由于伪随机码的输出 频率远大于输入信号,所以输出频谱被展宽。这里产生的伪随机码是 kasami 码 生成多项式为为ml=23,m2=435.初相分别为0101, 10100101。示意图如下。这一段 kasami 码生成我用的是老师课件上的代码,在其中添加了几句后,实现 了伪随机码和输入信号的相乘。因为伪随机码是255 循环

11、,每一次循环周期内上 一级输出一 bit数据。所以我设了一个模255计数器,记到128时读入上一级并 串转换的输出(8kHz),在2.04MHz的上升沿读入,上一级输出的数据已经稳定。 计数器计到 0 时输出扩频后的数据,即输入数据和伪随机码模二加的结果,输出 数据也在2.04M的上升沿。主要代码如下:always (posedge clk204 or negedge reset) /8K 的跳变沿与 2M 下降沿重合,所 以在 2M 的上升沿读数并/输出可以保证数据稳定。beginif (!reset)begina=8bl0100101;/相位初始化ciri_oTjt pn_cut. res

12、et3 ir_cut3 WUTlt5极性变换和内插。 这一部分实现了极性变换和内插两个功能。极性变换将 1 变为-1,0 变为 1; 用三 bit 并行数据表示,即 1 变为 111,0 变为 001。每个 bit 的宽度不变。内 插实现把每个bit宽度缩到原来的1/8,然后在每个bit后插入7个0。这样就 把上面输出的2.04MHz的扩频码扩展了 8倍,到了 16.32MHz。扩频输出在2.04M 上升沿,而2.04M上升沿与16.32M下降沿重合,所以在16.32M上升沿取数是稳 定的。主要代码如下:reg2:0cont;/8 进制记数器always(posedge clk16m or negedge reset)/扩频输出在2.04M上升沿,而2.04M上升沿与16.32M下降沿重合 /所以在16.32M上升沿取数是稳定的。if(!reset)cont=0;else cont=cont+1b1;always(posedge clk16m)beginif(cont=1b0) outdata=(indata=1b1)?3b111:3b001; /极性变换elseoutdata=0;/内

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号