原创 压控振荡器的MATLAB仿真

2008-2-13 19:10 7400 9 9 分类: 通信

压控振荡器<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


一.原理与分析


    压控振荡器VCOVoltage-Controlled Oscillator)是一种输出信号的频率随着输入信号幅度的变化而发生变化的设备。其的工作原理可以通过式1来描述。


84fe9765-ba82-4350-ba33-3a0fa4cdd6ec.GIF                              1


    其中,u(t)表示输入信号,y(t)表示输出信号。由于输入信号的频率取决与输入信号的电压的变化,因此称为“压控振荡器”。其他影响压控振荡器输出信号的参数还有信号的幅度Ac,振荡频率fc,输入信号灵敏度kc,以及初始相位2d83a228-e6b2-4f2b-b033-2b2ada7237e1.GIF


 


二.MATLAB仿真


例子


定义一个锯齿波信号,频率是20HZ,幅度范围在0V1V之间。现在用此信号作为压控振荡器的输入控制信号,该压控振荡器的振荡频率fc=20HZ, 输入信号灵敏度2f07842b-5113-4996-ae41-065309ba8da4.GIF,初始相位efcc7e90-ab22-4a7e-966a-356abdfdb12b.GIF。使用MATLAB求得输出的压控振荡信号。


 


MATLB脚本语言:


 




 


%MATLAB实现压控振荡器


clear all;


clc;


t0 = 0.15;                          %定义压控信号持续时间


ts = 0.0001;                        %定义信号采样率


fc = 50;                            %定义振荡频率


t = [0:ts:t0];                      %时间矢量


u0 = 20*t(1:length(t)/3);           %定义压控信号(单周期)


u = [u0,u0,u0,0];                   %定义压控信号(3个周期)


Ac = 1;                             %定义振幅


kc = 0.1;                           %定义输入信号灵敏度


fi = 0;                             %定义初始相位


%对压控信号进行积分


u_int(1) = 0;                       %定义压控信号积分初值


for i = 1:length(u)-1               %进行离散积分


        u_int(i+1) = u(i)+u_int(i);


end


%压控振荡信号


y = Ac*cos(2*pi*fc*t+2*pi*kc*u_int+fi);


   


%作图


subplot(2,1,1)                      %显示压控信号


plot(t,u)


axis([0 t0 -1.5 1.5])


title('控制信号')


subplot(2,1,2)                      %显示振荡信号


plot(t,y)


axis([0 t0 -1.5 1.5])


title('压控振荡信号')


 


 MATLAB得到的最后结果:


70305c8d-db4a-40c5-ae1e-8db7a9608066.jpg


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


1 压控振荡器输出


 

 

    上文的PDF文档和MATLAB文件在如下的压缩包中。


rar

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条