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

m基于gardner环的定时同步matlab仿真,采用四倍采样,QPSK调制进行测试

时间:2023/8/27 16:29:28 点击:

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

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

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

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

点击店铺

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

2.部分仿真图预览


3.算法概述

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

4.部分源码

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

%信号加载的时偏

errs        = [2e-4,0.5e-4,0.2e-4];     

SNR_DBs     = [1,10,20];

idx         = 0;

 

 

 

for i1 = 1:length(errs)

for i2 = 1:length(SNR_DBs)

err         = errs(i1); 

SNR_DB      = SNR_DBs(i2);

idx         = idx+1;

sl          = 3000;           

 

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

I_D  = awgn(I_D,SNR_DB,'measured');  %接受端的信号,加载指定的snr

Q_D  = awgn(Q_D,SNR_DB,'measured');  %接受端的信号,加载指定的snr

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

 %gardner环

 for i = 2 : interplen - 1

     for k = 1 : nsamp

          %nco控制模块

          y_temp = q0 - w;

          q(m) = q0;

          if y_temp > 0

              q0 = y_temp;

          else 

              q0 = mod(y_temp,1);

              mk = m;

              uk = s0 * q(m);

              uu(j) = uk;

              %内插器I

              data1 = datarcosI(mk);

              data2 = datarcosI(mk + 1);

              interp_outI(j) = uk * data2 + (1 - uk) * data1;

              %内插抽取模块

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

          end

          m  = m + 1;

     end

      %误差检测         

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

      %环路滤波

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

 end

 

%gardner环性能

figure(1);

subplot(3,3,idx)

plot(uu,'b');

grid on; 

title(['SNR=',num2str(SNR_DB),'  时偏:',num2str(err)]);

 

end

end

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

figure;

subplot(311);

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

grid on;

xlim([5000,5100]);

legend('原始信号');

 

subplot(312);

stem(I_D(4:nsamp:end));

grid on;

xlim([5000,5100]);

legend('定时同步前基带信号');

 

subplot(313);

stem(qoutI(2:end));

grid on;

xlim([5000,5100]);

legend('gardner环输出基带信号');

0X_025m

---

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