电子测量大作业
学 专 学 学 指 导 教 院: 电信学院 业: 通信工程
号: 生:
朱云
2015.12
师:
DDFS正弦信号源
5-11在Multiism环境下,参考图5-3-1,设计一种基于DDFS的正弦信号源,给出原理图和仿真实验结果。
一、DDS 的工作原理
DDS 主要由四部分构成[:相位累加器 ( PA) 、只读存储器 ( ROM 波形表) 、 数 / 模转换器(DAC) 、低通滤波 器 ( LPF) , 它 们 在 参 考 时 钟 fc 的 作 用 下 统一工作, 如图 1 所示。
图1 DDFS基本结构图
二、电路设计
1.设计总概
此处所设计的DDFS电路是基于单片机的,用两片74LS238四位全加器和一片74LS374锁存器构成相位累加器,用单片机的ROM实现波形的存储,用VDAC实现8为数模转换,用巴特沃斯滤波器实现低通滤波器。下面是分模块介绍此电路设计。
2.相位累加器
如图2所示,用两片74LS238四位全加器和一片74LS374锁存器构成相位累加器,其
中八路连接高低电平的开关形成频率控制字K,K为8位,两片74LS238四位全加器并联,其中下面一片的进位输出接上一片的进位输入实现8位累加器,74LS374控制相位的输出,其时钟端接一个1KHz的方波,作为DDFS中的时基频率fc。
图2 相位累加器电路
3.波形存储器
如图3所示,用单片机里的ROM实现波形存储。
图3 单片机实现波形存储
8位P1口作为8位波形地址的输入,8位P3口作为波形数据的输出。关于单片机里的波形查找程序,可以用汇编或者C51语言实现,且都不难,但是由于用汇编语言需要建立一个正弦信号一个周内256个相位点的幅度值数据,相当麻烦,所以我在此处选用了C51语言实现此功能,亦给出汇编程序(除正弦查找表外)。 C51程序:
#include
void main() {
while(1) {
shuchu=abs(256*sin(2*3.1415926*dizhi/256));} }
汇编程序: ORG 0200H LOOP: MOV R0,P1
MOV DPTR,#TAB MOV A,RO
MOVC A,@A+DPTR MOV P3,A LJMP LOOP
TAB: ;正弦函数表
4.模数转换部分
如图4所示,用Multisim里的VDAC8为数模转换器实现数模转换, 参考电压Vref=5V。
图4 8位数模转换电路
5.低通滤波器
如图5所示,此处采用5阶巴特沃斯低通滤波器实现对波形的平滑处理。考虑到信号输出中最大频率为1KHz,滤波器的具体参数设置如下所示:通带截频f1=1kHz,阻带截频f2=1.5kHz,通带指数-1dB,阻带指数-26dB。
图5 低通滤波器部分
三、仿真结果
1.信号输出频率
fc*Kfo?N2,此处K为频率控制字,8位,最大为255,fc为时
基频率,为1kHz,N等于8.
2.当K=1时仿真结果,如图6是低通滤波前的阶梯波,图7是低通滤波后的正弦波,由于
Mutisim里仿真波形出来的很慢所以这里只显示出不到一个周期的波形,但可以计算出输出频率为3.8Hz,与理论值3.9Hz很接近。改变前面八个开关的状态,即改变K值,可以改变输出频率。