实验四 利用锁相环实现载波同步
一、实验目的:利用matlab验证锁相环实现载波同步的原理和方法。
二、实验要求:设输入已调信号为FM信号,该调频信号由100HZ的信息正选拔调制1khz的载频而成。试用锁相环从已调信号中提取载波信号,实现载波同步。 三、实验原理:
FM调制原理:FM是由基带信号来调制载波信号的角频率,使其随基带信号线性变化;锁相环提取载波原理:
入信号 鉴相器 环路滤波器 压控振荡器 PD LF VCO VCO输出Uo(t)
四、实验源码 clear all; close all; f=1000; fs=100000; N=5000; Ts=1/fs;
t=(0:Ts:(N*Ts)-Ts); f1=100;
msg=sin(2*pi*f1*t); kf=.0628;
Signal=exp(j*(2*pi*f*t+2*pi*kf*cumsum(msg))); Signal1=exp(j*(2*pi*f*t)); phi_hat(1)=30; e(1)=0;
phd_output(1)=0; vco(1)=0; kp=0.15; ki=0.1;
for n=2:length(Signal)
vco(n)=conj(exp(j*(2*pi*n*f/fs+phi_hat(n-1)))); phd_output(n)=imag(Signal(n)*vco(n));
e(n)=e(n-1)+(kp+ki)*phd_output(n)-ki*phd_output(n-1); phi_hat(n)=phi_hat(n-1)+e(n); end;
startplot=1;
endplot=1000;
figure(1);
subplot(3,2,1);
plot(t(startplot:endplot),msg(startplot:endplot)); title('消息信号(频率100Hz)'); ylabel('幅度'); grid; figure(1);
subplot(3,2,2);
plot(t(startplot:endplot),real(Signal(startplot:endplot)));
title('FM已调信号(用100Hz的消息信号调制1KHz的载波)'); ylabel('幅度'); grid;
figure(1);
subplot(3,2,3);
plot(t(startplot:endplot),e(startplot:endplot)); title('环路滤波器的输出'); ylabel('幅度');
grid;
subplot(3,2,4);
plot(t(startplot:endplot),real(vco(startplot:endplot))); title('压控振荡器'); ylabel('幅度'); grid;
subplot(3,2,5);
plot(t(startplot:endplot),phd_output(startplot:endplot)); title('鉴相器的输出'); xlabel('时间(seconds)'); ylabel('幅度'); grid;
subplot(3,2,6);
plot(t(startplot:endplot),real(Signal(startplot:endplot))); title('载波(频率)'); xlabel('时间(seconds)'); ylabel('幅度'); grid;