在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3021|回复: 0

单载波锁相环仿真

[复制链接]
发表于 2015-6-23 22:27:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 findbo 于 2015-6-23 22:28 编辑

最近研究导航信号跟踪,下面是通过nco累加产生一个单载波,并进行跟踪,积分时间为1ms,初始误差设置得很小,可是下面的代码始终无法锁定信号。而将锁相环鉴相器改为锁频环鉴频器就能锁定。不明白数据激励不对还是环路滤波器的问题,请指教。


for loop_cnt = 1:len

%     sig_nco = nco_max/len*(loop_cnt-1) - nco_max/2;

    for samp_cnt = 1:ms_samp
        sig(samp_cnt) = sin(2*pi*sig_nco/nco_max);
        sig_nco = sig_nco + sig_fcw;
        if sig_nco >= nco_max
            sig_nco = sig_nco - nco_max;
        end

        loc_sin(samp_cnt) = sin(2*pi*loc_nco/nco_max);
        loc_cos(samp_cnt) = cos(2*pi*loc_nco/nco_max);
        loc_nco = loc_nco + loc_fcw;
        if loc_nco >= nco_max
            loc_nco = loc_nco - nco_max;
        end
    end

    integral_i = sum(loc_sin.*sig);
    integral_q = sum(loc_cos.*sig);

%     pll_err(loop_cnt) = atan(integral_q/integral_i)/pi*180/360/0.001;
%     pll_s1 = pll_err(loop_cnt)*0.001^2*w^2 + pll_s1;
%     pll_s2(loop_cnt) = pll_err(loop_cnt)*0.001*1.414*w + pll_s1 ;

    pll_err(loop_cnt) = atan(integral_q/integral_i);
    pll_s1 = 0.001*pll_err(loop_cnt)*w^3 + pll_s1;
    pll_s2 = 0.001*(pll_err(loop_cnt)*1.1*w^2 + pll_s1) + pll_s2;
    pll_s3 = pll_err(loop_cnt)*2.4*w + pll_s2;

    loc_fcw_adj(loop_cnt) = pll_s3*nco_gain;

    loc_fcw = loc_fcw + loc_fcw_adj(loop_cnt);
end

loc_fcw_adj图如下:
untitled.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 20:42 , Processed in 0.022443 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表