利用LABVIEW实现周期性矩形脉冲信号的分解与叠加
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利⽤LABVIEW实现周期性矩形脉冲信号的分解与叠加
⽬录
1 引⾔ (1)
2 虚拟仪器开发软件LabVIEW2010⼊门 (2)
2.1 LabVIEW2010介绍 (2)
2.2 利⽤LabVIEW2010编程完成习题设计 (2)
3 利⽤LABVIEW2010实现周期性矩形脉冲信号的分解与叠加 (10)
3.1周期性矩形脉冲信号的分解与叠加的基本原理 (10)
3.1.1周期信号的傅⾥叶级数分析 (11)
3.1.2周期性矩形脉冲信号的傅⾥叶级数 (11)
3.2周期性矩形脉冲信号的分解编程及实现 (12)
3.3周期性矩形脉冲信号的叠加编程及实现 (13)
3.3.1第⼀次叠加 (13)
3.3.2第⼆次叠加 (13)
3.3.3第三次叠加 (14)
3.3.4第⼆⼗次叠加 (15)
4 结论 (16)
参考⽂献 (17)
1 引⾔
为了有效地传播和利⽤消息,常常需要将消息转换成便于传输和处理的信号。
信号是消息的载体,⼀般表现为随时间变化的某种物理量。
信号与系统是为完成某⼀特定功能⽽相互作⽤、不可分割的统⼀整体。
为了有效地应⽤系统传输和处理信息,就必须对信号、系统⾃⾝的特性以及信号特性与系统特性之间的相互匹配等问题进⾏深⼊研究。
本课程概要介绍信号与系统的分析⽅法,以便读者对信号与系统的分析思想和⽅法有⼀初步了解。
信号分析是研究信号的描述、运算、特性以及信号发⽣某些变化时其特性的相应变化。
信号分析的基本⽬的是揭⽰信号⾃⾝的特性,例如确定信号的时域特性与频域待性,随机信号的统计特性等。
实现信号分析的主要途径是研究信号的分解,即将⼀般信号分解成众多基本信号单元的线性组合,通过研究这些基本信号单元在时域或变换域的分布规律来达到了解信号特性的⽬的。
由于信号的分解可以在时域进⾏,也可以在频域或复频域进⾏,因此信号分析的⽅法也有时域⽅法、频域⽅法和复频域⽅法。
信号与系统研究的是对信号在时间域和频率域进⾏分析、处理和变换,在时间域⾥通过零输⼊响应和零状态响应以及阶跃响应和冲激响应了解输⼊和输出之间的关系。
通过傅⾥叶变换找到了时间域转换到频率域的⽅法,对于周期性信号可以通过傅⾥叶级数进⾏分解展开成⽆数多的正弦余弦信号,也可以将这些信号通过叠加还原回原信号。
由于傅⾥叶变换要求信号必须收敛,⼤多信号不收敛。
因此,由傅⾥叶变换⼜引出了拉普拉斯变换,从⽽通过引⼊衰减因⼦将⼤多的信号都能进⾏时间域到频率域的转换。
对于离散信号则采⽤Z变换进⾏处理。
本课程设计利⽤Labview2010软件对周期信号的研究和分析,掌握信号的频谱分析⽅法,理解信号有时域转换到频域的原理及⽅法,尤其对于周期信号可进⾏傅⾥叶级数分解,理解傅⾥叶级数的系数的求解⽅法。
本课程设计通过对周期性矩形脉冲信号的分解和叠加从⽽对周期性信号的分解和叠加进⼀步的理解。
2 虚拟仪器开发软件LabVIEW2010⼊门
2.1 LabVIEW2010介绍
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是⼀种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语⾔的显著区别是:其他计算机语⾔都是采⽤基于⽂本的语
⾔产⽣代码,⽽LabVIEW使⽤的是图形化编辑语⾔G编写程序,产⽣的程序是框图的形式。
与C和BASIC⼀样,LabVIEW也是通⽤的编程系统,有⼀个完成任何编程任务的庞⼤函数库。
LabVIEW的函数库包括数据采集、GPIB、串⼝控制、数据分析、数据显⽰及数据存储,等等。
LabVIEW也有传统的程序调试⼯具,如设置断点、以动画⽅式显⽰数据及其⼦程序(⼦VI)的结果、单步执⾏等等,便于程序的调试。
LabVIEW是⼀种⽤图标代替⽂本⾏创建应⽤程序的图形化编程语⾔。
传统⽂本编程语⾔根据语句和指令的先后顺序决定程序执⾏顺序,⽽LabVIEW则采⽤数据流编程⽅式,程序框图中节点之间的数据流向决定了VI及函数的执⾏顺序。
VI指虚拟仪器,是LabVIEW 的程序模块。
LabVIEW提供很多外观与传统仪器(如⽰波器、万⽤表)类似的控件,可⽤来⽅便地创建⽤户界⾯。
⽤户界⾯在LabVIEW中被称为前⾯板。
使⽤图标和连线,可以通过编程对前⾯板上的对象进⾏控制。
这就是图形化源代码,⼜称G 代码。
LabVIEW 的图形化源代码在某种程度上类似于流程图,因此⼜被称作程序框图代码。
LabVIEW是⼀种图形化的编程语⾔的开发环境,它⼴泛地被⼯业界、学术界和研究实验室所接受,视为⼀个标准的数据采集和仪器控制软件。
LabVIEW 集成了与满⾜GPIB、VXI、RS-232和RS-485 协议的硬件及数据采集卡通讯的全部功能。
它还内置了便于应⽤TCP/IP、ActiveX等软件标准的库函数。
这是⼀个功能强⼤且灵活的软件。
利⽤它可以⽅便地建⽴⾃⼰的虚拟仪器,其图形化的界⾯使得编程及使⽤过程都⽣动有趣。
图形化的程序语⾔,⼜称为“G” 语⾔。
使⽤这种语⾔编程时,基本上不写程序代码,取⽽代之的是流程图或框图。
它尽可能利⽤了技术⼈员、科学家、⼯程师所熟悉的术语、图标和概念,因此,LabVIEW是⼀个⾯向最终⽤户的⼯具。
它可以增强你构建⾃⼰的科学和⼯程系统的能⼒,提供了实现仪器编程和数据采集系统的便捷途径。
使⽤它进⾏原理研究、设计、测试并实现仪器系统时,可以⼤⼤提⾼⼯作效率。
2.2 利⽤LabVIEW2010编程完成习题设计
习题2.1 写⼀个类似于左图的正弦波发⽣器,要求频率和幅度可调。
习题3.1 新建⼀个VI,进⾏如下练习:
(1)任意放置⼏个控件在前⾯板,改变它们的位置、名称、⼤⼩、颜⾊等等。
(2)在VI前⾯板和后⾯板之间进⾏切换
(3)并排排列前⾯板和后⾯板窗⼝
习题3.2 编写⼀个VI求三个数的平均值,如下图所⽰。
要求对三个输⼊控件等间隔并右对齐,对应的程序框图控件对象也要求如此对齐。
(1)添加注释
(2)分别⽤普通⽅式和⾼亮⽅式运⾏程序,体会数据流向。
(3)单步执⾏⼀遍
习题4.1 写⼀个VI判断两个数的⼤⼩,如下图所⽰:当A>B时,指⽰灯亮。
习题4.2 写⼀个VI获取当前系统时间,并将其转换为字符串和浮点数。
这在实际编程中会经常遇到。
习题4.3 写⼀个温度监测器,如下图所⽰,当温度超过报警上限,⽽且开启报警时,报警灯点亮。
温度值可以由随即数发⽣器产⽣。
习题4.4 给定任意x, 求如下表达式的值y=x5+cosx/e x
习题5.1 利⽤顺序结构和timing⾯板下的tick count VI,计算for循环产⽣⼀个长度为20000点的随机波形所需的时间。
习题5.2 为第4章习题4添加⼀个While循环和定时器,实现连续的温度采集
监测。
习题5.3 计算学⽣三门课(语⽂,数学,英语)的平均分,并根据平均分划分成绩等级。
要求输出等级A,B,C,D,E。
90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。
习题6.1 为第5章的习题2连续温度采集监测添加报警信息,如下图所⽰,当报警发⽣时输出报警信息,例如“温度超限!当前温度78.23℃”,正常情况下输出空字符串。
习题6.2 将⼀些字符和数值转换成⼀个新的输出字符串,输出的字符串是⼀个GPIB命令字符串,他可以⽤来与串⼝仪器进⾏通信,如图:
习题6.3 ⽤for循环创建⼀个数组,并⽤图形显⽰输出的数组。
如下图所⽰:
习题6.4 利⽤簇模拟汽车控制,如右图所⽰,控制⾯板可以对显⽰⾯板中的参量进⾏控制。
油门控制转速,转速=油门*100,档位控制时速,时速=档位*40,油量随VI运⾏时间减少。
习题7.1 利⽤随机数发⽣器仿真⼀个0到5V的采样信号,每200ms采⼀个点,利⽤实时趋势曲线实时显⽰采样结果。
习题7.2 在习题1的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V。
习题7.3 利⽤随机数发⽣器仿真⼀个0到5V的采样信号,每200ms采⼀个点,共采集50个点,采集完后⼀次性显⽰在Waveform Graph上。
习题7.4 在习题3的基础上再增加1路电压信号采集,此路电压信号的范围为5到10V,采样间隔是50ms,共采100个点。
采样完成后,将两路采样信号显⽰在同⼀个Waveform Graph中。
3 利⽤LABVIEW2010实现周期性矩形脉冲信号的分解与叠加3.1周期性矩形脉冲信号的分解与叠加的基本原理3.1.1周期信号的傅⾥叶级数分析
按照傅⾥叶级数的定义,周期函数)(t f 可由三⾓函数的线性组合表⽰,若
)(t f 的周期为1T ,⾓频率1
12=
T πω, 频率1
11=
T f ,傅⾥叶级数展开表达式为:
)]
sin(+)cos([+
=)(11∞
1
=0∑t ωn b t ωn a
a t f n n n
式中n 为正数,各次谐波成分的幅度值按以下各式计算:直流分量: dt t f T a t t t )(1=
∫1
00
+1
余弦分量的幅度: dt t ωn t f T a T t t n )cos()(2=
1
+1∫1
00
正弦分量的幅度: dt t ωn t f T b T t t n )sin()(2=
1
+1
∫1
00
必须指出,并⾮任意周期信号都能进⾏傅⾥叶级数展开。
被展开的函数f(t)需要满⾜如下的⼀组充分条件,这组条件成为“狄利克雷(Dirichlet )条件”: (1)在⼀周期内,如果有间断点存在,则间断点的数⽬应是有限个; (2)在⼀周期内,极⼤值和极⼩值的数⽬应是有限个;
(3)在⼀周期内,信号是绝对可积的,即
dt t f T t t )(∫1
00
+等于有限值(T1为周期)。
任何周期信号只要满⾜狄利克雷条件就可以分解成直流分量及许多正弦、余
弦分量。
这些正弦、余弦分量的频率必定是基频f 1(f 1=1/T 1)的整数倍。
通常把频率为f 1的分量称为基波,频率为2f 1,3f 1,...等分量分别称为⼆次谐波、三次谐波...等。
显然,直流分量的⼤⼩以及基波与各次谐波的幅度、相位取决于周期信号的波形。
⼀般说来,需要⽆限多项次谐波相加才会逼近原周期信号。
3.1.2
周期性矩形脉冲信号的傅⾥叶级数
设周期矩形脉冲信号f(t)的脉冲宽度为τ,脉冲幅度为E ,重复周期为T 1,如图所⽰,此信号在⼀个周期内的表⽰式为)]2
()2
+([=)(τ
t u τ
t u E t f --
把周期信号)(t f 展成三⾓形式傅⾥叶级数:
)]
sin(+)cos([+
=)(11∞
1
=0∑t ωn b t ωn a
a t f n n n
其中1
0=
T τE a ,余弦分量的幅度: )s i n (2=
1
T πτn πn E
a n 由于f(t)是偶函数,所以
b n =0
这样,周期矩形信号的三⾓形式傅⾥叶级数为:)cos()(
2+=
)(1∞
1
=1
1
1
∑t ωn T πτn Sa T τE T τE t f n
3.2周期性矩形脉冲信号的分解编程及实现
3.3周期性矩形脉冲信号的叠加编程及实现3.3.1第⼀次叠加
3.3.2第⼆次叠加
3.3.3第三次叠加
3.3.4第⼆⼗次叠加
4 结论
两周的课程设计就要结束了,在这个星期中我学习到了很多新的知识新的理念,还初步的掌握了⼀个新的软件LABVIEW但在这个过程中我也遇到了很多的困难,在开始做课程设计的初期,我先是对傅⾥叶变换、周期性信号的傅⾥叶级数、矩形脉冲等⼀系列概念做了⼀个全⾯的了解与回顾。
在确定的课程设计⽅向准备动⼿做之后,我⼜发现对需要应⽤的软件LABVIEW的了解还是不够,于是有去图书管借了⼀些LABVIEW的书籍。
现在已经初步掌握了LABVIEW 的使⽤⽅法。
LABVIEW的编程也是⼀个难题,在研究了LABVIEW软件的数组和数组运算、输出图形、基本语⾔、程序设计等内容后。
⼜经过⽼师的指导,终于完成了程序的设计。
最后理论与时间结合,得出了设计的程序与期望的输出结果。
在今后的学习⽣活中,我定会更加的努⼒,在⽼师的指导下学习更多的知识努⼒的培养⾃⼰各⽅⾯,尤其是独⽴思考的能⼒,争取更好的成绩!
参考⽂献
[1]郑丽君.《信号与系统》.⾼等教育出版社.
[2]楼顺天、李博菡.《基于LABVIEW的系统分析与设计-信号处理》.西安电⼦科技⼤学出版社.
[3]王新宇.《LABVIEW与信号处理技术的应⽤》.北京邮电出版社.。