版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1 2ASK的FPGA中的实现21.1 2ASK基本原理31.1.1 2ASK信号的时域表达式与波形31.1.2 2ASK信号的功率谱密度31.2 2ASK调制解调原理方法61.2.1 2ASK调制原理方法61.2.2 2ASK解调原理方法71.3 2ASK调制解调的FPGA的实现与调试71.3.1 2ASK的FPGA实现方案71.3.2 2ASK调制部分的代码设计101.3.3 2ASK解调部分代码设计11功能仿真121.3.5 板上调试141.4总结161.5 思考题181.6 参考文献191 2ASK的FPGA中的实现2ASK(振幅键控调制)是根据载波信号的有无传输数字信号”0”和”
2、1”的一种最基本的数字调制方式。1.1 2ASK概述及原理1.1.1 2ASK的发展及应用振幅键控法(2ASK)最初用于电报系统,(用在传递莫斯Morse电码上面,莫斯在早期的“无线”应用上广为采用,通过开关的长度传递码元)但由于它在抗噪声的能力上较差,故在数字通信中用得不多。不过,二进制振幅键控常常作为研究其他数字调制方式的基础,因此,熟悉它仍然是必要的。ASK的应用:ASK和OOK通信协议通常用在近距离无线通信应用中,例如家庭自动化、工业网络、无线基站、遥控无钥匙进入系统(RKE)以及胎压监测系统(TPMS)。OOK特别适合电池供电的便携式设备使用,因为这样的系统在发送0时无需发送载波,因
3、而可以节省功率。不同的应用涉及的载波频率可能变化很大,例如在某些基站的低频有线通信中约为2MHz,在使用ISM频段(工业、科学和医疗)的短距离无线通信中约433MHz。各种无线技术,包括蓝牙、ZigBee、Wi-Fi在当前的消费电子行业中已经取得了一定进展。这些协议提供了设备之间安全通信的机制,通常都工作在2.4GHz的ISM频段,并且组合使用频移键控(FSK)、相移键控(PSK)和幅移键控(ASK)调制技术。这些技术提供的安全性包括通信的信道跳频和扩频模式。这种方案很难被侦听到,因此具有很高的安全性,并能改善抗噪声性能。所有这些方法在发送0和1的时候都会消耗发送功率。遗憾的是,这些协议还是具
4、有相对较高的复杂性以及较高的硬件实现成本,特别是当安全性和高抗噪声性不是硬性要求的时候。ASK缺点:它的抗噪声能力较差,尤其是抗衰落的能力不强,因而一般只适宜在恒参信道下采用,只能用在像电缆一类的恒参信道中。1.1.2 2ASK基本原理1) 2ASK信号的时域表达式与波形 设信息源发出消息代码是由二进制符号1、0组成的序列,假定符号1出现的概率为P,符号0出现概率为1-P,它们彼此独立。即: (1-1) (1-2)其中为码元宽度,则单极性不归零脉冲序列,则根据幅度调制的原理,一个二进制的振幅键控信号可以表示成一个单极性矩形脉冲序列与一个正弦型载波的相乘,即: (1-3)令,则二进制振幅键控信号
5、可表示为: (1-4)其中为基带数字信号。 2ASK信号的波形:图1-1 二进制振幅键控(2ASK)信号的波形示意图2 )2ASK信号的功率谱密度二进制振幅键控信号的时域表达式为 (1-5) 其中:且为随机变量2ASK信号的功率谱密度的表达式二进制振幅键控信号的时域表达式为 (1-6) 其中:且为随机变量则为一随机的单极性矩形脉冲序列,设的功率谱密度为,的功率谱密度为,则有 (1-7) 由上式可知,可由确定。因是单极性的随机矩形脉冲序列, 的功率谱密度为: (1-8)设的傅立叶变换为,根据矩形波的频谱特点,对于的所有整数有 ,所以 (1-9) 将式(1-9)代入式(1-
6、7)得矩形波调幅时2ASK的功率谱密度为 (1-10) 当概率时,上式可写成 (1-11)又因为的频谱为所以 (1-12) (1-13) (1-14)由以上各式可得: (1-15)2ASK信号的功率谱的特点: (1)2ASK信号的功率谱由连续谱和离散谱两部分组成 (2)2ASK信号的带宽是基带脉冲波形带宽的两倍1.2 2ASK调制解调原理方法1.2.1 2ASK调制原理方法2ASK信号的产生有两种方法:一种是通过调制信号与载波相乘来实现相乘电路法;另外一种是通过用调制信号控制开关电路的痛断来选择载波的有无实现的通-断键控法;(1)相乘电路法: 图1-2 二进制振幅键控(2ASK)信号的产生方法
7、之一:相乘电路法(2)通-断键控法: 图1-3 二进制振幅键控(2ASK)信号的产生方法之二:键控法 图1-3中,当基带信号为高电平时,开关电路如图所示,当基带信号为低电平时,开关处于断开状态,二进制振幅键控信号状态为零,此时二进制振幅键控信号又常称为通-断键控信号(OOK信号)。1.2.2 2ASK解调原理方法2ASK(OOK)信号的解调通常有两种方法:一种是相干解调;另外一种是包络检波的非相干解调。(1)非相干解调法(包络检波法) 图1-4 二进制振幅键控信号的非相干接收系统方框图此方案的优点是:不需要提取载波,实现简单。(2)相干解调法图1-5 二进制振幅键控信号的
8、相干接收系统方框图此方案优点:系统误码率比非相干解调的要低,但相差并不大。1.3 2ASK调制解调的FPGA的实现与调试1.3.1 2ASK的FPGA实现方案 2ASK的FPGA的实现在同一种调制解调方案下,可以用不同的实现方法来实现,接着本章就介绍2ASK实现的的各种方法以及介绍本文实现的方法。1.2ASK调制实现方案2ASK信号的产生实现比较简单,如图1-6:图1-6 2ASK调制信号的产生框图输入信号是01信号,通过二选一开关,当信号为零时直接输出0,当信号为一时,使信号和载波相乘,这样就可以产生2ASK调制信号。载波可以用正弦波,也可以用数字载波。如用正弦波作为载波,则在解调的时候必须
9、用上面原理介绍的解调方法。如选用数字载波,则在解调时只需要通过对一个信号周期内的调制信号进行脉冲计数,便可实现解调。2. 2ASK解调实现方案以正弦波为载波的2ASK解调在原理部分已经介绍,在此不再赘述。下面介绍以数字信号为载波的2ASK信号的解调。1)计数器法解调方案解调框图如下:图1-7 以数字信号为载波的2ASK信号解调框图时钟计数器进行以信号周期为周期的循环计数,为判别模块提供判别时刻,调制信号计数器也是以信号周期为周期的循环计数器,将判别时刻的计数值送入判别模块进行判别,由此实现解调。2)同步采样解调方案同步采样法的解调原理框图如下: 图1-8 提取载波同步后调制信号采样的原理框图解
10、调思想:根据2ASK调制信号的特点,即:在高电平调制的地方有载波,而低电平调制的地方没有载波。所以可以通过载波同步信号采样,即可恢复出调制信号,但是采样时刻要和数据位同步,在这里是通过DPLL数字锁相环实现了与载波的信号锁相后,再利用锁相后信号的下降沿采样调制信号,即可实现了2ASK的解调。3. 2ASK实现方案的选择根据前面的分析,可以知道。用数字信号为载波来实现2ASK相对容易很多,原理也简单。传统的以正弦波为载波的2ASK,实现起来可以增进对通信原理的理解。两种实现方法各有各自的优点,本次实验从容易的开始做,因此选用数字载波。 对于2ASK解调方案的选择:方案一:通过计数器实现解调,整体
11、实现起来比较简单,但其只能实现调制信号为固定长度的解调,使用起来非常局限。方案二:通过采样解调,整体电路设计比方案一稍难,但是其可以对任何信号进行解调,克服了方案一的缺点。(这里是直接把调制端的载波信号连接到解调模块的)经过方案比较,两种方案都比较容易在FPGA中实现,但考虑到对通信原理中调制解调原理的理解以及其实用性,这里采用方案二解调。1.3.2 2ASK调制部分的代码设计module two_ASK(clk,reset,en,sig_S,out_rdy,carriers,modata); input clk; input reset;input en; output modata;out
12、put carriers;output sig_S,out_rdy; reg 1:0 cnt; reg carriers; wire modata; reg sig_S,out_rdy; reg2:0 addr; reg2:0 count; parameter COUNT=3'd7; always (posedge clk)begin:initial_controlif(reset) begin addr<=3'd0; count<=3'd0; endelse if(en) begin count<=count+1; if(count=COUNT) b
13、egin addr<=addr+1; endelse addr<=addr;out_rdy<=1; endendalways (posedge clk)begin:Red_sigif(en) case(addr) 4'd0:sig_S<=0; 4'd1:sig_S<=0; 4'd2:sig_S<=1; 4'd3:sig_S<=0; 4'd4:sig_S<=0; 4'd5:sig_S<=1; 4'd1:sig_S<=1; 4'd7:sig_S<=1; endcase
14、end/ 下面实现载波产生 always(posedge clk) begin if(reset)begin cnt<=2'b00; carriers<=0; endelse if(en) cnt<=cnt+1; carriers<=cnt1;end assign modata=sig_S&carriers;endmodule程序的前面一部分是产生01信号,后面的是产生载波,然后是使01信号和载波相乘,实现了调制。 2ASK解调部分代码设计module ASK_two(clk,en,reset,Kmode,carriers,pll_carriers,mo
15、data,demodata); input clk,reset,en; input modata,carriers; input 2:0Kmode; output demodata,pll_carriers; reg demodata; Dpll u1(.fout(pll_carriers), .se(), .clk(clk), .reset(reset), .enable(en), .Kmode(Kmode), .fin(carriers); always(negedge pll_carriers) begin if(reset) demodata<=0;elsebegin if(!m
16、odata) demodata<=0;else demodata<=1;endendendmodule为了使提高解调采样数据的准确性,这里用数字锁相环Dpll对载波相位锁定后,用pll_carriers下降沿正好是在modata数据比特的中心采样,能够减少解调的误码率。(DPLL的Verilog代码作为附件放在最后面)。1.3.4功能仿真1)调制部分代码的功能仿真图1-9 调制部分功能仿真如图3-4所示,sig_S为01信号,modata为调制后的信号,观察波形,很容易可以验证仿真结果正确2)整体的功能仿真整体的功能仿真是通过顶层模块调用调制模块和解调模块,实现整体的仿真。顶层模块
17、代码如下:module ASK_ding(clk,reset,en,sig_S,Kmode,mo_rdy,carriers,pll_carriers,modata,demodata); input clk,reset,en;input 2:0Kmode;output sig_S;output carriers,pll_carriers;output modata;output mo_rdy; output demodata; two_ASK U_mo ( .clk(clk), .reset(reset), .en(en), .sig_S(sig_S), .out_rdy(mo_rdy), .c
18、arriers(carriers), .modata(modata) ); ASK_two U_demo ( .clk(clk), .en(en), .Kmode(Kmode), .reset(reset), .carriers(carriers), .modata(modata), .pll_carriers(pll_carriers), .demodata(demodata) );Endmodule对顶层模块进行仿真,结果如图3-5图1-10 整体功能仿真其中cnt为时钟计数器,k为调制信号计数器,sig_S为01信号,modata为已调信号,demodata为解调后信号,观察上图,可知道
19、代码仿真正确,实现了2ASK的调制解调。1.3.5 板上调试板上调试代码如下:module ASK_ding_chipscope(clk,sig_S,mo_rdy,carriers,pll_carriers,modata,demodata ); input clk;output sig_S;output carriers,pll_carriers;output modata;output mo_rdy; output demodata; wire reset,en; wire2:0Kmode;/for chipscope wire 35:0 control0; wire 35:0 contro
20、l1; wire 4:0 async_out; wire 4:0 mydata;assign reset=async_out0;assign en=async_out1;assign Kmode2:0=async_out4:2; assign mydata0=sig_S; assign mydata1=carriers;assign mydata2=pll_carriers;assign mydata3=modata;assign mydata4=demodata;ASK_ding ask(.clk(clk), .reset(reset), .en(en),.sig_S(sig_S),.Kmo
21、de(Kmode),.mo_rdy(mo_rdy),.carriers(carriers),.pll_carriers(pll_carriers),.modata(modata),.demodata(demodata);my_icon icon(.CONTROL0(control0), .CONTROL1(control1) );my_ila ila(.CONTROL(control0), .CLK(clk),.DATA(mydata),.TRIG0(carriers);my_vio vio(.CONTROL(control1), .ASYNC_OUT(async_out);Endmodule
22、板上调试需要添加三个核,icon,vio和ila,需要添加clk的引脚约束,如图1-11图1-11 clk引脚约束添加完约束后可以通过ise进行实现和产生bit流文件,下载到V-2板上便可进行chipscope在线调试。调试结果如下Vio核波形图1-12 vio核波形这里使用vio核主要是想看各个使能端口信号的作用和做开关模拟操作。经检验,结果符合要求。Ila核波形图1-13 ila核波形用ila核来看信号波形,从图中可以看出,实现了2ASK信号的调制与解调。解调信号虽然有一定的延时,但结果正确。这个延时是因为判别模块的判别时刻较信号开始时刻延时5个时钟周期,所以解调信号就如图中那样。1.4总
23、结在本文设计中遇到的主要问题的2ASK解调部分的实现,开始是用计数法实现解调,虽然可以正确的解调,但其有很大的局限性:如果一个系统设计好了只限于特定的信号的解调(即每个信号的长度是一个特定数字)。为了克服这一弊端,之后想到用同步采样解调法,实现的时候要考虑到载波时钟的同步(文中使用的DPLL数字锁相环来实现的)。完成本文设计需要对通信原理调制解调特别是2ASK的原理及相关知识点要非常熟练,同时本文是建立在对FPGA熟练使用基础上,这就需要大家对数字电路和FPGA设计很熟悉。2ASK分析方法是最基本的,也是其他数字调制的理论基础。此次重在学习2ASK调制解调的原理方法的基础上实现简单的数字载波的
24、2ASK的调制解调。结合本文所做的工作,后续还需要完善的地方是:1. 模拟高频载波:调制信号用正弦信号,对整个ASK原理理解是非常好的,也便于对整个数字调制解调系统的理解。2.本次ASK调制解调只涉及到二进制的方案,当然还有多进制振幅键控(MASK)调制解调需要后续完成(提高信息传输速率),特别是典型的四进制振幅键控(QASK)。1.5 思考题 1. 除了文中提到的以及实现方式,还有没有其他的实现方式? 2. 结合文中解调方案中,是否可以把计数器法解调不限制与信号的固定长度? 3. 本文只是2ASK的一个功能实现,如果应用的实际的调制解调电路中还有哪些需要考虑?4. 2ASK性能指标主要有哪些
25、,如何在实际电路中提高这些性能?5. 2ASK调制解调与其他数字调制解调的思想共同点有哪些?1.6 参考文献1 EDA先锋工作室薛小刚,葛毅敏.Xilinx ISE 9.x FPGA/CPLD设计指南M .北京:人民邮电出版社,20072 樊昌信,徐炳祥,吴成柯等通信原理(第5版)M. 北京:国防工业出版社,20013 常红霞基于FPGA的QDPSK调制解调技术的研究及实现.中国期刊网,20074 Samir Palnitkar,夏宇闻,胡燕祥等Verilog HDL数字设计与综合(第二版)M北京:电子工业出版社,20045 FPGAxst.pdf 20076 XilinxVirtex-2 U
26、ser Guide.,2007附录:DPLL的verilog代码1.顶层模块 module Dpll(fin,fout,se,clk,reset,enable,Kmode);input fin,clk; input reset,enable; /reset高电平复位,enable高电平有效input 2:0Kmode; /滤波计数器的计数模值设定output fout; /fout是锁频锁相输出output se;wire idout,ca,bo;wire 14:0N;xor_pd u1(.a(fin),.b(fout),.y(se);kcounter u2(.Kclock(clk),.res
27、et(reset),.dnup(se),.enable(enable),.Kmode(Kmode),.carry(ca),.borrow(bo);idcounter u3(.IDclock(clk),.reset(reset),.inc(ca),.dec(bo),.IDout(idout);counter_N u4(.clk(clk), .fin(fin), .reset(reset), .count_N(N);div_N u5(.clkin(idout),.n(N),.reset(reset),.clkout(fout);endmodule2.异或鉴相器module xor_pd(a,b,y
28、);/异或门鉴相器input a,b;output y;reg y;always (a or b)begin y=ab;end endmodule3.加减脉冲计数器module kcounter(Kclock,reset,dnup,enable,Kmode,carry,borrow);input Kclock; /系统时钟信号input reset; /全局复位信号,高电平复位input dnup; /鉴相器输出的加减控制信号input enable; /可逆计数器计数允许信号,高电平有效input 2:0Kmode; /计数器模值设置信号output carry; /进位脉冲输出信号outp
29、ut borrow; /借位脉冲输出信号wire carry,borrow;reg 8:0Count; /可逆计数器reg 8:0Ktop; /预设模值寄存器/根据计数器模值设置信号Kmode来设置预设模值寄存器的值always (Kmode) begin case(Kmode) 3'b001:Ktop<=7; 3'b010:Ktop<=15; 3'b011:Ktop<=31; 3'b100:Ktop<=13; 3'b101:Ktop<=127; 3'b110:Ktop<=255; 3'b111:Kto
30、p<=511; default:Ktop<=15; endcase end /根据鉴相器输出的加减控制信号dnup进行可逆计数器的加减运算always (posedge Kclock or posedge reset)begin if(reset) Count<=0; else if(enable) begin if(!dnup) begin if(Count=Ktop) Count<=0; else Count<=Count+1; end else begin if(Count=0) Count<=Ktop; else Count<=Count-1;
31、 end endend /输出进位脉冲carry和借位脉冲borrowassign carry=enable&(!dnup)&(Count=Ktop);assign borrow=enable&dnup&(Count=0);endmodulemodule idcounter(IDclock,reset,inc,dec,IDout);/脉冲增减模块input IDclock,reset,inc,dec;output IDout;reg IDout;reg inc_new,dec_new,inc_pulse,dec_pulse;reg delayed,advance
32、d,Tff;always (posedge IDclock)begin if(!inc) begin inc_new<=1; inc_pulse<=0; end else if (inc_pulse) begin inc_new<=0; inc_pulse<=0; end else if (inc&&inc_new) begin inc_pulse<=1; inc_new<=0; end else begin inc_pulse<=0; inc_new<=0; endend always (posedge IDclock)begi
33、n if(!dec) begin dec_new<=1; dec_pulse<=0; end else if (dec_pulse) begin dec_new<=0; dec_pulse<=0; end else if (dec&&dec_new) begin dec_pulse<=1; dec_new<=0; end else begin dec_pulse<=0; dec_new<=0; endend always(posedge IDclock)begin if (reset) begin Tff<=0; delayed<=1;advanced<=1; end else begin if (inc_pulse) begin advanced<=1;Tff<=!Tff; end else if(dec_pulse) begin delayed<=1; Tff<=!Tff; end else if (Tff=0) begin if(!advanced) Tff<=!Tff; el
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西中医药大学《货币金融学》2025-2026学年期末试卷
- 上海音乐学院《社会语言学》2025-2026学年期末试卷
- 徐州工程学院《数值分析》2025-2026学年期末试卷
- 上海科创职业技术学院《中国近现代外交史》2025-2026学年期末试卷
- 通化医药健康职业学院《免疫学》2025-2026学年期末试卷
- 山西工程科技职业大学《普通逻辑学》2025-2026学年期末试卷
- 上海对外经贸大学《创新创业导论》2025-2026学年期末试卷
- 邢台新能源职业学院《电气工程基础》2025-2026学年期末试卷
- 七台河职业学院《社会学概论(1)》2025-2026学年期末试卷
- 上海海事大学《公司战略与风险管理》2025-2026学年期末试卷
- 2026年安徽粮食工程职业学院单招职业技能考试题库附答案详细解析
- 3.31中小学安全教育日校内安全校外安全主题班会模板
- DBJ-T36-073-2026 江西省装配式建筑评价标准
- 2026年全国教育工作会议精神学习传达与贯彻落实指南
- 劳务工奖惩制度
- 投资项目《项目建议书》《可性研究报告》等编制服务方案投标文件(技术方案)
- 5.1《阿Q正传》课件+2025-2026学年统编版高二语文选择性必修下册
- 孟德尔豌豆杂交实验(一)2025-2026学年高一下生物人教版必修2
- 2026年及未来5年市场数据中国公募基金行业市场全景评估及投资策略咨询报告
- 矿泉水安全生产管理制度
- 中国储备粮管理集团有限公司真题
评论
0/150
提交评论