clarke经典多普勒谱理论模型与jakes模型实现 - 是晓雨呀

时间:2024-03-11 11:27:11

clarke经典多普勒谱理论模型与jakes模型实现

经典谱的产生(Clarke模型,即理论推导)
所谓的经典谱,最早是由Clarke于1968年提出来的。这个模型假设:

存在N个有任意相位的平面波,每个平面波以任意的方向达到接收机,且平均功率相同

也就是说,平面波达到接收机的仰角为零,而水平方位角(暂记为θ)在0到2π \piπ弧度之间均匀连续分布。

我们任选其中一束平面波来分析:

假设,发射信号为:x ( t ) 
则通频带发射信号:

 

 

 由于移动台的运动,到达接收机的所有平面波都会经历多普勒频移。则通过I II条传播路径的散射信道后(不同路径多普勒频移不同),通频带接收信号可表示为:

其中,Ci,┏i,fi分别表示第i条路径的信道增益,时延和多普勒频移。其中fi=fmcosθ,fm为最大多普勒频移,θ为入射角度)

基带接收信号为:

其中

 

所以尽管发射频率为fc,但是接收到的信号频谱却扩展到了 fc-fm到fc+fm范围内,这就是多普勒频展。

根据输入输出,可以把信道建模为一个线性时变滤波器,脉冲响应如下:

 

 

 

将此表达式回带进通频带接收信号,假设x(t)=1,可得通频带接收信号表达式为:

 

 

 

经典谱的产生(Jakes模型,即仿真实践)
单径瑞利信道,是信道的一种窄带衰落模型,在这种衰落模型中,信道时延扩展相对很小,多径分量不可分辨,信道为平坦衰落信道。可以用小信号模型来进行建模和拟合。

根据理论模型我们可知:复高斯信号的模服从瑞利分布,因此就需要产生一个复高斯信号,虚部实部都服从高斯分布。

那么我们如何生成这样的实部虚部呢?我们采用正弦波叠加法,理论依据是中心极限定理:无穷多个独立同分布信号的叠加服从高斯分布。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

此外,经过多普勒频移的正弦数N0必须足够大,以便衰落信道的振幅能够近似服从瑞利分布。一般取N0=8就足够大了。

得到结果后,我们用图表的形式展现出来(时域特性、幅度谱、相位谱、自相关函数、功率谱):

 

主函数

 1 close all, clear all,clc
 2 %参数
 3 fd= 926; %多普勒频率
 4 Ts= 1e-6;%采样周期
 5 M= 2^12;
 6 t=[0:M-1]*Ts;
 7 f=[-M/2:M/2-1]/(M*Ts*fd);
 8 Ns = 50000;
 9 t_state=0; %%最终时间
10 %信道生成
11 [h,t_state]= Jakes_Flat(fd,Ts,Ns,t_state,1,0);
12 subplot(311)
13 plot([1:Ns]*Ts,10*log10(abs(h)))
14 title([\'Jakes Model, f_d=\',num2str(fd),\'Hz,T_s=\',num2str(Ts),\'s\']);
15 axis([0 Ns*Ts -20 10])
16 xlabel(\'time[s]\'),ylabel(\'Magnitude[dB]\');
17 
18 subplot(323)
19 hist(abs(h), 50)
20 title([\'Jakes Model, f_d=\',num2str(fd),\'Hz,T_s=\',num2str(Ts),\'s\']);xlabel(\'Magnitude\'), ylabel(\'Occasions\')
21 
22 subplot(324)
23 hist(angle(h), 50)
24 title([\'Jakes Model,f_d=\',num2str(fd),\'Hz,T_s=\',num2str(Ts),\'s\']);xlabel(\'Phase[rad])\'),ylabel(\'Occasions\')
25 
26 %信道的自相关函数
27 temp = zeros(2,Ns);
28 for i =1: Ns
29     j= i:Ns;
30     temp(1:2,j-i+1)= temp(1:2,j-i+1)+[h(i)\'*h(j);ones(1,Ns-i+1)];
31 end
32 for k=1:M
33     Simulatcd_corr(k) = real(temp(1,k))./temp(2,k);
34 end
35 Classical_corr = besselj(0,2*pi*fd*t);
36 %自相关函数的傅里叶变换
37 Classical_Y= fftshift(fft(Classical_corr));
38 Simulated_Y= fftshift(fft(Simulatcd_corr));
39 subplot(325)
40 plot(t,abs(Classical_corr),\'k-\',t,abs(Simulatcd_corr),\'r:\')
41 title([\'Autocorrelation, f d=\',num2str(fd),\'Hz\'])
42 grid on
43 xlabel(\'delay \tau[s]\'), ylabel(\'Correlation\')
44 legend(\'Classical\',\'Simulated\')
45 
46 subplot(326)
47 plot(f,abs(Classical_Y),\'k-\', f,abs(Simulated_Y),\'r:\')
48 title([\'Doppler Spectrum,f_d=\',num2str(fd),\'Hz\'])
49 axis([-1 1 0 600]),
50 xlabel(\'f/f_d\'), ylabel(\'Magnitude\')
51 legend(\'Classical\',\'Simulated\')

信道模型函数

 

 1 function [h,tf]= Jakes_Flat(fd,Ts,Ns,t0,EO,phi_N)  %Jakes 信道模型
 2 %输入:
 3 % fd:多普勒频率
 4 % Ts:采样周期
 5 % Ns:采样点数
 6 % t0:初始时间
 7 % EO:信道功率
 8 % phi_N:具有最大多普勒频率正弦信号的初始相位
 9 %输出:
10 % h:复衰落向量
11 % t_state:当前时刻
12 if nargin<6,phi_N=0;end
13 if nargin<5,EO=1; end
14 if nargin<4,t0=0;end
15 if nargin<3
16     error(\'More arguments are needed for Jakes_Flat()\');
17 end
18 NO = 8;
19 N=4*NO+2;
20 wd=2*pi*fd;%最大多普勒频率[rad]
21 t=t0+[0:Ns-1]*Ts;%时间向量
22 tf = t(end)+Ts;%最终时间
23 coswt =[sqrt(2)*cos(0)*cos(wd*t); 2*cos(wd*cos(2*pi*([1:NO]\')/N)*t)]; 
24 h= EO/sqrt(2*NO+1)*exp(j*[phi_N pi*([1:NO])/(NO+1)])*coswt; 
25 
26 end

 

 

 

————————————————
原文链接:https://blog.csdn.net/ddatalent/article/details/118268913