通信系统原理实验
- 格式:docx
- 大小:1.88 MB
- 文档页数:21
通信系统原理实验
2013-2014
通信系统原理实验报告
学院实验学院
专业电子信息工程
姓名1 高一
学号1 11521312
姓名2 段然
学号2 11521104
班级11电信1
日期2014年5月29日
指导教师殷卫真老师
第一类实验
实验一基于DDS的调制波形产生
一、实验要求及目的:
构建DDS以及m序列,并在此基础上设计FSK,ASK,PSK等调制波形,了解通信系统原理的相关知识,学习采用第三方软件MODELSIM对ALTERA平台的设计进行仿真。并且修改testbench,并仿真出FSK,ASK,PSK等调制波形。
二、实验环境:
ALTERA Quartus II 8.0平台和第三方软件MODELSIM C:\Users\Administrator\Desktop\asd\通源实验截图\psk图2.bmp se 6.5进行仿真。
三、实验原理:
DDS全称Direct Digital Frequency Synthesizer(直接数字频率合成),是根据奈奎斯特采样定律,从连续信号的相位出发将一个正弦信号取样、量化、编码,形成一个正弦函数表,存于ROM中。合成时,通过改变相位累加器的频率控制字来改变相位增量。相位增量(步长)不同,一个正弦周期内的采样点数不同。在时钟频率即采样频率不变的情况下,通过相位增量的改变来实现输出频率的改变。我们知道,对于正弦信号发生器,它的输出可以用下式来描述:
其中S out是指该信号发生器的输出信号波形,f out指输出信号对应的频率。上
式的表述对于时间t是连续的,为了用数字逻辑实现该表达式,必须进行离散化处理。用采样时钟clk进行抽样,令正弦信号的相位:
在一个clk周期T clk内,相位的增量为:
f指clk的频率,把2 分割成2N份,每个clk的相位增量:
其中
clk
称k为频率控制字,得到输出频率:
ASK:幅移键控 (Amplitude Shift Keying)
ASK指的是振幅键控方式。这种调制方式是根据信号的不同,调节正弦波的幅度。
幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上无载波传送。那么在接收端我们就可以根据载波的有无还原出数字信号的1和0。对于二进制幅度键控信号的频带宽度为二进制基带信号宽度的两倍。
幅移键控法(ASK)的载波幅度是随着调制信号而变化的,其最简单的形式
是,载波在二进制调制信号控制下通断,此时又可称作开关键控法(OOK)。多电平MASK调制方式是一种比较高效的传输方式,但由于它的抗噪声能力较差,尤其是抗衰落的能力不强,因而一般只适宜在恒参信道下采用。
FSK:频移键控(Frequency-shift keying)。
就是用数字信号去调制载波的频率。是信息传输中使用得较早的一种调制方式,它的主要优点是: 实现起来较容易,抗噪声与抗衰减的性能较好。在中低速数据传输中得到了广泛的应用。
它是利用基带数字信号离散取值特点去键控载波频率以传递信息的一种数字调制技术。
PSK:相移键控 (phase-shift keying)
在某些调制解调器中用于数据传输的调制系统,在最简单的方式中,二进制调制信号产生0和1。载波相位来表示信号占和空或者二进制1和O。对于有线线路上较高的数据传输速率,可能发生4个或8个不同的相移,系统要求在接收机上有精确和稳定的参考相位来分辨所使用的各种相位。利用不同的连续的相移键控,这个参考相位被按照相位改变而进行的编码数据所取代,并且通过将相位与前面的位进行比较来检测。
四、实验内容:
首先在Quartus II上把电路连接好:
图1-3-1
再生成.vho文件在modelsim SE 6.5中打开,配置并修改testbench文件,将工程中的work库以及cycloneii库配置好相应的路径,从而使在quartusII 上编写好的工程可以在modelsim中进行功能仿真,从而达到预期的效果。
为了能够更好的解释系统,我们分别将ASK、FSK、PSK的部分程序代码展示如下:
FSK:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FSK IS
port(--FW_0 :in std_logic_VECTOR(7 DOWNTO 0);
--FW_1 :in std_logic_VECTOR(7 DOWNTO 0);
x :in std_logic;
FWORD : OUT STD_LOGIC_VECTOR(15 DOWNTO 0)
);
END FSK;
architecture EVEN of FSK is
CONSTANT A:STD_LOGIC_VECTOR(15 DOWNTO 0):="0000000001111111";
CONSTANT B:STD_LOGIC_VECTOR(15 DOWNTO 0):="0000000000011111";
BEGIN
FWORD<=A WHEN X='0'
ELSE B;
END;
PSK:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY PSK IS
port(
X:in std_logic;
A:in std_logic_VECTOR(7 DOWNTO 0);
B:in std_logic_VECTOR(7 DOWNTO 0);
DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END PSK;
architecture EVEN of PSK is
BEGIN
DOUT<=A WHEN X='0'
ELSE B;
END;
ASK:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ASK IS
port(
X:in std_logic;
A:in std_logic_VECTOR(7 DOWNTO 0);
DOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END ASK;
architecture EVEN of ASK is
CONSTANT b:STD_LOGIC_VECTOR(7 DOWNTO 0):="10000000"; BEGIN
DOUT<=A WHEN X='0'
ELSE B;
END;