这一节主要是讲一讲仿真过程中码相位与采样率的关系。
首先讲一下码相位,直扩通信的接收机主要分为2个模块:捕获模块和跟踪模块。我的毕设主要是研究跟踪模块。而跟踪模块中接收信号会有±1chip的码相位差。这个±1chip并不单指+1,-1两种可能,而是指实际通信中,会有+1~-1的无限种可能,但是在仿真过程中把所有的可能性都仿真出来显然不现实,所以我在此假设我的代码能判断出来-0.75,-0.5,-0.25,0,0.25,0.5,0.75这7种码相位差。而要实现这几种码相位差就要对信号进行合适的采样,我用图来表示:
首先放出来我的代码
Fs = Rc; %采样率
for phase = -3/4 : 1/4 : 3/4
ts1 = 0 / Fs : 1 / Fs : (ceil(Fs / Rc * (length(adata)) * Gp) - 1) / Fs;
ts2 = phase * (Fs / Rc) /Fs;
ts = ts1 + ts2;
Rc_rec = Rc * (1 - (f_doppler + 0.5 * f_accleration * ts1) / fc);
signal = data(floor(mod(Rc_rec .* ts,length(data))) + 1) .* exp(-1j * (2 * pi * f_doppler * ts + 0.5 * 2 * pi * f_accleration .* ts1 .* ts + theta));
plot(real(signal));xlim([0,50]);hold on;
end
当采样率与码速率相等时,即Fs = Rc;,仿真出来的结果图为:
黄色线为phase = -3/4,-2/4,-1/4的情况时
再继续进行一次循环,此时紫色线为phase = 0的情况时
最后浅蓝色线为phase = 1/4,2/4,3/4的情况时
由上面3个图可以看出,当Fs = Rc;时,代码只能判断出来+1,0,-1三种情况,此时的估计精度就比较差,所以我修改一下代码,将Fs = Rc;改为Fs = 4 * Rc;
此时可以很明显的看出,phase的7种情况都能仿真出来,所以当想要确定码相位精度的时候一定要考虑采样率的大小,采样率太小就会导致精度很低,码相位偏差较大。
文章评论(0条评论)
登录后参与讨论