⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档.txt

📁 Program from 移动传播环境-理论基础、分析方法和建模技术 杨大成编著 机械工业出版社 2003 % Program from pp.280~281 附录A 正弦波叠加法
💻 TXT
字号:
函数Parameter_Classical
function[f_i,c_i,theta_i]=Parameter_Classical (Method_type,N_i,Variance,fmax,phase)
//功能:确定离散多普勒频移(f),多普勒系数(C),多普勒相移,适用于仿真经典功率谱的情况。
//输入参数说明:
(1)Method_type,表示计算离散多普勒频移和多普勒系数所采用的方法。
(2)N_i,表示正弦振荡器的数目;
(3)Variance,表示确定高斯过程的平均功率;
(4)fmax,表示最大多普勒频移;
(5)phase,表示用于计算多普勒相移的方法。
//输出参数说明:
(1)1.f_i,表示离散多普勒频移;
(2)2.c_i,表示多普勒系数;
(3)3.theta_i,表示多普勒相移。
//程序:
function[f_i,c_i,theta_i]=Parameter_Classical(Method_type,N_i,Variance,fmax,phase)
sigma=sqrt(Variance);

%等距离法(MED)
if  Method_type=='MED'
    n=(1:N_i)';
    f_i=fmax/(2*N_i)*(2*n-1);
    c_i=2*sigma/sqrt(pi)*(asin(n/N_i)-asin((n-1)/N_i)).^0.5;
   
%等面积法(MEA)
elseif  Method_type=='MEA'
        n=(1:N_i)';
        f_i=fmax*sin(pi*n/(2*N_i));
        c_i=sigma*sqrt(2/N_i)*ones(size(n));

%Monte Carlo法(MCM)
elseif  Method_type=='MCM'
        n=rand(N_i,1);
        f_i=fmax*/(2*sin(pi*n/2);
        c_i=sigma*sqrt(2/N_i)*ones(size(n));

%最小均方误差法(MSEM)
elseif  Method_type=='MSEM'
        n=(1:N_i)';
        f_i=fmax/(2*N_i)*(2*n-1);
        T=1/(2*fmax/N_i);
        M=5e3;
        t=linspace(0,T,M);
        Jo=basselj(0,2*pi*fmax*t);
        c_i=zeros(size(f_i));
        for k=1:length(f_i)
            c_i(k)=2*sigma*sqrt(1/T*(trapz(t,Jo.*cos(2*pi*f_i(k)*t))));
        end;

&精确多普勒扩展法(MEDS)
elseif  Method_type=='MSEM'
        n=(1:N_i)';
        f_i=fmax*/(2*sin(pi*(n-0.5)/(2*N_i));
        c_i=sigma*sqrt(2/N_i)*ones(size(n));

%Jakes仿真法(Jakes)
elseif  Method_type=='Jakes'
        n=1:N_i-1;
        f_i=fmax*[[cos(pi*n/(2*N_i-1))1]',[cos(pi*n/(2*N_i-1))1]'];
        c_i=2*sigma/sqrt(N_i-1/2)*[[sin(pi*n/(2*N_i-1))1/2]',[cos(pi*n/(N_i-1))1/2]'];
        theta_i=zeros(size(f_i));
        phase='none';
else 
        error('Method is unknow')
end

%计算多普勒相移:
if      phase=='rand',
        theta_i=rand(N_i,1)*2*pi;
elseif  phase=='permuted'
        n=(1:N_i)';
        U=rand(size(n));
        [x,k]=sort(U);
        theta_i=2*pi*n(k)/(N_I+1);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -