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