ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:17.96KB ,
资源ID:10220807      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10220807.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的PSK调制系统实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的PSK调制系统实验报告.docx

1、基于FPGA的PSK调制系统实验报告实验题目:基于FPGA的PSK调制系统 专业班级: 学生姓名: 指导教师: 设计时间: 基于FPGA的PSK调制系统一、实验目的1.掌握利用原理图输入法设计电路的方法,掌握QuartusII的层次化设计方法。通过PSK调制系统的设计,熟悉用EDA软件进行电路设计的详细流程,以及在硬件上的应用。2.掌握绝对码、相对码的概念以及它们之间的变换关系和变换方法。 3.掌握用键控法产生2PSK信号的方法。 4.掌握相对码波形与2PSK信号波形之间的关系、绝对码波形与2DPSK信号波形之间的关系。 二、实验要求利用实验板具有模拟信号处理的功能,设计一个移相键控信号发生器

2、。 要求利用板上的8位DIP开关设置基带信号码(8bit)。 板上的DAC送出己调信号(正弦波),对8bit基带信号循环调制。要有用于观察的同步脉冲输出。传输速率1200bps。为简单起见,载波频率也是1200Hz。为简单起见,已调信号的相位和基带信号码的夫系柬用绝对调相方式。即基带信号为l,己调信号的相位相对于参考相位改变180度。基带信号为0,已调信号的相位与参考相位相同。三、实验内容1、PSK调制原理相移键控(Phase Shift Keying,PSK),它是受键控的载波相位按数字基带脉冲的规律而改变的一种数字调制方式。这种以载波的不同相位直接表示相应数字信息的相位键控,通常被称为绝对

3、移相方式。当基带信号为二进制数字脉冲序列时,所得到的相位键控信号为二进制相位键控,即2PSK,它的表达式为式中,(t)由数字信息“0”“1”控制。在绝对移相中,因为(t)选用的参考相位基准就是未调制的载波,所以(t)就是载波的绝对值。一般说来,数字信息为“1”时,(t)=0,数字信息为“0”时,(t)=。即如图所示2、系统总体设计系统的结构框图3、系统详细设计1 分频器设计根据题目中载波频率小于30kHZ的要求,生成载波信号的正弦信号发生器选择16位累加器,则其需要的时钟在30kHZ以上即可。因此,设计中对20MHZ的系统时钟进行512分频(39KHZ)和16384分频()。512分频所得时钟

4、作为正弦信号发生器的时钟,16384分频所得时钟则作为整个系统的基带信号。VNDL具体设计见附录一。通过VHDL包装生成的分频器模块及其波形仿真图如下面两图所示。分频器模块分频器模块波形仿真结果2 正弦信号发生器设计DDS(Direct Digital Synthesizer)具有较高的频率分辨率,可以实现频率的快速切换,并且在频率切换时能保持相位的连续,很容易实现频率、相位、幅度的数字调制。本系统的正弦信号发生器模块就是基于DDS技术设计的。DDS原理图如下:DDS基本结构上图中M为相位累加器的位数。N为信号数据的位数。F为频率控制字。fclk 为系统的时钟。由DDS原理知其基频为:fSIN

5、 = fclk/2M也即是设计的正弦信号发生器的精度为fSIN。由以上知,当输入的频率控制字为F时,输出正弦波的频率为:fout = F* fSIN = F*fclk/2M基于以上DDS原理,系统选择16位的累加器。一个周期正弦波取64个采样点,在Excel表格中可以用下拉单元格的方式迅速生成地址,地址范围为063,即波形表中每种波形每周期取64点。之后输入公式“=sin(A1/64)*2*”,再利用下拉单元格的方式,得到各个地址单元所对应得正弦函数值。以上得到的正弦函数表往往不能被D/A转换器直接利用,需要将其置映射到D/A转换器所能接受的数据空间内。设计中所用D/A转换器为8位,其数据空间

6、是0255,可以利用公式“=*(1+B1)”来映射数据,影射后的数据为小数,还须对其取整,输入公式 “=INT(C1)”。然后复制所得数据,在Quartus II平台中生成hex文件。由以上可得,系统需要使用6位地址线8位数据线的ROM作为数据存储器。时钟为512分频(约为39KHZ)所得信号。具体电路图如图10所示。正弦信号发生器电路图设计时将频率控制字设置为8192。也即输出的正弦波频率为。仿真结果如图所示。正弦信号发生器模块波形仿真结果3 PSK模块设计PSK模块仿真结果如图PSK模块仿真波形4 数模转换本系统数模转换器采用DAC0832,数模转换模块如下图18所示。输出的模拟量与输入的

7、数字量(DN-1*2N-1+D0*20)成正比,这就实现了从数字量到模拟量的转换。输入可有28(=256)个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,只能是256个可能值中的一个。本系统要求输出量是电压,而DAC0832输出的是电流量,所以还必须经过一个外接的运算放大器转换成电压,这里选用OP07集成运放,此运放具有极低的输入失调电压、极低的失调电压温漂能长期稳定工作等特点。图18 D/A转换模块系统总电路3: 源程序清单1、分频器程序LIBRARY IEEE; USE USE USE ENTITY clkdiv IS PORT(clk : IN STD_L

8、OGIC; -clk_div2 : OUT STD_LOGIC; -clk_div4 : OUT STD_LOGIC; -clk_div8 : OUT STD_LOGIC; -clk_div16 : OUT STD_LOGIC;-clk_div32 : OUT STD_LOGIC;-clk_div256 : OUT STD_LOGIC;clk_div512 : OUT STD_LOGIC; clk_div16384 : OUT STD_LOGIC ); END clkdiv; ARCHITECTURE rtl OF clkdiv IS SIGNAL count : STD_LOGIC_VECT

9、OR(13 DOWNTO 0); BEGIN PROCESS(clk) BEGIN IF (clkevent AND clk= 1 ) THEN IF(count=1 ) THEN Count 0 ); ELSE Count = count +1; END IF ; END IF ; END PROCESS; -clk_div2 = count(0); -clk_div4 = count(1); -clk_div8 = count(2); -clk_div16 = count(3); -clk_div32 = count(4);-clk_div256 = count(7);clk_div512

10、 = count(8);clk_div16384 = count(13);END rtl;2、加法器程序library ieee;USE ADDER16 IS PORT( A : IN STD_LOGIC_VECTOR(15 DOWNTO 0); B : IN STD_LOGIC_VECTOR(15 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );END ADDER16;ARCHITECTURE behav OF ADDER16 IS BEGIN S=A+B;END behav;3、寄存器程序LIBRARY IEEE;USE REG32B

11、IS PORT( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(15 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) );END REG32B;ARCHITECTURE behav OF REG32B IS BEGIN PROCESS(LOAD,DIN) BEGIN IF LOADEVENT AND LOAD = 1 THEN DOUT = DIN; END IF;END PROCESS;END behav;4、ROM程序LIBRARY ieee;USE altera_mf;USE ;ENT

12、ITY DATAROM IS PORT ( address : IN STD_LOGIC_VECTOR (5 DOWNTO 0); inclock : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END DATAROM;ARCHITECTURE SYN OF datarom IS SIGNAL sub_wire0 : STD_LOGIC_VECTOR (7 DOWNTO 0); COMPONENT altsyncram GENERIC ( clock_enable_input_a : STRING; clock_enable_o

13、utput_a : STRING; init_file : STRING; intended_device_family : STRING; lpm_hint : STRING; lpm_type : STRING; numwords_a : NATURAL; operation_mode : STRING; outdata_aclr_a : STRING; outdata_reg_a : STRING; widthad_a : NATURAL; width_a : NATURAL; width_byteena_a : NATURAL ); PORT ( clock0 : IN STD_LOG

14、IC ; address_a : IN STD_LOGIC_VECTOR (5 DOWNTO 0); q_a : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ); END COMPONENT;BEGIN q BYPASS, clock_enable_output_a = BYPASS, init_file = , intended_device_family = Cyclone II, lpm_hint = ENABLE_RUNTIME_MOD=YES, INSTANCE_NAME=ROM1, lpm_type = altsyncram, numwords_a = 64

15、, operation_mode = ROM, outdata_aclr_a = NONE, outdata_reg_a = UNREGISTERED, widthad_a = 6, width_a = 8, width_byteena_a = 1 ) PORT MAP ( clock0 = inclock, address_a = address, q_a = sub_wire0 );END SYN;5、PSK模块程序LIBRARY IEEE;USE AP_SK IS PORT( SIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); K,A,P : IN STD_LOGIC; SOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END AP_SK;ARCHITECTURE behav OF AP_SK ISBEGINprocess(A,K,P,SIN)BEGIN IF K=0 THEN ELSIF P=0 THEN SOUT = SIN; ELSE SOUT=NOT SIN; END IF;END PROCESS;END behav;四、实验结果PSK调制测试结果五、参考书目1、潘松 黄继业 EDA技术实用教程 科学出版社 2006年9月

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1