2DPSK信号产生器的设计3.doc

上传人:土8路 文档编号:10292006 上传时间:2021-05-05 格式:DOC 页数:12 大小:104KB
返回 下载 相关 举报
2DPSK信号产生器的设计3.doc_第1页
第1页 / 共12页
2DPSK信号产生器的设计3.doc_第2页
第2页 / 共12页
2DPSK信号产生器的设计3.doc_第3页
第3页 / 共12页
2DPSK信号产生器的设计3.doc_第4页
第4页 / 共12页
2DPSK信号产生器的设计3.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《2DPSK信号产生器的设计3.doc》由会员分享,可在线阅读,更多相关《2DPSK信号产生器的设计3.doc(12页珍藏版)》请在三一文库上搜索。

1、2DPSK信号产生器的设计一、 设计任务及要求: 根据通信原理,设计一个2DPSK的基带信号调制器,即用基带信号(二进制)对载波信号(正弦波)进行调制,使载波信号的相位跟着基带信号进行变换,产生符合要求的2DPSK信号进行发送。 要求:载波信号频率为2.2MHz。信息码元速率自定,可以用模拟电路、数字电路、单片机、FPGA等方法进行设计,给出波形仿真结果。二、 设计方案:2DPSK调制器可用模拟法如图(a),也可用键控法如图(b)。 方案一:键控法,用数字电路来设计,方案框图如下:方案二:框图如下:由于FPGA系统频率可以达到几百兆赫兹,故系统时钟经过一定的分频可以得到载波信号正弦波信号发生器

2、的要求频率2.2MHz。信息码经过差分运算后的输出信号控制正弦波信号发生器的不同相位输出(类似键控法),便可得到设计要求的2DPSK信号。方案三:框图如下此方案由信息码进行差分编码后得到的差分码控制两个不同相位的正弦信号发生器的不同时间输出便可以得到2DPSK信号。 FPGA具有可编程逻辑器件现场可编程的灵活性,又具有门陈列器件功能强、高集成度和高速度的优点,因此在要求功能越来越强,体积越来越小,功耗越来越低的现代通信系统设计中被越来越广泛的应用。而且这学期我们学习了FPGA的相关知识EDA技术使用教程,且方案二只用设计一个正弦波信号发生器,因此选择方案二。三、 详细设计原理及实现方法二进制差

3、分相移键控常简称为二相相对调相,记作2DPSK,是数字通信系统中常用的调制方式之一,2DPSK信号为模拟信号,而FPGA只能处理数字信号,因此,需对正弦信号采样再经过数模变换得到所需的2DPSK信号,FPGA 装 订 线 产生正弦信号的采样值。(一) 差分编码的设计 2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。 假设相对载波相位值用相位偏移表示,并规定数字信息序列与之间的关系为 绝对码和相对码是可以互相转换的,其转换关系为 由此转换关系可知,在FPGA应用中,用VHDL语言中的XOR(异或)

4、语句即可实现差分编码。(二) 正弦波信号发生器的设计 在FPGA程序设计应用中,用VHDL语言列出正弦波信号的抽样值即可实现正弦波信号发生器的设计,亦可通过定义宏功能模块建立正弦波喜欢发生器的LPM储存器的宏功能块来实现。在本设计中,对正弦波每个周期采样100个点,即采样速率为原正弦信号频率的100倍,因此可以将原正弦信号不失真地恢复出来。由于要求正弦波信号的频率为2.2MHz,而且对正弦波每个周期采样100个点,所以要求系统时钟频率应该为2.2MHz100=220MHz。 这样即可实现 设计要求的 载波为2.2MHz的正弦波信号。(三) 分频器的设计由于对正弦波每个周期采样100个点,即10

5、0个正弦波周期内包含100个系统周期,故信息码的频率应为系统频率的1/100,故应设计出一个信息码的同步信号,搞信号应为系统频率的100分频,及要求设计1个100分频器,100分频器可用VHDL很容易实现。(四) 总体VHDL语言编程设计由上述分析可用VHDL语言编程实现2DPSK信号发生器的设计,程序及注释如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity MY2DPSK2 isport(rst, kongzhi,clk :in std_logic; -FPGA时钟输入 x :i

6、n std_logic; -信息码输入 z,aa_out :out std_logic; -相对码输出 coderate1: out std_logic; -同步信号 value1 :out std_logic_vector(7 downto 0); - 正弦波抽样值输出 end;architecture behav of MY2DPSK2 issignal xx,yy,aa:std_logic; signal q1,q2:std_logic_vector(6 downto 0); signal w:integer range 0 to 99; signal count100:std_logi

7、c_vector(6 downto 0); signal coderate:std_logic;beginprocess(clk) -100分频进程 信号同步begin if(clkevent and clk=1) then if kongzhi=1 then if(count100=1100011) then count100=0000000; coderate=not coderate; coderate1=coderate; else count100=count100+1; end if; end if;end if;end process;process(clk) - 差分编码进程

8、beginif rst=1 then aa=0;elsif (clkevent and clk=1 ) then aa=1; if w=0 then w=1; xx=xx xor x; - 现在XX是相对码 z=xx xor x; - 现在z是相对码 yy=xx xor x; - 现在YY是相对码elsif w=99 then w=0; else w=w+1; end if;end if;-Z=YY;aa_out=aa;end process;process(clk) -控制正弦波的不同相位输出beginif clkevent and clk=1 then q1=q1+1; if (q1=11

9、00011 and yy=0) then -相对码YY为0时输出0正弦波信号q1=0000000; elsif (q1=1100011 and yy=1) thenq1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1

10、value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1value1

11、value1value1value1value1value1value1value1value1value1value1value1value1value1value1null; end case;end if;end if;end process;end ;四、 设计仿真结果及分析:对上述程序进行仿真,设置好CLK的频率为220MHz,由于正弦波信号发生器是对一个正弦波周期的100个抽样点,故可以算出正弦波信号的频率为220MHz/100=2.2MHz。仿真结果及其分析如下:图一图二图三仿真波形分析如下:由仿真结果图一可以看出信息码X为0011110011100011111010101010

12、1时,差分码输出为Z为0010100010111101010011001100110011这完全符合理论的差分码的编码规律,说明差分码的功能已经实现。由仿真结果图二可以看出当相对码为0时,正弦波输出由127到135、143、151这正是设计要求的0相位的正弦波,而且有仿真可以看出,每个信息码内有100个正弦波信号的抽样点,符合设计的要求。由仿真结果图三可以看出当相对码为1时,正弦波输出由127到135、143、151这正是设计要求的180相位的正弦波,而且有仿真可以看出,每个信息码内有100个正弦波信号的抽样点,符合设计的要求。故由仿真结果看出,本设计已经达到设计任务的要求。五、 设计过程中遇

13、到的问题及其解决:1、在控制正弦波输出的时候原来用的语句是 if clkevent and clk=1 - then if yy=0 then q1=q1+0000000; elsif yy=1 then q1=q2+0110010; else q1=q1+1; then if q2=0000000 then q2=0000001 ; elsif q2=1100011 then q2=0000000; else q2 =q2+1; end if ;用此语句控制正弦波的输出使得输出的正弦波在很多地方都是输出一段数值为119的数据,因为次语句在输出正弦波的时候有一段时在等待q2=0000000或者

14、等待q2=1100011,故造成这样的后果。后来经过检查,该用一下语句实现正弦波的控制输出:if clkevent and clk=1 then q1=q1+1; if (q1=1100011 and yy=0) then -相对码YY为0时输出0正弦波信号q1=0000000; elsif (q1=1100011 and yy=1) thenq1=0110010; -相对码YY为0时输出180正弦波信号 end if; end if;这样就解决了上面所说的问题,经过仿真可见,输出的正弦波是连续的。2、在差分编码程序的设计中,原来用100分频后的时钟作为差分编码程序的触发时钟,语句如下:pro

15、cess(coderate) beginif (coderateevent and coderate=1 )then xx=xx xor x; z=xx xor x; yy=xx xor x; end if;end process;但是仿真结果却得不到相应的相对码,后来经过多次的试验和仿真得到一下语句能得到正确的结果:elsif (clkevent and clk=1 ) then aa=1; if w=0 then w=1; xx=xx xor x; - 现在XX是相对码 z=xx xor x; - 现在z是相对码 yy=xx xor x; - 现在YY是相对码elsif w=99 then

16、 w=0; else w=w+1; end if;六、 心得与体会 通过这次课程设计我学到了很多,首先对通信中的2DPSK通信方式有了更加深入的理解,更加深刻理解了通信原理的其他各种方式,加深了通信原理各种理论知识的掌握,也感觉实践和理论的学习是相互互补的,通信原理的课程学习让我懂得了理论知识,课程设计使我感性上认识了这些知识。 通过这次课程设计,我意识到了我对这门课掌握还有一定的不足,还有许多的知识我不了解;有的是一知半解;有的即使原理懂了,但在应用方面却是丝毫不知。所以在今后的学习中,我会更加努力,不仅要学好理论知识,还要把它联系到实践中去,使两者很好的结合起来,互补互助。 通过这次课程设计,还增加了我对专业知识的学习兴趣,我更加有信心去学好接下来的专业课程,在这次课设中,还加强了我们的团队合作精神与动手能力。这在课本知识中是很难学到的,所以这种机会对我们来说是难得的,应当好好珍惜。 总之通过这次课程设计我觉得做任何事情都要努力,只有努力才能将事情很好的完成。七、 参考文献:1、 CPLDFPGA的开发与应用 徐志军,徐光辉编著 北京:电子工业出版社,2002 2、EDA技术实用教程 (第三版) 潘松 黄继业 编著 科学出版社 3、通信原理(第6版) 樊昌信 曹丽娜 编著 国防工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1