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

目录

1.算法仿真效果

2.算法涉及理论知识概要

3.MATLAB核心程序

4.完整算法代码文件


1.算法仿真效果

matlab2022a仿真结果如下:

对比不同时偏,不同SNR下gardner环的定时调整参数uk变化仿真结果图:

2.算法涉及理论知识概要

       位同步,也叫符号同步、定时同步、码元同步,只有数字通信才需要,数字通信中不管是基带传输还是频带传输都需要。

       这是因为数字通信中,是用波形中的几个采样点去代替一个符号,在接收端只需要对这些采样点中的一个进行判决,便可以恢复出这个符号。

       实际通信中,由于信道的传输时延,接收两端的时钟偏移,接收端无法找到符号的最佳时刻来对其进行采样判决,这便使得接收端恢复出的数据与发送端的数据有误差。

       接收端若想在最佳采样时刻恢复发送端的数据,便要使得接收时钟与发送时钟同步,因此接收端要采取措施来调整接收端的采样时钟,这个同步的过程便定义为位同步。

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

         位同步环路中的数控振荡器(NCO)是一个相位递减器,它的差分方程为:
η(m+1)=[η(m)-ω(m)]mod1

       式中,η(m)是第m个工作时钟NCO寄存器的内容,ω(m)为NCO的控制字,两者都是正小数。NCO的工作周期是T s(采样周期),内插器的周期为T i,ω(m)由环路滤波器进行调节,使NCO在最佳采样时刻溢出。当环路达到平衡时,ω(m)近似是个常数,此时平均每隔1/ω(m)个采样周期,NCO就溢出一次,所以

gardner环内部结构如下所示:

3.MATLAB核心程序

...................................................................
%信号加载的时偏
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

4.完整算法代码文件

V

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
gardner 符号同步算法是一种用于数字通信系统中的信号同步技术。它主要用于在接收端从收到的信号中恢复出发送方的时钟和符号定时。在数字通信中,发送方和接收方的时钟可能存在微小的差异,这可能导致接收端无法准确地解调出发送方发送的符号。 gardner 符号同步算法通过追踪输入信号的眼图(eye diagram)来实现符号同步。首先,该算法将输入信号分为一系列不重叠的样本,然后计算每个样本间的差异,通过这些差异来调整时钟和符号定时。 具体来说,gardner 符号同步算法首先通过采样接收到的信号,并将其输入到一个时钟生成器模块中。时钟生成器产生一个与接收到的信号的时钟同步的本地时钟,并用来控制采样时刻。然后,该算法计算相邻样本之间的差异,并通过持续迭代调整时钟生成器的参数。最终,当差异达到最小值时,算法将输出正确的符号定时和时钟同步信息。 由于 gardner 符号同步算法能够动态调整时钟和符号定时,所以它能够有效地减小时钟偏差和采样偏差对解调性能的影响。它在数字通信系统中得到了广泛的应用,特别是在高速传输和弱信号境下。 总结而言,gardner 符号同步算法是一种用于数字通信系统中的信号同步技术,通过追踪眼图来实现符号同步,它能够动态调整时钟和符号定时,提高解调性能,广泛应用于高速传输和弱信号境。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱C编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值