⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 czy0.m

📁 在Windows 操作系统下
💻 M
字号:
clear all
disp('')
disp('提示:')
disp('一阶默认频率为 5 /Hz')
dtype = input('是否接受这默认值:接受请输入y,否则输入n > ','s');
if dtype == 'y' 
fdel = 5;
else
disp('')
fdel = input('请输入一阶锁相频率: > ');
end
disp('请输入')
G = input('环路增益 >');
fs = input('抽样频率/Hz > '); 
tstop = input('仿真结束时间/> ');
end

npts = fs*tstop+1;               
t = (0:(npts-1))/fs;             
nsettle = fix(npts/10);          
tsettle = nsettle/fs;            
fin = [zeros(1,nsettle),fdel*ones(1,npts-nsettle)];
phin = [zeros(1,nsettle),2*pi*fdel*t(1:(npts-nsettle))];
w2c=0; w4c=0; phivco=0;
twopi=2*pi;						 
twofs=2*fs;						 
disp(' ')                        
phierror = zeros(1,npts);	  	 
fvco = zeros(1,npts);            
phierror1 = zeros(1,npts);	  	 
fvco1 = zeros(1,npts);           
for i = 1:npts
    s1=phin(i) - phivco;
    s2=sin(s1);
    s3=G*s2;
    s4 = G*s1;
    w1c = s3+w2c;
    w3c = s4+w4c;
    w2c = s3+w1c;
    sw4c = s4+w3c;
    phivco = w1c/twofs;
    phivco1 = w3c/twofs;
    phierror(i) = s1;
    sphierror1(i) = s1;
    fvco(i) = s3/twopi;
    fvco1(i) = s4/twopi;
end    
phierrn = phierror/pi;	
phierrn1 = phierror1/pi;
freqerror = fin-fvco;
linearfreqerror = fin-fvco1;
pp=0;
while pp == 0
    p = menu('一阶锁相环','相位误差','输入频率和VCO频率','退出');
    if p == 1
        plot(phierrn,freqerror,'r',phierrn,linearfreqerror,'k')         
        title('相位误差图')
        xlabel('相位误差/Pi')
        ylabel('频率误差 /Hz')
        grid
        pause
    elseif p == 2
        plot(t,fin,'k',t,fvco,'r');grid
        title('输入频率和VCO频率')
        xlabel('时间/s');ylabel('频率/Hz');
        pause
    elseif p == 3
        pp = 1;
    end
end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -