




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年纺织品检验员考试解析与展望试题及答案
- 国际美术设计师行业动态与试题及答案
- 大学马原期末试题及答案
- 2024年纺织行业专业水平考试试题及答案
- 干部廉洁自律试题及答案
- 当前市场下的纺织品设计师考试试题及答案
- 2024年技术标准改革对纺织的影响试题及答案
- 商标法的试题及答案
- 公务写作考试题及答案
- 提升审美能力2024年国际商业美术设计师考试试题及答案
- 药物临床试验质量管理规范解读
- 膀胱癌健康宣教课件
- X线腰椎临床意义
- 零星工程框架协议书范本
- 绽放的梨花(2024年山东滨州中考语文试卷记叙文阅读试题)
- 2024-2025学年人教版英语七年级下册Unit 5 Here and now Section B 1a - 1d 教案
- 中国银行课件模板7
- 2025年桉树种植与林业碳汇交易市场建设合作合同2篇
- DB3301T 1118-2023 秀珍菇设施栽培技术规程
- 美容院会员卡使用合约
- 中国邮政广西分公司招聘笔试冲刺题2025
评论
0/150
提交评论