综合课程设计报告CDMA部分 含FPGAverilog代码要点Word文档格式.docx
- 文档编号:16743498
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:19
- 大小:352.82KB
综合课程设计报告CDMA部分 含FPGAverilog代码要点Word文档格式.docx
《综合课程设计报告CDMA部分 含FPGAverilog代码要点Word文档格式.docx》由会员分享,可在线阅读,更多相关《综合课程设计报告CDMA部分 含FPGAverilog代码要点Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
扩频通信的理论基础就是著名的香农定理:
…………………………………………
(1)
这个公式表明,在高斯信道中当传输系统的信号噪声功率比S/N下降时,可用增加系统传输带宽W的办法来保持信道容量C不变。
对于任意给定的信号噪声功率比,可以用增大传输带宽来获得较低的信息差错率。
正因为这个原因,扩频通信具有比较强的抗噪声干扰的能力。
CDMA技术是以扩频通信为基础的载波调制和多址接入技术,所以如何实现扩频部分对于整个CDMA系统的实现有着重要的影响。
2.1CDMA系统的关键技术
扩频技术是CDMA系统的基础,在扩频系统中,常使用伪随机码来扩展频谱,伪随机码的特性,如编码类型、长度、速度等在很大程度上决定了扩频系统的性能,如抗干扰能力、多址能力、码捕获时间。
因此要实现扩频部分,关键就是如何选择一个比较好的方法来实现PN码产生器。
而实现PN码产生器的难点就是实现其同步,即在接收端进行解扩所用的PN码和接收到的信号在发送时所用的PN码是同步的,这是扩频技术中的难点。
CDMA系统要求接收机的本地伪随机码与接收到的PN码在结构、频率和相位上完全一致,否则就不能正常接收所发送的信息,接收到的只是一片噪声。
若实现了收发同步但不能保持同步,也无法准确可靠地获取所发送的信息数据。
因此,PN码序列的同步是CDMA通信扩频模块的关键技术。
但是要真正成为一种商业应用的通信系统,还有很多技术问题需要解决,本文暂不做考虑。
2.2CDMA系统的基本结构
下图是标准的CDMA系统的基本原理图:
信号经信源编码后成为数字信号,经过纠错编码、卷积编码和交织等相关处理后送入调制器中,利用PN码发生器产生的高速PN码将数字信号变成码片,使得信号的传输带宽远大于信号本身的带宽以实现扩频通信,同时,为了使信号的传输与信道特性相匹配,必须用载波发生器产生的载波去调制扩频信号。
使其频率变为适合信道传愉的射频频段,将数字信号调制成模拟信号后通过放大器发射出去。
在接收端,利用下变频器将射频信号还原成中频信号,采用与发射端相同的信号处理技术再将信号还原成原始信号,从而达到数据通信传输的目的。
下面是我们根据标准的CDMA通信系统设计的我们系统中的发射机框图:
下面是我们系统的接收机框图:
整体的FPGA设计的CDMA通信系统如下:
第三章基于FPGA的CDMA系统设计及仿真分析
FPGA是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。
可以毫不夸张的讲,FPGA能完成任何数字器件的功能。
在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。
使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。
FPGA的这些优点使得FPGA技术在90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言的进步。
本设计主要利用了FPGA及VerilogHDL语言来设计CDMA数字基带发送接收系统。
4.1FPGA通信系统设计的注意点
对于通信系统的建模,除了外围的模拟电路的设计是整个大系统需要考虑外,更重要的是针对纯数字部分的输入、输出接口信号的要求,进行细致的研究。
对于数字通信系统,对于不同的VerilogHDL来建模有着不同的效果。
一般对于选择什么方法来进行数字通信的建模,从以下几个方面讨论研究[27]:
·
可行性的影响
对于以FPGA通用芯片为目标器件的建模和设计,受到输入信号性质的限制,对于一些速度要求较高的通信系统,由于现行的FPGA目标器件的限制,无法使用。
因此对于通信系统的VerilogHDL建模的可行性应在设计系统方案做充分考虑。
可靠性分析
对于通信系统来说,实现系统的可靠性指标是VerilogHDL建模的难点,这一点与实现硬件电路是相似的,用硬件描述语言,实现系统功能,有许多方法,实现建模的方法也可以不同,有时不同的建模风格和方式,可以得到相同的设计结果和相近的可靠性能,同时,对于组合逻辑电路来说,设计的可靠性,还要考虑组合逻辑电路的竞争和冒险现象和硬件延时问题。
效率的影响
系统效率的因素包括芯片资源的优化,软件程序运行的速度等。
从软件设计方面考虑,采用并行方式比串行运行方式运行速率高。
在FPGA设计,合理的引脚定义也是很重要的。
一个好的引脚定义可以充分利用芯片资源,而一个不好的引脚定义可能造成芯片资源的巨大浪费,甚至布线失败。
总的来讲,通信系统的性能可以根据公式来计算,采用波形级的仿真或通过硬件构成样机及进行测量来评估。
对于数字通信系统的VerilogHDL建模,其建模效果最终要经过一定方式的检验和评估,而检验的结果反过来促进其建模或程序设计的改进与完善。
4.2CDMA系统分模块简介、代码及仿真
发射机
分频器模块:
moduleclk_div
(clk_in,rst_n,clk_out);
parametercnt_top=10;
clk_in/clk_out=cnt_top
parameterwidth=4;
parameterduty=50;
inputclk_in;
inputrst_n;
outputclk_out;
regclk_out;
reg[width-1:
0]cnt;
always@(posedgeclk_inornegedgerst_n)
begin
if(!
rst_n)
cnt<
=0;
elseif(cnt==(cnt_top-1))
else
=cnt+1'
b1;
end
clk_out<
elseif(cnt<
(cnt_top*duty)/100)clk_out<
=1;
else
endmodule
(系统用的各路时钟)
(PLL模块产生2倍频信号,ROM的读取时钟)
仿真以输入的20M时钟分频得到10K数据信道串行传输时钟为例,可见设计完全正确:
四路用户GOLD序列产生模块(通过ROM寻址):
MATLAB代码:
clc;
clearall;
hgld=comm.GoldSequence('
FirstPolynomial'
[730],...
'
SecondPolynomial'
[73210],...
FirstInitialConditions'
[0000001],...
SecondInitialConditions'
Index'
1,'
SamplesPerFrame'
127);
gold1=step(hgld);
2,'
gold2=step(hgld);
3,'
gold3=step(hgld);
4,'
gold4=step(hgld);
其设计参数如下:
利用quartus的ROM表存储MATLAB生成的周期为127的gold序列,如下:
最终四路gold序列如下所示:
以一路仿真得到的gold码为例,如下图所示:
并串转换模块:
modulepar2ser2(clk,rst,in,out,stat,num,flags,bug);
//paralleltoserial
inputclk,rst;
input[3:
0]in;
outputout,stat,num,flags,bug;
regout,stat,num,flags,bug;
reg[1:
always@(posedgeclkornegedgerst)
begin
rst)out=0;
case(cnt)
2'
b00:
out=in[0];
b01:
out=in[1];
b10:
out=in[2];
b11:
out=in[3];
default:
endcase
end
always@(posedgeclk)
cnt=cnt+1;
always@(posedgeclk)
stat=in[0];
num=in[1];
flags=in[2];
bug=in[3];
固定一路用户数据为8’b00100110,仿真波形图如下,最下面一列为并串转换数据,倒数第二列为串行时钟,可见串行传输数据为00100110,因此串并转换设计通过。
GOLD序列与并串转换数据过异或门:
载波设置模块:
频率设置小模块:
modulefreq_set(clk,rst,fset);
output[9:
0]fset;
reg[9:
reg[9:
0]temp;
rst)
fset=64;
else
temp=fset;
fset=temp+temp;
正弦波选址(DDS)小模块:
modulecos_adr(clk,rst,adr,fset);
//cosfrequencyanditsset
input[9:
0]adr;
adr=0;
adr=adr+fset;
正弦波幅度步进小模块:
moduleamp_set(clk,sysclk,rst,in,out);
inputsysclk,clk,rst;
input[7:
output[7:
0]out;
reg[7:
reg[3:
0]cnt;
always@(posedgesysclkornegedgerst)
rst)out=in;
if(in>
127)out=127+(in-127)/cnt;
//positive
elseout=127-(127-in)/cnt;
//negetive
rst)cnt=1;
elsecnt=cnt+1;
PSK调制模块:
modulepskmod(clk,rst,seq,in,out);
inputclk,rst,seq;
0]in;
0]out;
out=0;
if(seq)
out=in;
out=~in;
仿真得到的2PSK调制波形如下:
可以看出在数据零一跳变点处波形相位发生180度突变,2PSK设计正确。
AWGN信道模拟10dB噪声数据:
y=round(wgn(1,1024,20));
fori=1:
1024
ify(i)<
0
y1(i)=-y(i);
else
y1(i)=y(i);
out=dec2bin(y1,8);
噪声波形如下:
其统计数据如下:
ValueCountPercent
0343.32%
1797.71%
2838.11%
3969.38%
4868.40%
5646.25%
6676.54%
7585.66%
8595.76%
9626.05%
10535.18%
11474.59%
12383.71%
13262.54%
14313.03%
15242.34%
16201.95%
17161.56%
18151.46%
19121.17%
20111.07%
2170.68%
2280.78%
2350.49%
2440.39%
2540.39%
2640.39%
2830.29%
2920.20%
3020.20%
3110.10%
3210.10%
3510.10%
3610.10%
接收机
相干解调模块:
乘法器输出过滤波,然后对输出符号位进行相关判决,得到解调出来的串行零一数据,最终仿真得到的串行接收数据如下:
其中seq_test1为发送端串行数据,seq_test3为发送端gold序列,seq_test2为接收端提取出的相应用户的gold序列,seq_test4为解调出来的串行数据,seq_test4与seq_test1完全一致,说明解调正确。
FIR数字滤波器设计:
FIR滤波器仿真结果如下,结果与理论设计一致:
串并转换:
moduleser2par2(clk,rst,in,out,flag);
//serialtoparallel
inputin;
outputflag;
output[3:
reg[1:
regflag;
out[0]=in;
out[1]=in;
out[2]=in;
out[3]=in;
always@(posedgeclkornegedgerst)
rst)flag=0;
if(cnt==2'
b11)flag=1;
elseflag=0;
仿真模拟四个用户数据,每个用户为8位二进制码,结果如下:
经过8*4*=64个串行时钟周期,输出数据稳定为100、84、100、68与输入数据一致,可见解调成功,加上之前的仿真,目前已完整地完成了本项目中关于cdma通信系统的设计,且仿真正确。
经实际烧录结果也与仿真基本一致,接下来便是关于VGA控制doodlejump的设计环节。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合课程设计报告CDMA部分 含FPGAverilog代码要点 综合 课程设计 报告 CDMA 部分 FPGAverilog 代码 要点
![提示](https://static.bdocx.com/images/bang_tan.gif)