您现在的位置:首页 >> 通信 >> 内容

基于16QAM的载波同步和定时同步性能仿真,采用四倍采样,包括Costas环和gardner环

时间:2024/12/29 0:57:07 点击:

  核心提示:0sj_045m,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Z52VmZts

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览


3.算法概述

   Costas环(Costas Loop)用在抑制载波调制信号(比如双边带抑制载波调制)和相位调制信号(BPSK、QPSK)的相干解调中的载波恢复(carrier frequency recovery)上。Costas环的主要应用是在无线通信接收机中。与基于PLL的检波器相比,它的优势在于,在相位差比较小的情况下,Costas环输出的误差电压为 sin(2(θi−θf)) ,而基于PLL的检波器输出的误差电压为 sin(θi−θf) ,这不仅使灵敏度提高了一倍,而且使Costas环路特别适合跟踪载波的多普勒频移,特别是在OFDM和GPS接收机中。

   Gardner定时误差算法通常用在BPSK、QPSK信号,通过改进可以应用在QAM等多进制基带信号中。Gardner定时误差算法,该算法的一个特点是每个符号只需要使用两个采样点,一个是strobe点,即最佳观察点,另外一个是midstrobe点,即两个观察点之间的采样点。Gardener环中的数控振荡器与锁相环路中的NCO功能完全不同,这里的NCO作用是产生时钟,即确定内插基点mk,同时完成分数间隔uk的计算,以提供给内插器进行内插。

4.部分源码

 

            

            I_PLL=I_RRC_S(delay*nsamp-nsamp/2+mul*nsamp+2+k);   %鉴相器的I路输入信息数据

            Q_PLL=Q_RRC_S(delay*nsamp-nsamp/2+mul*nsamp+2+k);   %鉴相器的Q路输入信息数据

            dataoutI((i-1)*nsamp+k) = I_PLL;%用来查看鉴相器的I路输入信息数据

            dataoutQ((i-1)*nsamp+k) = Q_PLL;

            %鉴相器处理

            Discriminator_Out = (sign(I_PLL)*Q_PLL-sign(Q_PLL)*I_PLL)/sqrt(2);   

            dd((i-1)*nsamp+k) = Discriminator_Out;%用来查看鉴相器的输出

            %环路滤波器处理

            PLL_Phase_Part((i-1)*nsamp+k) = Discriminator_Out * C1;   

            Freq_Control((i-1)*nsamp+k) = PLL_Phase_Part((i-1)*nsamp+k)+PLL_Freq_Part((i-1)*nsamp+k-1);

            PLL_Freq_Part((i-1)*nsamp+k) = Discriminator_Out * C2 + PLL_Freq_Part((i-1)*nsamp+k-1);

            NCO_Phase = NCO_Phase + Freq_Control((i-1)*nsamp+k);  %生成的相位

            WC_frame((i-1)*nsamp+k) = FC_NCO + PLL_Freq_Part((i-1)*nsamp+k) * Freq_Sample;

 

............................................................................

%系统最后输出数据与原始数据比对

figure;

stem(I_Data(6:end-6));hold on;

stem(qoutI(2:end),'r');

grid on;

 

figure;

stem(Q_Data(6:end-6));hold on;

stem(qoutQ(2:end),'r');

grid on;

 

 

figure;

subplot(131);

plot(I_Data,Q_Data,'b*');title('16QAM星座图');

subplot(132);

plot(real(AMP(3000:end)),imag(AMP(3000:end)),'b*');title('16QAM带频偏时偏的星座图');

subplot(133);

plot(qoutI(3000:end),qoutQ(3000:end),'b*');title('16QAM同步后星座图');

0sj_045m

---

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168