ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:185.80KB ,
资源ID:29096760      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29096760.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(锁相环仿真基于MATLAB.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

锁相环仿真基于MATLAB.docx

1、锁相环仿真基于MATLAB锁相环仿真1.锁相环的理论分析11锁相环的基本组成锁相环路是一种反馈控制电路,简称锁相环(PLL,Phase-Locked Loop)。锁相环的特点是:利用外部输入的参考信号控制环路内部振荡信号的频率和相位。因锁相环可以实现输出信号频率对输入信号频率的自动跟踪,所以锁相环通常用于闭环跟踪电路。锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。锁相环通常由鉴相器(PD,Phase Detector)、环路滤波器(LF,Loop Filter)和压控振荡器(VCO,

2、Voltage Controlled Oscillator)三部分组成,锁相环组成的原理框图如图示:锁相环中的鉴相器又称为相位比较器,它的作用是检测输入信号和输出信号的相位差,并将检测出的相位差信号转换成uD(t)电压信号输出,该信号经低通滤波器滤波后形成压控振荡器的控制电压uC(t),对振荡器输出信号的频率实施控制。12锁相环的工作原理1.2.1鉴相器锁相环中的鉴相器(PD)通常由模拟乘法器组成,利用模拟乘法器组成的鉴相器电路如图示:鉴相器的工作原理是:设外界输入的信号电压和压控振荡器输出的信号电压分别为: 式中的0为压控振荡器在输入控制电压为零或为直流电压时的振荡角频率,称为电路的固有振荡

3、角频率。则模拟乘法器的输出电压uD为:1.2.2 低通滤波器低通滤波器(LF)的将上式中的和频分量滤掉,剩下的差频分量作为压控振荡器的输入控制电压uC(t)。即uC(t)为: 式中的i为输入信号的瞬时振荡角频率,i(t)和O(t)分别为输入信号和输出信号的瞬时位相,根据相量的关系可得瞬时频率和瞬时位相的关系为: 即则,瞬时相位差d为 对两边求微分,可得频差的关系式为 上式等于零,说明锁相环进入相位锁定的状态,此时输出和输入信号的频率和相位保持恒定不变的状态,uc(t)为恒定值。当上式不等于零时,说明锁相环的相位还未锁定,输入信号和输出信号的频率不等,uc(t)随时间而变。1.2.3 压控振荡器

4、压控振荡器(VCO)的压控特性如图示该特性说明压控振荡器的振荡频率u以0为中心,随输入信号电压uc(t)线性地变化,变化的关系如下: 上式说明当uc(t)随时间而变时,压控振荡器(VCO)的振荡频率u也随时间而变,锁相环进入“频率牵引”,自动跟踪捕捉输入信号的频率,使锁相环进入锁定的状态,并保持0=i的状态不变。2信号流程图锁相环的原理框图如下:其工作过程如下:(1)压控振荡器的输出Uo经过采集并分频;(2)输出和基准信号同时输入鉴相器;(3)鉴相器通过比较上述两个信号的频率差,然后输出一个直流脉冲电压Ud;(4)Ud进入到滤波器里面,滤除高频成分后得到信息Ue;(5)Ue进入到压控震荡器VC

5、O里面,控制频率随输入电压线性地变化;(6)这样经过一个很短的时间,VCO的输出就会稳定于某一期望值。3二阶环仿真源程序代码及仿真结果31 程序代码:% File: c6_nltvde.mw2b=0; w2c=0; % initialize integratorsyd=0; y=0; % initialize differential equationtfinal = 50; % simulation timefs = 100; % sampling frequencydelt = 1/fs; % sampling periodnpts = 1+fs*tfinal; % number of s

6、amples simulatedydv = zeros(1,npts); % vector of dy/dt samplesyv = zeros(1,npts); % vector of y(t) samples% beginning of simulation loopfor i=1:npts t = (i-1)*delt; % time if t20 ydd = 4*exp(-t/2)-3*yd*abs(y)-9*y; % de for t=20 end w1b=ydd+w2b; % first integrator - step 1 w2b=ydd+w1b; % first integr

7、ator - step 2 yd=w1b/(2*fs); % first integrator output w1c=yd+w2c; % second integrator - step 1 w2c=yd+w1c; % second integrator - step 2 y=w1c/(2*fs); % second integrator output ydv(1,i) = yd; % build dy/dt vector yv(1,i) = y; % build y(t) vector end % end of simulation loopplot(yv,ydv) % plot phase

8、 plane xlabel(y(t) % label x axisylabel(dy/dt) % label y zxis% End of script file.% File: pllpost.m%kk = 0;while kk = 0k = menu(Phase Lock Loop Postprocessor,. Input Frequency and VCO Frequency,. Input Phase and VCO Phase,. Frequency Error,Phase Error,Phase Plane Plot,. Phase Plane and Time Domain P

9、lots,Exit Program); if k = 1 plot(t,fin,k,t,fvco,k) title(Input Frequency and VCO Freqeuncy) xlabel(Time - Seconds);ylabel(Frequency - Hertz);pause elseif k =2 pvco=phin-phierror;plot(t,phin,t,pvco) title(Input Phase and VCO Phase) xlabel(Time - Seconds);ylabel(Phase - Radians);pause elseif k = 3 pl

10、ot(t,freqerror);title(Frequency Error) xlabel(Time - Seconds);ylabel(Frequency Error - Hertz);pause elseif k = 4 plot(t,phierror);title(Phase Error) xlabel(Time - Seconds);ylabel(Phase Error - Radians);pause elseif k = 5 ppplot elseif k = 6 subplot(211);phierrn = phierror/pi; plot(phierrn,freqerror,

11、k);grid; title(Phase Plane Plot);xlabel(Phase Error /Pi); ylabel(Frequency Error - Hertz);subplot(212) plot(t,fin,k,t,fvco,k);grid title(Input Frequency and VCO Freqeuncy) xlabel(Time - Seconds);ylabel(Frequency - Hertz);subplot(111) elseif k = 7 kk = 1; end end % End of script file.% File: pllpre.m

12、%clear all % be safedisp( ) % insert blank line fdel = input(Enter the size of the frequency step in Hertz );fn = input(Enter the loop natural frequency in Hertz );lambda = input(Enter lambda, the relative pole offset );disp( )disp(Accept default values:)disp( zeta = 1/sqrt(2) = 0.707,)disp( fs = 20

13、0*fn, and)disp( tstop = 1)dtype = input(Enter y for yes or n for no ,s);if dtype = y zeta = 1/sqrt(2); fs = 200*fn; tstop = 1;else zeta = input(Enter zeta, the loop damping factor );fs = input(Enter the sampling frequency in Hertz );tstop = input(Enter tstop, the simulation runtime );end %npts = fs*

14、tstop+1; % number of simulation pointst = (0:(npts-1)/fs; % default time vectornsettle = fix(npts/10); % set nsettle time as 0.1*nptstsettle = nsettle/fs; % set tsettle% The next two lines establish the loop input frequency and phase % deviations.fin = zeros(1,nsettle),fdel*ones(1,npts-nsettle);phin

15、 = zeros(1,nsettle),2*pi*fdel*t(1:(npts-nsettle);disp( ) % insert blank line% end of script file pllpre.m % File: pll2sin.mw2b=0; w2c=0; s5=0; phivco=0; %initializetwopi=2*pi; % define 2*pitwofs=2*fs; % define 2*fsG=2*pi*fn*(zeta+sqrt(zeta*zeta-lambda); % set loop gaina=2*pi*fn/(zeta+sqrt(zeta*zeta-

16、lambda); % set filter parametera1=a*(1-lambda); a2 = a*lambda; % define constantsphierror = zeros(1,npts); % initialize vectorfvco=zeros(1,npts); % initialize vector% beginning of simulation loopfor i=1:npts s1=phin(i) - phivco; % phase error s2=sin(s1); % sinusoidal phase detector s3=G*s2; s4=a1*s3

17、; s4a=s4-a2*s5; % loop filter integrator input w1b=s4a+w2b; % filter integrator (step 1) w2b=s4a+w1b; % filter integrator (step 2) s5=w1b/twofs; % generate fiter output s6=s3+s5; % VCO integrator input w1c=s6+w2c; % VCO integrator (step 1) w2c=s6+w1c; % VCO integrator (step 2) phivco=w1c/twofs; % ge

18、nerate VCO output phierror(i)=s1; % build phase error vector fvco(i)=s6/twopi; % build VCO input vectorend% end of simulation loopfreqerror=fin-fvco; % build frequency error vector% End of script file.function = pplane(x,y,nsettle)% Plots the phase plane with phase in the range (-pi,pi)ln = length(x

19、);maxfreq = max(y);minfreq = min(y);close % Old figure discardedaxis(-1 1 1.1*minfreq 1.1*maxfreq); % Establish scalehold on % Collect info for new figj = nsettle;while j ln i = 1; while x(j) pi & j yEnter the loop gain 30 输入环路增益为30Enter the sampling frequency in Hertz 1200 Enter tstop, the simulati

20、on runtime 5 仿真时间为5秒 相平面图 输入频率和VCO频率图 输入相位和VCO相位图 频率差图 相位差图 G=40时的仿真图形: Accept the tentative values:the first loop frequency is 5Enter y for yes or n for no yEnter the loop gain 40 输入环路增益为40Enter the sampling frequency in Hertz 1200 Enter tstop, the simulation runtime 5 仿真时间为5秒相平面图 输入频率和VCO频率图 相位差图 频率差图 输入频率和VCO频率图 输入相位和VCO相位图

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1