hlayumi的个人空间 https://blog.eetop.cn/hslogic [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

科斯塔斯锁相环示例2

已有 23166 次阅读| 2017-7-17 11:45 |系统分类:硬件设计

close all;
clear all;
clc;

%% 信号及锁相环参数
Fs    = 1e6;     % 采样率
F0    = 1e5;     % 信号载波
DetaF = 100;     % 本地时钟与信号载波的差,频差越大需要的锁相周期越小
Time  = 1;       % 信号总时长
snr   = 10;      % 信噪比
T     = 1e-3;    % 锁相周期,要求远小于1/DetaF

LoopN  = Time / T;        % 锁相次数
Len    = Fs*T;            % 每次锁相采用的采样点数
SigLen = Fs*Time;         % 信号总长
wfc    = 2*pi*(F0+DetaF); % 初始本振角频率
t      = 0:1/Fs:T-1/Fs;   % 各段锁相中的时间序列

RecSig = cos(2*pi*F0*(0:SigLen-1)/Fs);   % 接收端信号
RecSig = awgn(RecSig,snr);

% FFTSig = 20*log10(abs(fftshift(fft(RecSig))));
% figure(1),subplot(2,1,1);plot((-SigLen/2:SigLen/2-1)/SigLen*Fs,FFTSig);title('接收信号频谱');
% figure(1),subplot(2,1,2);plot(RecSig);title('接收信号时域波形');

%% 锁相:鉴相+环路滤波+VCO
c1    = 153.7130;   % 环路滤波器的参数
c2    = 6.1498;

phase = 0;
temp  = 0;

% 记录中间过程的数组
PhaseDiff    = zeros(1, LoopN);
FrqDiff      = zeros(1, LoopN);
TmpI         = zeros(1, LoopN);
TmpQ         = zeros(1, LoopN);
VCOIn        = zeros(1, LoopN);

for i = 1:LoopN
    % 产生本振参考信号:根据当前锁相后的角频率
    LoOsc  = exp(1j*(wfc*t+phase));
    sine   = imag(LoOsc);
    cosine = real(LoOsc);

    % 鉴相:输出本振与接收信号相位差
    % 1、接收信号与本地参考信号相乘
    x_sine   = RecSig((i-1)*Len+1:i*Len) .* sine;
    x_cosine = RecSig((i-1)*Len+1:i*Len) .* cosine;
    % 2、低通滤波+抽取(降低处理速率),滤波器为全1的门函数,对应频域为sa函数
    TmpI(i)      = sum(x_cosine);
    TmpQ(i)      = sum(x_sine);
    PhaseDiff(i) = atan2(TmpQ(i), TmpI(i)); % 得到锁相环的输入
    
    % 环路滤波器:产生VCO输入
    VCOIn(i) = c1 * PhaseDiff(i) + temp;    % c1*x(n)+c2*sum(x(1:n-1))
    temp = temp + c2 * PhaseDiff(i);
    
    % VCO
    wfc  = wfc - VCOIn(i) * 2 * pi;     % 改变本地频率
    FrqDiff(i) = wfc;                   % 记录频率变化
    phase = wfc * Len / Fs + phase;     % 得到不同块的相位
end
figure(3),plot(1:LoopN,FrqDiff/(2*pi),'b',1:LoopN,F0,'r');
legend('锁相环跟踪频率','实际的载波频率');title('锁相环锁定频率情况');
23

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 0

    好友
  • 1

    获赞
  • 16

    评论
  • 5260

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 13:39 , Processed in 0.014401 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部