基于DDS的AM调制器设计Word文件下载.docx
- 文档编号:22063970
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:19
- 大小:180.25KB
基于DDS的AM调制器设计Word文件下载.docx
《基于DDS的AM调制器设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于DDS的AM调制器设计Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
7、采用混合输入法连接各功能模块,完成整体电路设计。
利用实验箱上的D/A转换器将最后乘法运算电路输出的数字信号转换为模拟信号,能够通过示波器观察到波形。
8、对AM调制电路进行仿真,记录AM仿真波形。
9、利用示波器观察
改变时的波形。
10、尝试通过存储四分之一波形进入ROM而同样能生成完整的正弦波。
方案论证
直接数字频率合成(DDS)部分
DDS即DirectDigitalSynthesizer数字合成器,是一种新型的频率合成技术。
具有相对带宽大、频率转换时间段、分辨力高、相位连续性好等优点,很容易实现频率、相位和幅度的数控调制,其基本结构图如下所示:
累加寄存器的工作流程如下:
每当一个抽样时钟脉冲到来时,数字全加器将上个时钟周期内寄存器所存的值与FWORD相加,其和存入寄存器作为累加器的当前值输出。
当寄存器存满时,产生一次溢出使累加器置零,从而完成一个周期的动作。
在累加寄存器中,如果采用N位字长的数字寄存器来存储正弦波形一个周期内的抽样后的离散相位,这实际上是对
的相位区间进行间隔为
的线性量化,累加器的累加周期即是DDS合成信号的一个周期,包含
个时钟周期,因此,合成信号的频率为
。
累加寄存器的结果再与相位控制字(PWORD)相加,结果作为ROM的相位取样地址,这样就可以通过改变相位控制字实现调相。
ROM中有生成号的波形抽样值,可完成相位到幅度的转换。
AM调制部分
在标准幅度调制器(AM)中,设载波信号为:
,调制信号为:
,则标准调幅波信号为:
(1)
(2)
(3)
其中:
=
/
被成为调幅度,是调幅信号的一个重要参数,一般小于1,当其大于1时会出现过调幅。
基于表达式
(1),建立AM调制电路的数学模型如图:
为了简化电路,不妨设
,再由表达式(3)得到可以实现AM电路的结构图如下:
由于正余弦对于调制电路来说是完全等价的,故在本次试验中,我们用的都是正弦。
各子模块设计
DDS的设计(无ROM模块)
1、DDS电路的VHDL语言描述如下所示:
entityddsis--generic定义的量的值可在生成的模块中直接修改
generic(freq:
integer:
=1;
--产生频率字(FWORD)
phas:
=0);
--产生相位字(PWORD),我们电路中P=0
port(clk:
instd_logic;
--DDS中寄存器的控制时钟
datao:
bufferstd_logic_vector(11downto0));
--DDS的M位输出,ROM中的数据个数为4096
enddds;
architecturewkofddsis
signals:
std_logic_vector(23downto0);
--累加寄存器的N位输出
begin
s<
=s+phas;
process(clk)
begin
ifclk'
eventandclk='
1'
thens<
=s+freq;
endif;
--实现累加寄存功能
datao<
=s(23downto12);
--截断地址线,取前十位
endprocess;
endwk;
当时钟频率确定后,DDS的频率分辨力取决于累加寄存器的字长N,N越大其分辨力越高,我们一般取N的范围为24~32,本次试验我们取N=24。
但是由于ROM中存储数据的个数为4096,并且为了减小ROM的容量,M一般取10~16,我们取M=12。
2、合成模块如下:
LPM-ROM的设定
1、
用MATLAB生成一个mif文件。
MATLAB语言如下:
x=0:
1:
4095;
y1=round(511*sin(2*pi*x/4096));
-----ROM中存储整个波形表达式
y=[x;
round(511*sin(2*pi*x/4096))];
fid=fopen('
sin_data.mif'
'
w'
);
--建立了mif文件
fprintf(fid,'
%d:
%d;
\n'
y);
fclose(fid);
plot(x,y1);
gridon
将生成的sin_data.mif文件用记事本打开,在其中加上mif文件的头部说明,其格式如下:
DEPTH=4096;
WIDTH=10;
ADDRESS_RADIX=DEC;
--地址线用十进制来表示
DATA_RADIX=DEC;
--数据也用10进制表示
CONTENT
BEGIN
0:
0;
1;
2:
2;
……
4095:
END;
2、设定LPM-ROM
在元器库中选取LPM-ROM,设置ROM的信息,数据宽度为10bits,数据个数为4096;
设置ROM为寄存器输出,不需要时钟和异步清零信号;
指定ROM的初始化数据来源,选择刚刚所生成的mif文件。
然后点击“finish”即可生成ROM单元了。
3、直接数字频率合成器(DDS)的电路图如下所示:
4、仿真波形如下:
AM调制模块
1、AM调制运算电路VHDL语言描述如下:
entitymulplusis
generic(ma:
=7);
--产生调幅度
port(clk:
dataim:
insigned(9downto0);
--音频信号
dataic:
--载波信号
datao:
outsigned(9downto0));
--调制后信号
endmulplus;
architecturewkofmulplusis
signed(3downto0);
signalt:
signed(23downto0);
begin
s<
=conv_signed(ma,4);
--将
转换为有符号的四位二进制数
process(clk)
begin
ifclk'
then
t<
=(s*dataim+3577)*dataic;
--AM调制运算
datao<
=t(23downto14);
--取乘法运算结果前十位
endif;
endprocess;
该程序中值得注意的是,AM调制过程中的量化值1的值是由
来决定的。
我们的实验中,
为四位二进制数,其中最高位为符号位,故其最大值为7,而根据我们制作mif文件的程式可知,
的最大值为511。
因此,我们应将1量化取值为7*511=3577。
2、AM调制电路图如下:
由于AM调制信号的输出需要接到D/A转换器中去,所以我们需要给D/A转化器相应的接脚以心号。
因为我们所输出的数都是有符号数,所以D/A转换器的mode均接高电位,但是引脚不能直接接电源,要经过一个缓冲器wire。
3、仿真波形如下:
4、示波器输出波形如下:
频率计的设计
一、总体概念
频率计主要由信号控制模块,计数器模块,和显示模块构成。
我们将地址线的最高位接入频率计的计数器的时钟端,当地址线从000000000000到100000000000以及100000000000到000000000000分别为半个周期,在此一周期内正好读取了一个正弦周期的信号。
ENT端接周期为2秒的信号,因为计数器只在半个周期内计数(即在1秒内计数),从而得到被测信号在1秒内周期的周期个数,即被测信号的频率。
频率计总设计图如下所示:
其中输入clka为48Mhz信号clkb为由分频器输出的1hz信号,d[11]、d2[11]分别为音频信号和载波信号的最高位。
上图左下角落为一控制块,其中K接sw0,当sw0=0时,测试载波信号频率,当sw0=1时,测试音频信号频率。
二、频率计各分块设计
1、分频器
频率计的闸门信号的周期为2秒,因此需要一个分频器来发生信号。
signalc:
integerrange0to47999999;
process(clk)
if(clk'
)then
if(c=47999999)then
hhz<
=nothhz;
c<
=0;
elsec<
=c+1;
endif;
endprocess;
为了便于仿真验证,我们仅仿真了二分频和三分频,仿真波形如图:
2、计数器
本次实验中,我们采取了5个74160来计算频率,因此本频率计的量程为0~99999Hz。
当输入信号clkb=1时,开始计数,当clkb=0时,停止计数,并且同时对计数器清零。
3、锁存器
为了使电路的显示稳定,必须在计数器的输出与显示电路之间接一个锁存器。
锁存器VHDL语言描述如下:
process(en)
begin
ifen'
eventanden='
0'
qq0<
=q0;
qq1<
=q1;
qq2<
=q2;
qq3<
=q3;
qq4<
=q4;
因为计数器是在clkb=0的时候停止计数并且清零,所以我们必须将clkb下降沿到来时的数据存入锁存器当中,即锁存器的使能端信号en由clkb的下降沿触发。
4、显示电路
由于只能用一个显示译码器,我们必须采用动态显示。
其电路图如下所示:
电路中的LPM-MUX0为一个可编程的数据选择器,其控制信号为74160所构成的模5的输出信号(000~100),当sel[2..0]=000时,输出qq0[3..0],以此类推,当sel[2..0]=100时,输出qq4[3..0]。
sel信号同时也控制着一个3-8译码器,当sel[2..0]=000时,y[0]=0,频率计最低位亮,以此类推,当sel[2..0]=100时,y[4]=0,频率计最高位亮。
图中的reg20为锁存器,具体分析见上。
整个电路需要注意的是,模5计数器的频率要比较大,以防数字闪动。
三、频率计所测结果
在系统基准时钟为48MHz时,频率计测量值与理论值对比如下:
频率控制字
理论频率
测得频率
示波器显示频率
10
28.6102
28
28.6137
31
88.6917
88
88.7015
100
286.102
286
286.089
测量结果较为稳定,与理论值的差距在误差允许范围之内。
可认为频率计工作状态良好。
实现节省ROM空间的模块设计(四分之一波形)
通过观察可以发现原先全波形(4096个点)的mif文件中的很多数据时重复的,说明原先的波形精确度已经足够,在此基础上我们仅储存四分之一的波形来节省ROM的空间呢?
答案是肯定的,因为正余弦函数均具有极强的对称性,我们完全可以从仅储存四分之一波形数据(1024个点)来生成完整的波形。
LPM-ROM的设定与原先的相似,只需改变一下数据范围(0~1023)和周期范围(0~
)即可。
因此我们只需对原先的DDS模块进行修改即可,改后的DDS模块VHDL语言描述如下:
entityddsis
phas:
bufferstd_logic_vector(9downto0);
c:
outstd_logic);
s<
ifclk'
ifs(23downto22)="
00"
ors(23downto22)="
10"
thendatao<
=s(21downto12);
--第一、三个四分之一周期
elsedatao<
=nots(21downto12);
--第二、四个四分之一周期
c<
=s(23);
然后输出数值进行幅值取补即可,该模块为comb,其VHDL语言描述如下:
entitycombis
port(d:
instd_logic_vector(8downto0);
c:
do:
bufferstd_logic_vector(9downto0));
endcomb;
architecturewkofcombis
do(9)<
=c;
--符号位保持不变
do(8downto0)<
=notdwhenc='
elsed;
实现节省ROM空间的模块设计(四分之一波形存储)的总电路图如下所示:
仿真波形如下所示:
方案编译、仿真和下载
1、编译
当编译某个文件时,先将这个文件置顶,然后按键,若有错误,修改软件指出的错误;
若无错误,即编译成功。
2、波形仿真
新建“Vectorwaveformfile”文件,然后选择“insert”,改变输入信号的值,保存文件,点击processing里面的simulatingtool。
当进行timing仿真时,在simulationinput里面选择刚刚建立的vwf文件,勾选overwritesimulationinputfilewithsimulationresults,点击Start,即开始仿真,再点击open,即可观察波形;
当进行functional仿真时,在Start前,需先点击generatefunctionalsimulationnetlist,形成功能文件,然后再重复timing仿真的动作即可。
3、下载
首先对置顶文件进行编译,选择assignments里面的device里面的device&
pinoptions,修改unusedpins为asinputtri-stated。
然后选择assignments里面的pins,在对应地引脚的location中输入适当的引脚号(管脚分配),输入完成后,对刚才的文件再编译一次。
最后点击
,勾选program/configure后即可start。
实验中遇到的问题及解决方法
在做频率计的时候,五位数码管总是模糊不清地跳动。
我们认为是问题的原因是数据的不断跳动。
可是我们模5所采取的是48Mhz的频率,由于人体的视觉暂留,应该不会出现这样的状况,而且电路的逻辑设计也没有什么问题。
于是我们重连了一下电路,显示即正常了。
实验的收获及感悟
与第一个实验不同的是,这个实验的原理是我们之前接触地比较少的,但是它又是与我们专业更为贴近的。
虽然上书面课程的时候知道AM调制是什么,可是等到需要自己将之付诸实验时,才发现自己完全不懂。
一个通信原理中最基本的AM调制,要完成它还是挺不容易的呀……
发现了自己的浅薄,发现了自己动手能力不咋地,发现了自己对于二进制还是如此地懵懵懂懂。
一周的实验,有欣喜也有痛苦。
痛苦的是发现自己真的很挫很挫,让人有种及其强烈的挫败感与自卑感;
欣喜的是经过一周的痛苦,居然也小有成果,至少明白了这比较原始的解决最基本问题的方法。
要说收获,应该不仅仅时DDS计数,抑或一堆加法乘法电路。
新技术层出不穷,也许以后我们已经用不到这样的技术,这个实验却我看到的更是自己先前的不足。
我们的专业是个与时俱进的专业,可是我们的课堂依然是几年前的老套路。
书面知识只要正确对待,我们都可以学好,但是伴之发展的技术呢?
因此,在以后的学习过程中,我们在应付考试的同时,更要去深入了解最最根本的基础、原理等,并且时常关注专业技术的发展动态,并不一定要掌握,但至少要了解。
参考文献
1、《EDA设计实验指导书》——南京理工大学电子技术中心
2、《数字逻辑电路与系统设计》——蒋立平,电子工业出版社
3、《EDA技术与VHDL语言》——潘松,黄继业,清华大学出版社
4、《通信电路原理(第二版)》——董在望,高等教育出版社
5、《电子线路综合设计》——谢自美,华中科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DDS AM 调制器 设计