- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VS2008任意波形生成软件设计与开发
基于VS2008任意波形生成软件设计与开发
摘 要
本文介绍了一种任意波形生成软件的开发和设计,主要应用了VS2008开发工具,依据时域采样定理,可以实现基本波形和自定义波形的采样,支持对波形进行编辑,比如对某一段波形翻转、镜像、删除等;同时可以对波形进行数学运算,比如两个波形的加减乘除;生成的波形可以保存为文件,或者通过USB发送到波形发生器。此软件极大地提高了波形发生器的可用性,解决一些要求复杂的项目需求。
【关键词】任意波形 VS2008 时域采样定理 波形发生器
1 引言
任意波形发生器作为信号源的一种,在通信、电子等领域的设备研发、生成、测试中起到非常重要的作用。目前,任意波形发生器广泛采用DDS(Direct Digital Synthesizer)技术,DDS采用查找表的方式,将存储在存储单元中的波形数据按照一定的次序取出,按照一定频率,通过控制电路将数据进行D/A转换,最后形成模拟信号输出。这种波形发生器由于是全数字化,具有转换速度快、输出频率稳定、噪声低等特点。其工作原理如图1所示。由图示可以知道,任意波形发生器的源波形都是存储在存储单元中,但是由于任意波形发生器的硬件限制,本机无法快速生成任意波形,必须借助于计算机,通过计算机软件生成任意波形数据,然后下发到波形发生器中,再由波形发生器输出波形。因此,任意波形生成软件具有不可替代的作用,本文将主要介绍软件相关的设计与开发。
2 任意波形生成软件设计及开发
2.1 软件基本架构及开发工具介绍
任意波形生成软件主要由数据初始化、波形建立和波形应用三个部分组成,基本架构如图2所示。
数据初始化主要根据用户设定值初始化采样点数和波形周期,从而建立绘图窗口。
波形建立部分主要包括两个功能:生成波形功能和编辑波形功能,用户通过生成波形功能,可以快速生成基本波形(例如正弦波、方波等)、按公式建立波形、手绘波形,也可以按点建立波形;用户通过编辑波形功能,可以对选择的波形进行编辑(翻转、循环移动、叠加波形、按点编辑等);
通过波形应用,用户可以保存设计的波形,以便于下次调用;也可以通过USB与波形发生器连接,将波形下发到机器,从而生成相应信号。
为实现以上功能,软件设计将选用VS2008开发工具,VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。提供了可视化的设计界面,控件应用非常方便,使用Visual Studio 2008可以高效开发Windows应用程序。
2.2 波形生成原理及方法
本软件波形的生成方法主要依据时域采样定理:频带为F的连续信号f(t)可用一系列离散的采样值f(t1)、f(t1±Δt)、f(t1±2Δt)、...来表示,只要这些采样点的时间间隔Δt≤1/2F,便可根据各采样值完全恢复原来的信号f(t)。根据图1所示,存储单元存储的波形信号是按一定时间顺序的波形幅度值,所以任意波形生成软件最后生成的波形也将是按一定时间顺序的幅度值。由于存储器空间限制,最大采样点将有所限制,本软件最大支持16M点采样,用户可以根据需要进行设置。
根据用户设置的采样点数和时域采样定理,可以根据公式一得到采样间隔时间Δt等于1/NF,其中N表示采样点数,F表示连续信号的频带。只要保证N的值大于2,就完全满足时域采样定理,因此,可以按时间间隔Δt对信号进行采样,从而得到波形的采样点值。
Δt = 1/NF
软件设计方面,将以斜波的采样为例,决定斜波形状的主要参数有峰峰值、偏移量、周期数、相位及对称度,用户可以根据需要,在配置界面上完成各项参数的配置,配置界面如图3所示。
在完成配置之后,程序即可以对斜波进行采样,斜波采样代码清单如下:
int Np = sample_num / cycle, I = 0;
double Nz = Np * symmetry;
double Rstep = 2.0 / Nz;
double Fstep = 2.0 /(Np - Nz);
int np = (int)(degree* Np/360);
for(int i = 0; i sample_num; i++)
{
I = (i + np) % Np;
if(I Nz){
data_sample[i] = (float)(amplitude / 2 * ( Rstep * I - 1.0) + offset);
}else{
data_sample[i] = (float)(amplitude / 2 * ( 2.0 - Fstep * (I - Nz) - 1.0)
原创力文档


文档评论(0)