基于DDS的虚拟信号发生器LabVIEW程序设计*
2016-08-18毛啊敏王红旗万各各李林伟
毛啊敏,王红旗,万各各,李林伟
(河南理工大学电气工程与自动化学院,河南 焦作 454003)
基于DDS的虚拟信号发生器LabVIEW程序设计*
毛啊敏,王红旗,万各各,李林伟
(河南理工大学电气工程与自动化学院,河南焦作454003)
针对传统信号发生器存在的成本高、功能单一、电子线路复杂等缺点,设计了一种基于频率合成技术的虚拟任意信号发生器。通过动态链接库(DLL)与下位机设备DDS-3X25进行通信,基于“模块化”和事件结构的设计思想,用LabVIEW编程实现了基本波形、任意波形、噪声叠加、波形数据载入、波形数据量化转换和线性插值等程序模块。实验结果表明,该设计不仅能产生纯净和叠加噪声的正弦波、方波、三角波和锯齿波等基本波形,而且可以输出手绘的任意波形,验证了设计的有效性。
LabVIEW,信号发生器,频率合成技术,DDS-3X25,动态链接库
0 引言
在电子测量领域中,信号发生器被广泛应用于教学实验和科学研究中,而且很多设备经常需要提供不同类型的信号源,尤其是任意波信号发生器,然而大多信号发生器采用硬件来实现,价格昂贵、不易调试、研发时间长,因此,设计一种理想的信号发生器是当前所要研究的内容[1]。
虚拟仪器是在传统仪器的基础上发展而来的,完全继承了传统仪器的所有优点,并超越了传统仪器,因此,基于LabVIEW的信号发生器成为了当前研究的热点[2-3]。例如,杨大伟[4]等人研究的基于FPGA的DDS多信号发生器的设计与实现完成了正弦波、锯齿波、方波、三角波的产生与控制;陈洋[5]等人设计的基于DDS和DSM的多通道信号源的设计与实现可以输出多路正余弦信号;梁赫西[6]等人研究的基于FPGA与LabVIEW的DDS任意信号发生器设计实现了任意波形的产生。但是,他们研究的基于LabVIEW的信号发生器功能不太完善,而且频率调节范围窄,程序实现起来比较复杂,易受到计算机通信接口通信速率和D/A转换器转换频率的限制,所以设计一台功能强大而易于人机交互的虚拟信号发生器是一个值得研究的问题[7]。
本文基于LabVIEW和DDS-3X25设计的虚拟信号发生器由仪器DDS-3x25通过USB接口连接到计算机上,由上位机LabVIEW控制不仅可以产生1 Hz~25 MHz的基本波形和任意波形,通过探头在示波器上进行显示,而且输出频率、速度、精度都比较高,可以根据要求实时进行改进,还可以进行外触发、对波形计数,通过调节参数满足用户需求,操作简单,携带方便,实时性高,易于扩展。
1 数字频率合成原理
DDS是一种新的全数字频率合成技术,由相位累加器、波形存储器、D/A转换器和低通滤波器组成,本文是基于采样定理,利用上位机LabVIEW产生所需要的波形数据。首先对生成的波形进行采样,然后将与离散相位所对应的二进制幅值保存到波形存储器作为查找表,在每个时钟脉冲输入时,累加一次频率控制字,相位累加器的输出也增加一个步长的相位增量,将相位量化的输出作为地址,查询波形存储器,然后得到对应的波形量化幅值,再经过D/A转换器把幅值量化序列转化为模拟量信号,最后经滤波器滤波产生输出波形。
设有一个频率为f0余弦信号为
式中:A为振幅,φ0为初始相位。由于振幅和初始相位不会随着时间而变化,因此,频率与相位关系就确定了,当A=1,φ0=0时,则得到相位
现以一采样频率fs对余弦信号进行采样,对应的离散信号序列为
离散相位序列为
则相邻两个采样值之间的相位增量为
现将一个周期的相位2π分为M等份,令每一份为
若每次相位的增量为δ的d倍,其中d和M为正整数,则由式(5)、式(6)得信号频率为
由香农采样定理知,采样频率在不小于信号频谱中最高频率的2倍时才能不失真地恢复原始号,则
一般在DDS中,取M=2N,则输出频率f0与系统时钟频率fs之间的关系为:
式(9)为DDS方程,称d为频率控制字,N为相位累加器的字长[8]。当fs固定时,只要改变频率控制字d,则可以输出不同的频率。其基本原理图如图1所示。
图1 DDS-3X25基本原理图
2 虚拟信号发生器的LabVIEW程序设计
2.1虚拟信号发生器的前面板设计
LabVIEW前面板提供了用户与信号发生器的交互,信号发生器前面板包括波形控制和波形显示部分,用户可以通过选择和调节前面板上的控件来模拟传统仪器的操作,通过鼠标或键盘实现对信号发生器的控制。虚拟信号发生器的前面板设计界面如图2所示。
图2 虚拟信号发生器前面板
其中,数值输入控件用于信号的频率、振幅、相位等属性的设置;信号类型用于选择正弦波、方波、锯齿波、三角波和手绘波;噪声类型用于选择高斯白噪声、均匀白噪声和无噪声;触发方式分为上升沿和下降沿;信号类型用于标示基本波形和手绘波形,只在手绘波时点亮;XY图形控件用于显示输出波形[9]。
2.2虚拟信号发生器程序设计
程序采用事件结构进行编写,与前面板控件的动作对应,包含超时、信号属性值改变、XY图光标移动、XY图鼠标按下、XY图鼠标释放、手绘完成值改变、触发值改变和退出值改变7个事件,分别实现了基本波形和手绘任意波形的生成和输出,及触发和计数等功能。信号发生器的总体设计方案如图3所示。
图3 信号发生器程序流程图
2.2.1基本波形程序设计
基本波形程序用于生成和输出正弦波、方波、三角波和锯齿波等基本波形。该部分程序包括波形数据生成,噪声叠加,波形数据提取,量程转换和波形数据下载等功能模块,图4为基本波形模块的程序流程图。通过调节前面板的信号类型、频率、幅值、相位和占空比等参数可以输出25 M带宽内任意频率、相位、±3.5 V的正弦波、三角波、锯齿波和任意占空比的方波信号[10]。对应的labview程序如图5所示。
图4 基本信号发生器基本流程图
设备DDS-3X25的垂直分辨率为12位,其双极性输出的波形幅值为[-3.5 V,3.5 V]的电压,因此,在波形数据下载到设备之前,需要把幅值为[-3.5 V,3.5 V]的电压信号转换成0~4 095的波形数据,即:y=2 047-585x,其中,x是电压幅值,取值范围为[-3.5 V,3.5 V],y是波形数据,取值范围为[0,4 095],然后通过移位寄存器得到波形数据,最后利用动态链接库函数DDSDownload将波形数据下载到示波器的缓冲区中用于输出显示。
图5 基本信号发生器的程序框图
2.2.2手绘波形模块设计
与基本波相比,手绘波主要实现了任意波形的绘制,其基本流程图如图6所示,对应的光标移动事件和手绘完成事件的程序框图如图7所示。
图6 手绘波程序流程图
在手绘波的光标移动事件中,首先将光标在XY图中的实时位置通过坐标至XY映射函数进行转换,然后将光标移动的点插入数组进行输出显示。为保证手绘波在XY图中能获得有效的波形数据,在插入数组前需要进行光标移动处理,先将含有XY值的簇按名称解除捆绑获得X和Y值,并满足式(10)
在手绘完成事件中,为提高示波器上波形信号显示的连续性,需要对获得的手绘波形图(XY图)进行线性插值运算,主要是把XY图中手绘好的任意波形中的坐标转换成等时间间隔的波形数据。之后就可以实现目标波形的生成。
图7 手绘波形程序框图
此外,本程序还通过动态链接库函数DDSGet-Measure进行参数配置实现对波形频率测量和计数,以及通过动态链接库函数DDSSetTrigger的参数配置实现触发等功能[11-13]。
3 测试结果
本文基于LabVIEW设计了虚拟信号发生器,其中,仪器DDS-3X25通过USB接口与计算机相连,由LabVIEW上位机设计的信号发生器界面控制仪器DDS-3X25产生波形,然后通过探头在示波器上进行波形显示。下页图8中以正弦波为例说明,其他波形可以得到类似的结果。
在上位机波形页面中,波形类型设置成正弦波,幅值为2 V,频率为1 Hz,偏移量设置为0,相位为0。从示波器显示的图8(a)中可以看出,显示结果与设置预期结果相同。这也说明本设计的合理性。以下波形原理同图8(a)。
图8(c)中波形设置与图8(a)、图8(b)的不同之处为添加了高斯噪声。所得的波形与预期是一致的。
图8(d)是手绘波的显示波形,当上位机页面选择手绘波功能时,通过光标画出波形,在示波器上的显示的波形与所画的波形基本相同。
图8 实验结果
4 结论
本文利用DDS技术基于LabVIEW2013事件结构设计出一台功能完善的虚拟信号发生器,通过软件设计和硬件的结合,该虚拟信号发生器不仅可以实现正弦波、三角波、锯齿波、方波、手绘波的输出,以及可以对频率从1Hz~25MHz、幅值、相位、偏移量、占空比的调节,而且可以添加噪声以及对噪声幅值与标准差进行调节,还可以进行外触发、对波形频率测量与计数。用户界面友好,操作简单方便,用户可根据需求对参数进行设定,在生产实践中经济实用,而且还可以进一步进行扩充,具有很好的发展前景。
[1]周晶晶,吴文全,孙金明,等.基于虚拟仪器系统的多功能信号发生器设计[J].现代电子技术,2014,37(17):121-124.
[2]陈锡辉,张银鸿.LabvIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2010.
[3]郑对元.精通LabVIEW虚拟仪器程序设计[M].北京:清华大学出版社,2012.
[4]杨大伟,杨秀芳,陈剑虹.基于FPGA的DDS多信号发生器的设计与实现[J].西安理工大学学报,2013,29(4):439-443.
[5]陈洋,管国云,聂在平.基于DDS和DSM的多通道信号源的设计与实现[J].测井技术,2013,37(1):76-79.
[6]梁赫西,周密,谢虎城.基于FPGA与LabVIEW的DDS任意信号发生器设计[J].微型机与应用,2015,34(2):25-28.
[7]宋晓梅,李根,闫树柏.基于LabVIEW和单片机的信号发生器的设计[J].电子测量技术,2014,37(7):93-97.
[8]范海英,杨嘉,张金凤,等.基于LabVIEW的虚拟信号发生器和示波器设计[J].实验科学与技术,2013,11(4):43-45.
[9]武一,戎向向.基于LabVIEW9.0的虚拟信号发生器的设计[J].计算机技术与发展,2013,23(2):182-184.
[10]赵华,张代远.基于LabVIEW的虚拟任意信号发生器设计[J].计算机技术与发展,2013,23(7):219-221.
[11]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.
[12]李辉,刘鲲.基于LabVIEW的虚拟信号源设计[J].中国西部科技,2015,14(3):26-27.
[13]张黎,蔡亮.基于LabVIEW的虚拟信号发生器的设计与实现[J].应用天地,2014,33(1):82-85.
LabVIEW Program Design of Virtual Signal Generator Based on DDS
MAO A-min,WANG Hong-qi,WAN Ge-ge,LI Lin-wei
(School of Electrical Engineering&Automation of Henan Polytechnic University,Jiaozuo 454000,China)
Aiming at the disadvantages existing in the traditional signal generator of high cost,single function and complicated electronic circuits,this paper designs an virtual arbitrary signal generator based on the frequency synthesis technology.Through the dynamic link library(DLL)and the lower machine equipment DDS-3X25 communication,based on the"modular"and event structure design idea,using LabVIEW programming to achieve the basic waveform,arbitrary waveform,noise adding,waveform data loading,waveform data quantization transformation and linear interpolation program modules.Experiment results show that the program design can not only produce pure or adding noise sine wave,square wave,triangular wave and sawtooth wave and other basic waveform,and can also output hand-painted arbitrary waveform,verify the effectiveness of the design.
LabVIEW,signal generator,frequency synthesis technology,DDS-3X25,dynamic link library
TP216
A
1002-0640(2016)07-0130-05
2015-06-12
2015-07-27
*
国家自然科学基金(61104119);河南理工大学博士基金资助项目(B2010-60)
毛啊敏(1990-),女,河南安阳人,硕士研究生。研究方向:检测技术与自动化装置。