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

📄 pll.m

📁 《FPGA嵌入式应用系统开发典型实例》-书的光盘资料
💻 M
字号:
% 本程序仿真正弦波的跟踪过程
% PLL illustration using MATLAB 
% 2002
clear all;
% close all;
% 定义初始相位偏移和输入连续波频率以及采样频率
theta = 60*pi/180; 
f=1e3; 
fs=100e3;

% 生成未调制连续波的实部和虚部
k=1:1:1000;
delf=f/20;
cpx1=exp(j*(2*pi*k*(f+delf)/fs+theta))+.01*(rand(1,1000)+j*rand(1,1000));


%初始化锁相环 
phi_hat(1)=30;
e(1)=0;
phd_output(1)=0;
nco(1)=0

% 定义环路滤波器参数
kp=0.15;        % 比例常数
ki=0.1;            % 积分常数

% 锁相环的实现
for n=2:length(cpx1)
    nco(n)=conj(exp(j*(2*pi*n*f/fs+phi_hat(n-1))));                     % 数控振荡器
    phd_output(n)=imag(cpx1(n)*nco(n));                                  % 鉴相
    e(n)=e(n-1)+(kp+ki)*phd_output(n)-ki*phd_output(n-1);     %滤波
    some(n)=(kp+ki)*phd_output(n)-ki*phd_output(n-1);
    phi_hat(n)=phi_hat(n-1)+e(n);                                               % 更新数控振荡器
end;

% 绘图
index_stop=200;
figure
subplot(211),plot(1:index_stop, phd_output(1:index_stop)),ylabel('Ph. Det.')
subplot(212),plot(1:index_stop, phi_hat(1:index_stop)*180/pi),ylabel('Est. Phs.')
figure, index_stop=200;
subplot(211),plot(1:index_stop, real(nco(1:index_stop)),1:index_stop, real(cpx1(1:index_stop))),
ylabel('RE-PLL')
subplot(212),plot(1:index_stop, imag(nco(1:index_stop)),1:index_stop, imag(cpx1(1:index_stop))),
ylabel('IM-PLL')

⌨️ 快捷键说明

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