10.2.1 ASK调制解调器的设计(1)
2010-08-10 13:10 雷伏容/李俊/尹霞 清华大学出版社 我要评论(0) 字号:T | T
《EDA技术与VHDL程序开发基础教程》第10章VHDL在通信和DSP,本章将基于VHDL硬件描述语言详细地介绍VHDL在通信和DSP系统中的应用,详细介绍幅度(ASK)调制解调器、运算器以及滤波器的设计方法,力求使读者掌握VHDL在通信和DSP系统中的设计方法。本小节为大家介绍ASK调制解调器的设计。
AD:
10.2 通信与DSP系统设计实例
本节将通过若干设计实例,详细介绍FPGA在数据通信领域和DSP系统中的应用,并给出了具体的VHDL程序。
10.2.1 ASK调制解调器的设计(1)
数字基带信号的功率谱从零频开始而且集中在低频段,因此只适合在低通型信道中传输。但是,实际的信道是带通型的,因此必须用数字基带信号对载波进行调制,使基带信号的功率谱搬移到较高的载波频率上才可以进行传输。本节着重介绍二进制幅度(ASK)调制解调器的设计。
1. ASK信号调制原理
数字信号对载波信号的振幅调制称为幅度调制,即ASK(Amplitude Shift Keying)。二进制幅度调制信号的码元可以表示为
其中,w0=2 f0为载波信号的角频率;A(t)是随基带调制信号变化的振幅,即
在数字信号处理中,该调制信号为矩形脉冲,其产生方法主要有两种。一种是利用乘法器实现矩形脉冲的载波输出,另一种是利用开关键控实现ASK信号的输出,如图10-2所示。
(点击查看大图)图10-2 ASK信号原理框图
(1) 乘法器实现
利用乘法器实现ASK信号的基本原理与传统的模拟电路相似,将基带信号A(t)和载波信号cosw0t相乘即可得到调制信号的输出。乘法器用来进行频谱搬移,相乘后的信号通过带通滤波器滤除高频谐波和低频干扰,带通滤波器的输出是振幅键控信号。
(2) 开关键控实现
所谓开关键控实现法,就是一个选通开关电路。只是选通信号的一端是调制信号,另一端是地,选通控制信号为基带信号。当基带信号为\时,选通正弦调制信号端;当基带信号为\时,选通接地端。由于振幅键控的输出波形是断续的正弦波,所以也被称为OOK调制。典型的实现方法是用一个开关来控制载波振荡器的输出来获得调制信号的输出。
2. ASK调制的VHDL设计 (1) ASK调制器内部结构图
图10-3所示为ASK调制器的内部结构。可以看出在输出端有一个与门负责控制是否输出调制信号,前面级联的多路选择器组成分频电路,用来实现发送\时的调制信号。
(点击查看大图)图10-3 ASK调制器内部结构
(2) ASK调制器电路符号
图10-4给出了ASK调制器的电路符号,其中,Q为信号输出端,CLK为触发时钟信号,MODULATION为基带信号。
图10-4 ASK调制器的电路符号
(3) ASK调制程序
ASK调制程序的实现方法是通过一个与门控制调制信号的输出或接地,具体的程序见例10-1。
【例10-1】ASK调制器的VHDL描述
? ? ? ? ? ? ? ? ?
-- Module : ASK modulation (modulation Unit) -- File : ASK.vhd -- Library : ieee,...
-- Description : It is a basic example of ASK
-- Simulator : Quartus 7.2 / Windows XP -- Synthesizer : Quartus 7.2 / WindowsXP
-- Author / Designer : Bernlee (bernlee@tsinghua.edu.cn)
modulation Circuit
?? -- Revision Number : 1
?? -- Date of Change : 28th March 2009
?? -- Modifier : Bernlee (bernlee@tsinghua.edu.cn) ?? -- Description : Initial Design ??
?? LIBRARY IEEE; --调用IEEE库 ??
?? USE IEEE.STD_LOGIC_1164.ALL; --声明程序包
?? USE IEEE.STD_LOGIC_ARITH.ALL; ?? USE IEEE.STD_LOGIC_UNSIGNED.ALL; ??
?? ENTITY ASK IS --ASK实体 ?? PORT(
?? CLK:IN STD_LOGIC; --系统时钟
?? START:IN STD_LOGIC; --开始调制信号
?? MODULATION:IN STD_LOGIC; --基带信号
?? Q:OUT STD_LOGIC --调制信号 ?? );
?? END ASK; --ASK实体结束 ??
?? ARCHITECTURE example OF ASK IS --ASK结构体
?? SIGNAL QQ:INTEGER RANGE 0 TO 3; --分频计数器
?? SIGNAL F:STD_LOGIC; --载波信号 ?? BEGIN ??
?? PROCESS(CLK) ?? BEGIN
?? IF CLK'EVENT AND CLK='1' THEN ?? IF(START='0') THEN ?? QQ<=0;
?? ELSIF QQ<=2 THEN --分频的阈值
?? F<='1'; ?? QQ<=QQ+1;
?? ELSIF (QQ=3) THEN --分频的阈值
?? F<='0'; ?? QQ<=0; ?? ELSE ?? F<='0'; ?? QQ<=QQ+1; ?? END IF; ?? END IF; ?? END PROCESS;
?? Q<=F AND MODULATION; --调制基带数据 ??
?? END example;

