用LabVIEW模拟锁相环.docx
《用LabVIEW模拟锁相环.docx》由会员分享,可在线阅读,更多相关《用LabVIEW模拟锁相环.docx(15页珍藏版)》请在冰点文库上搜索。
用LabVIEW模拟锁相环
用LabVIEW模拟锁相环
毕业设计(论文)中文摘要
用LabVIEW模拟锁相环
摘要:
锁相电路是相位锁定环(Phase-Locked Loop)的简称,主要由鉴相器、环路滤波、压控振荡器成 。
主要是要掌握LabVIEW图形化编程特点,因为是软件来实现电路,就必须根据实际电路的功能,把它抽象为相应的逻辑来实现,因此需要既要彻底地掌握锁相环的理论知识,又要具备很强的虚拟仪器应用能力。
充分调动积极思考,独立解决问题的能力。
利用LabVIEW来实现锁相电路,主要是要掌握LabVIEW图形化编程特点,因为是用软件来实现电路,就必须根据实际电路的功能,把它抽象为相应的逻辑来实现,又因 LabVIEW的程序可以嵌套,所以在实现时可将其各个功能分别实现,然后以调用子程序的方式把它们组和在一起,因此设计时需要设计出一个大的框图,大的框图由多个子框图构成。
虚拟锁相电路由时钟发生器、分频器、时钟及数据鉴相器、压控震荡器、移位寄存器这几个功能模块组成。
关键词:
锁相环鉴相器压控振荡器自动跟踪
毕业设计(论文)外文摘要
Title:
Simulatesthephase-lockedloopwithLabVIEW
Abstract:
Thephaselockingcircuitisthephaselockinglink(Phase-LockedLoop)theabbreviation,mainlybythediscriminator,theringcircuitfilter,thepressurecontrolstheoscillatortobecome.MainlyismustgrasptheLabVIEWpresenteinfiguresanddiagramsprogrammingcharacteristic,becauseisthesoftwarerealizestheelectriccircuit,mustactaccordingtotheactualelectriccircuitthefunction,abstractsitforthecorrespondinglogicrealizes,thereforeneedsbothtohavetograspthephase-lockedloopthoroughlythetheoryknowledge,andmusthavetheverystronghypothesizedinstrumentapplicationability.Thefullreassignmentpositiveponder,theindependencesolvesthequestionability.RealizesthephaselockingcircuitusingLabVIEW,mainlyismustgrasptheLabVIEWpresenteinfiguresanddiagramsprogrammingcharacteristic,becauseisrealizestheelectriccircuitwiththesoftware,mustactaccordingtotheactualelectriccircuitthefunction,abstractsitforthecorrespondinglogicrealizes,andfurtherbecausetheLabVIEWproceduremaythenesting,thereforeinrealizationtimemayrealizeseparatelyitseachfunction,thentransfersthesubroutinethewaytheirgroupandinthesameplace,thereforedesignstimeneedstodesignabigdiagram,thebigdiagramconstitutesbymanysub-diagrams.Thehypothesizedphaselockingcircuitbytheclockgenerator,thefrequencydivider,theclockandthedatadiscriminator,thepressurecontrolstheoscillator,theshiftregisterthesefunctionmoduleiscomposed.
keywords:
phase-lockedloopdatadiscriminatorpressurecontrolstheoscillator
automatictrackin
1引言
1.1LabVIEW概述
1.2LabVIEW工作环境
1.2.1LABVIEW的工作窗口
1.2.2LabVIEW的操作模块
1.2.3虚拟仪器程序(VI)的基本组成
2锁相环理论介绍
2.1锁定与跟踪的概念
2.1.1锁相环理论分析
2.1.3环路组成
3虚拟锁相环电路的具体实现
3.1正弦鉴相器的实现
3.1.1正弦鉴相器理论分析
3.1.2正弦鉴相器虚拟转换
3.2滤波器(LF)
3.3压控振荡器(VCO)
4子VI
4.1时钟发生器的实现
4.2移位寄存器的实现
4.3分频器的实现
4.4子VI的具体实现步骤
5程序的前面板图和程序图
结论
参考文献
1引言
锁相环路(PLL)是一个能够跟踪输入信号相位的闭环自动控制系统。
它在无线电技术的各个领域得到了广泛的应用。
锁相环路具有载波跟踪特性,作为一个窄带跟踪滤波器,可提取淹没在噪声之中的信号;用高稳定的参考振荡器锁定,可以提供一系列频率稳定的频率源;可进行高精度的相位与频率测量等等。
它具有调制跟踪特性,可制成高性能的调制器和解调器。
它具有低门限特性,可以大大改善模拟信号和数字信号的解调质量。
对所相环路的研究需首先建立完整的数学模型,继而以模型为基础,用LabVIEW实现其各种工作状态下的性能与指标,诸如跟踪、捕获等等。
1.1LabVIEW概述
LabVIEW(LaboratoryVirtualInstrumentWorkbench,实验室虚拟仪器工程平台)是美国NI公司(NationalInstrumentCompany)推出的一种基于G语言(GraphicsLanguage,图形化编程语言)的虚拟仪器软件开发工具。
用LabVIEW设计的虚拟仪器可脱离LabVIEW开发环境,最终用户看见的是和实际的硬件仪器相似的操作面板。
LabVIEW为虚拟仪器设计者提供了一个便捷轻松的设计环境。
利用它设计者可以像搭积木一样,轻松组建一个测量系统和构建自己的仪器面板,而无需进行任何烦琐的计算机代码的编写。
1.2LabVIEW工作环境
1.2.1LABVIEW的工作窗口
主要由两个窗口组成:
一个是前面板开发窗口,用于编辑和显示VI前面板对象,另一个是框图程序窗口,用于编辑和显示流程图(程序源代码)。
1.2.2LabVIEW的操作模块
LabVIEW提供3个模版:
工具模板(Toolpalette)﹑控制模板(Controlpalette)和功能模板(Functionpalette)来完成VI前面板和流程图两部分的设计开发任务。
(1)工具模板(ToolsPalette):
提供用于操作、编程前面板和流程图上对象的各种工具。
有操作工具:
该工具是操作数值的工具。
当用它向前面板的控制器或显示器键入值时,工具会变成标签工具的形状。
选择(位置)工具:
用于选择、移动或改变对象的大小。
当它用于改变对象边框的大小时,会变成相应的形状。
标签工具:
用于输入标签文本或者创建自由标签。
当创建自由标签时它会变成相应的形状。
连线工具:
用于在框图程序上连接对象。
如果联机帮助的窗口被打开时,把该工具放在任一条线上,就会显示相应的数据类型。
探针工具:
可以在框图程序内的数据流上设置探针。
调试时可以通过探针窗口来观察该数据流线上的数据变化状况。
等等
(2)控制模板(ControlsPalette):
如前所述,虚拟仪器的面板是通过软件实现的。
具体的讲,就是LabVIEW将传统仪器上的各种旋钮、开关、显示屏等所有可能涉及的操作部件都做成外形相似的
“控件”,分类存于控制面板上。
设计者在设计仪器面板时,只需根据需要选择合适“控件”,放在面板相应的位置即可。
由于控制模板是LabVIEW为设计者设计虚拟面板而提供的,因此它只会在前面板编辑窗口中出现。
控制模板中有数值子模板、布尔值子模板、字符串和路径子模板、数组和簇子模板等等
(3)功能模板(FunctionsPalette):
是创建框图程序的工具,在流程图中使用。
功能模板包含用于VI编程的对象,例如:
数值运算、仪器I/O、文件I/O以及数据采集等操作。
该模板上的每一个顶层图标都表示一个子模板。
1.2.3虚拟仪器程序(VI)的基本组成
VI由以下3部分组成。
(1)程序前面板:
交互式的用户界面。
(2)框图程序:
是程序源代码,用模块代替普通函数。
(3)图标/连接器(子VI):
可被高级VI调用的VI
2锁相环理论介绍
锁相环路(PLL)是一个能够跟踪输入信号相位的闭环自动控制系统。
2.1锁定与跟踪的概念
2.1.1锁相环理论分析
锁相环路(PLL)是一个相位跟踪系统,
设输入信号:
ui(t)=Uisin[wit+θi(t)]
式中ui是输入信号的幅度;
wi是载波角频率;
θi(t)是以载波相位wit为参考的瞬时相位
若输入信号是未调载波,θi(t)即为常数,是ui(t)的初始相位,若输入信号是角调制信号,(包括调频调相),θi(t)即为时间的函数
设输入信号
uo(t)=Uocos[wot+θo(t)]
式中Uo是输出信号的幅度
wo是环内被控制振荡器的自由振荡角频率,它是环路的一个重要参数
θo(t)是以自由振荡的载波相位wot为参数的瞬时相位,在未受控制以前它是常数,在输入信号的控制之下,θo(t)即未时间常数。
因为锁相环路是一个相位控制系统,输入信号ui(t)对环路起作用的是它的瞬时相位,它的幅度通常是固定的,输出信号uo(t)的幅度Uo通常也是固定的,只是其瞬时相位受输入信号瞬时相位的控制,因此,我们希望直接建立输出信号瞬时相位与输入信号瞬时相位之间的控制关系。
为此,先讨论两个不同频率信号之间的相位关系。
2.1.2环路模型
前面已分别得到了环路的三个基本部件模型,按下图所示的环路构成,不难将这三个模型连接起来得到环路的模型,如下图所示
θi(t)θe(t)Ud(t)Uc(t)θ2(t)
+_
由图上显示看到,这是一个相位负反馈的误差控制系统。
输入相位θ1(t)与反馈的输出相位θ2(t)进行比较,得到误差相位θe(t),由误差相位产生误差电压Ud(t),误差电压经过环路滤波器F(p)的过滤得到控制电压Uc(t),控制电压加到压控振荡器上使之产生频率偏移,来跟踪输入信号频率Wi(t)。
若输入Wi为固定频率,在Uc(t)的作用下,Wv(t)向Wi靠拢,一旦两者相等时,若满足一定条件,环路就能稳定下来,达到锁定。
锁定之后,被控的压控振荡器频率与输入信号频率相同,两者之间维持一定的稳态相位差。
由图可见,这个稳态相差是维持误差电压以控制电压所必须的。
若没有这个稳态相差,控制电压就会消失(环路滤波器为理想积分器是例外,这在第四章中将会说明),压控振荡器的振荡频率又将回到其自由振荡频率Wu,环路当然不能锁定。
存在剩余误差(锁相环路中就是相位误差)是误差控制系统的特征。
这个模型直接给出了输入相位θ1(t)与输出相位θ2(t)之间的关系,故又称为环路的相位模型,它是进一步分析锁相环的基础。
2.1.3环路组成
锁相环路为什么能够进入相位跟踪,实现输出与输入信号的同步呢?
因为它是一个相位的负反馈控制系统。
这个负反馈控制系统是由鉴相器(PD)、环路滤波器(LF)和电压控制振荡器(VCO)三个基本部件组成的,基本构成如下图所示。
实际应用中有各种形式的环路,但它们都是有这个基本环路演变而来的。
而本课题采用最简单的锁相环路——一阶锁相环路进行研究设计。
θi(t)θe(t)Ud(t)Uc(t)θ2(t)
+_
一阶锁相环路没有环路滤波器(LF),是最简单的锁相环路。
实际上一阶环很少被采用,但是由于环路中发生的种种物理现象,如捕获、锁定和失锁等等,都可以通过一阶环得到明确的说明。
鉴相器是一个相位比较装置,用来检测输入信号相位θ1(t)与反馈信号θ2(t)之间的相位差θe(t),输出的误差信号Ud(t)是相位差θe(t)的函数。
压控振荡器是一个电压——频率变换装置,在环路中作为被控振荡器,它的振荡频率应随输入控制电压Uo(t)线性的变化。
3虚拟锁相环电路的具体实现
在利用LabVIEW来实现锁相电路时,按锁相环路的功能分为几个子模板来实现,就好比一个电路板有很多各器件组成的一样,下面讲介绍每个程序模块功能和实现的方法。
3.1正弦鉴相器的实现
3.1.1正弦鉴相器理论分析
鉴相器是一个相位比较装置,用来检测输入信号相位θ1(t)与反馈信号θ2(t)之间的相位差θe(t),输出的误差信号Ud(t)是相位差θe(t)的函数,即
Ud(t)=f[θe(t)]
鉴相特性f[θe(t)]可以是多种多样的,正弦形特性,三角形特性,锯齿形特性等等,此课题选用正弦形特性,故称为正弦鉴相器。
常用的正弦鉴相器可用模拟相乘器与低通滤波器的串连组成,如下图所示:
Ui(t)Ud(t)
+_
Uo(t)
设相乘器的相乘系数为Km[单位为1/V],输入信号Ui(t)与反馈信号Uo(t)经相乘作用
Km·Ui(t)·Uo(t)=Km·Ui·sin[Wot+θ1(t)]·Uo·cos[Wot+θ2(t)]
=1/2·Km·Ui·Uo·sin[2Wot+θ1(t)+θ2(t)]
+1/2·Km·Ui·Uo·sin[θ1(t)-θ2(t)]
在经过低通滤波器滤除2Wo成分之后,得到误差电压
Ud(t)=1/2·Km·Ui·Uo·sin[θ1(t)-θ2(t)]
令Ud=1/2·Km·Ui·Uo·
为鉴相器的最大输出电压,则
Ud(t)=Ud·sin[θe(t)]
3.1.2正弦鉴相器虚拟转换
(1)在框图程序窗口中打开功能模板(Functions),左击其中的信号分析子模板(Analyze),在信号分析子模板中选中Signalprocessing,然后再打开SignalGeneration功能子模板中的SinewareVI,该VI产生正弦波。
调用两个SinewareVI作为相乘器的输入信号。
(2)在功能模板(Functions)中选中数值运算模板(Numeric),再选择其中的Multiply(乘函数)。
(3)在功能模板中,选中信号分析子模板(Analyze),再选定其中的Signalprocessing,找到Filters模板,选中其中的ButterworthFilter.VI把滤波器类型参数设置为Lowpass.
(4)如上所述,把各部分连接,如下图所示:
3.2滤波器(LF)
本题采用没有滤波器的一阶锁相环路,即
F(p)=1
一阶锁相环实际上很少被采用。
但是由于环路中发生的种种物理现象,如捕获、锁定和失锁等等,都可以通过一阶环得到明确的说明,因此本题选择一阶锁相环路作为研究对象。
故,锁相环路可以简化为由两部分组成:
检相器、压控振荡器。
如下图所示:
θi(t)θe(t)Ud(t)Uc(t)θ2(t)
+_
3.3压控振荡器(VCO)
压控振荡器的功能实现是由一个子VI和移位寄存器等综合实现的。
子VI产生一个不断变化的频率θ2(t)与基波信号的频率θi(t)相减得到一个新的频率θe(t),然后通过移位寄存器把新产生的频率θe(t)送给比较波作为其输入频率,如此反复,知道基波信号的频率θi(t)与被控的压控振荡器的频率θ2(t)相等,实际实验中可存在极小的误差。
所以在具体的LabVIEW程序中运用到了减函数和(范围判断条件)<此名称有误>。
4子VI
移位寄存器和分频器等构建成一个子VI,此子VI能够完成对检相器输出的波形进行频率变换,然后将不断变化的频率再反馈给检相器,如此循环形成跟踪。
具体实现分如下四个部分:
时钟发生器、移位寄存器、计数器和分频器
4.1时钟发生器的实现
时钟发生器的实现主要是按照时钟波形的规律,它是一个“0”和“1”电平循环交替的方波。
在For循环中嵌套一个条件判断结构框(CASE框),输入正弦波形与0比较,大于或等于时输出为“1”,否则为“0”。
4.2移位寄存器的实现
移位寄存器在电路中主要起到一个循环移位和反馈的作用。
LabVIEW中引入的移位寄存器的概念是,使用移位寄存器可在循环体之间传递数据,其功能是将上一次循环值传给下一次循环。
本题使用到多个移位寄存器,左侧移位寄存器端子同时呈现前一次和前两次的循环值,即可以比较输入方波的相邻两个值是否满足方波上升沿的条件,然后对上升沿的个数用计数器进行计数,这样即可计出方波的频率。
4.3分频器的实现
分频器的实现是用了两个CASE结构的嵌套,把由时钟发生器产生的方波脉冲个数除以一个分频数(可变的),即可得到一个新的频率的方波,再把该频率用计数器计出反馈给比较波,作为它的新的频率。
4.4子VI的具体实现步骤
(1)在框图上放置一个For循环,并在其左边界或右边界上弹出选单,选择AddShiftRegister,创建一个移位寄存器,单击For循环左边界的移位寄存器端子同时移动,生成一个新的移位寄存器端子,即左边界两个移位寄存器端子,右边界一个端子。
(2)在For循环中先放置一个CASE结构,经检相器输出的波形与“0”比较,把“≥0”作为判断条件,条件为真时输出为“1”,条件为假时输出为“0”。
即把正弦波转换为方波
说明:
≥0在功能模板(Functions)中选中Companion子模板,调用GreaterOrEqualTo0?
函数。
(3)把生成的方波连接到For循环右边界的移位寄存器端子上。
(4)在For循环中先放置“=0”和“≠0”函数(Functions—Companion子模板),且在Functions中找到Boolean布尔逻辑子模板,选中“与”逻辑,分别与“=0”和“≠0”节点连接作为计数条件。
(5)在For循环中再放置一个CASE结构用来计数,在Ture分支CASE中放置累加器IncrementPtByPt.vi(逐点加1)和“商与余数”函数。
当条件为真(有上升沿出现)时计数,条件为假时不变。
(6)在计数的CASE结构中再嵌套一个CASE结构。
若“商与余数”函数的余数输出为1,则满足嵌套CASE为真的条件,则输出为1,否则输出为0,即生成一个新的频率的方波。
说明:
“商与余数”函数(Functions—Numeric):
求两个数的商与余数,此题除数为原方波频率值,被除数为分频数(可以任意设值),两数相除余数为0时即满足嵌套CASE为真的条件,则输出为1,否则输出为0。
(7)在For循环中再放置一个CASE结构,在CASE结构里放置累加器IncrementPtByPt.vi(逐点加1),在CASE结构外放置“≠0”函数(Functions—Companion子模板)作为CASE的判断条件,为真时计数,为假时不变,即可完成对新的方波进行计数。
5程序的前面板图和程序图
结论
锁相环电路是一个相位的负反馈控制系统。
这个负反馈控制系统是由鉴相器(PD)、环路滤波器(LF)和电压控制振荡器(VCO)三个基本部件组成的。
开始我采用的设计思路是完全按照上述三个组成部分,做成三个子VI。
鉴相器(PD)子VI和环路滤波器(LF)子VI编程很容易完成,鉴相器是一个相位比较装置,可采用常用的正弦鉴相器,通过模拟相乘器与低通滤波器的串连即可实现鉴相器的相位比较功能;环路滤波器可以通过使用LabVIEW中现成的滤波器来实现;可是电压控制振荡器却无法做成独立的子VI,压控制振荡器(VCO)是一个电压——频率变换装置,即频率随着电压的变化而变化,在环路中作为被控振荡器,它的振荡频率应随输入控制电压Uo(t)线性的变化。
这就要考虑到压控制振荡器与鉴相器和环路滤波器是否能很好的关联,问题出现在即使把这三个子VI相连接起来后,程序可以运行但是无法实现锁相功能,在通过自己的努力改进
和老师的帮助下还是无法实现锁相环路的各种功能,所以放弃这种设计思路。
在老师的指导下思路转变为:
不完全按照锁相环的三个组成部分来设计,只要能最终能实现锁相环路的各种功能即可。
采用最简单的一种锁相环路――一阶锁相环,没有环路滤波器(LF)这一组成部分,但不影响锁相功能的实现。
参考文献
1刘君华主编.基于LabVIEW的虚拟仪器实现.电子工业出版社.2003
2杨乐平主编.LabVIEW高级程序设计.北京.清华大学出版社.2003
3杨乐平,李海涛,杨磊编著.LabVIEW程序设计与应用.电子工业出版社.2005
4刘君华等主编.虚拟仪器图形化编程语言LabVIEW教程.西安电子科技大出版社.2001
5雷振山编著.LabVIEW7Express实用技术教程.中国铁道出版社.2004
6张厥盛,郑继禹,万心平著.锁相技术.西安电子科技科技大学出版社.2005
欢迎您的下载,资料仅供参考!