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

📄 rand_nakagami.m

📁 是硕士论文里面的关于NAKAGAMI信道的代码,MATLAB写的,大家可参考
💻 M
字号:
function ccc=rand_nakagami(m1,N1,N2,fm1)
%这个函数使用仿真的方法来产生服从Nakagami_m分布的随机变量的函
%----------------------------- 2005.5.30 ---------------------------------
% Shuai lujun,information Engineering college,Dalian Maritime Univ.
%m1 是nanagami_m 的系数 m;
%fm1 是最大多普勒频移;
%N1 N2是要生成矩阵的行和列;
p=round(2*m1);
alpha=(2*p*m1-sqrt(2*p*m1*((1+p)-2*m1)))/p/(p+1);
beta=2*m1-alpha*p;
T_interval=0.0001;                            %sample interval
N=N1*N2;                                      %number of samples,向无穷大取整
t=[0:N-1]*T_interval;
M=16;                                         %the number of low-frequency oscillators
wm=2*pi*fm1;                                  %the max doppler frequency



n=1:M;
s_n=2*pi*n/(4*M+2);
wn=wm*cos(s_n);
ph_n=n*pi/M;

%--------------------------------------------------------------------------
%生成同相分量
%--------------------------------------------------------------------------
Zc=0;
for k=1:p
   Zck=sqrt(4/(4*M+2))*cos(0)*cos(wm*t+2*pi*rand(1));
   Zck=Zck+sqrt(2/(4*M+2))*2*cos(ph_n)*cos(wn'*t+2*pi*rand(16,N));
   Zcks=Zck.^2;
   Zc=Zc+Zcks;
end
%--------------------------------------------------------------------------
%生成正交分量
%--------------------------------------------------------------------------

Zs=sqrt(2/(4*M+2))*2*sin(ph_n)*cos(wn'*t+2*pi*rand(16,N));
Zs=Zs.^2;


Z=sqrt(alpha*Zc+sqrt(-1)*beta*Zs);
z=Z/sqrt(m1);                            %功率随m变化
%z=Z/sqrt(mean(abs(Z).^2));              %功率归一化为1
%--------------------------------------------------------------------------
%输出『N1,N2』维的服从Nakagami_m的矩阵
%--------------------------------------------------------------------------
for i=1:N1
   ccc(i,:)=z((i-1)*N2+1:i*N2);
end

⌨️ 快捷键说明

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