前言
Jakes衰落信道模型是一种考虑了多普勒频移的瑞利衰落信道模型。本文介绍Jakes衰落信道模型,并给出其MATLAB仿真代码。
一、Jakes衰落信道模型
Jakes衰落信道模型是一种考虑了多普勒频移的瑞利衰落信道模型。Jakes衰落信道模型采用正弦波叠加的方法生成相关瑞利分布随机样本。Jakes瑞利衰落过程的正交分量由下式给出:
式中,
ωd 是最大多普勒角频率,φn、ϕn 和 θn 对于所有的 n 都是统计独立的,并且在 [–π, π) 范围内均匀分布。
下面给出以上述式(1)-(3)生成相关瑞利分布衰落样本的MATLAB代码。
二、MATLAB代码
Jakes瑞利衰落信道模型的MATLAB代码如下:
function h = Jakes_Rayleigh(fd, M, dt, N)
T = N*dt - dt;
t = 0:dt:T;
const = sqrt(2/M); % 归一化功率系数
w = 2*pi*fd;
x = 0;
y = 0;
for n = 1:M
alpha = (2*pi*n-pi+(2*pi*rand-pi)) / (4*M); % 第n条入射波的入射角
ph1 = 2*pi*rand - pi; % 随机相位服从(-pi,pi)之间的均匀分布
ph2 = 2*pi*rand - pi;
x = x + const*cos(w*t*cos(alpha) + ph1);
y = y + const*cos(w*t*sin(alpha) + ph2);
end
h = (x + 1j*y) / sqrt(2);
m文件Jakes_Rayleigh的输入参数包括最大多普勒频率(用fd表示),以赫兹为单位,可根据接收端移动速度来确定;正弦波的数量(用M表示);时间步长(用dt表示);以及所需的衰落序列长度(用N表示)。所有φn、ϕn和θn的值都是通过rand获得的,rand产生均匀分布的随机数。使用适当的M值(M不小于8)、N和dt,可以获得所需的多普勒扩展。
根据设定的移动速度即载波频率,可以得到不同的fd,运行上述程序可以得到Jakes衰落信道模型在不同移动速度下的衰落信号。以10km/h和100km/h的移动速度进行仿真,仿真代码如下:
代码如下(示例):
speed = [10, 100]; % 移动速度,单位km/h
M = 10;
rate = 9600;
N = 1e5;
v = speed * 1000 / 3600; % 移动速度单位转换成m/s
c = 3e8; % 光速
fc = 9e8; % 载波频率,默认值900MHz
fd = v * fc / c;
dt = 1/(2*rate);
figure()
for n = 1:length(speed)
r = Jakes_Rayleigh(fd(n), M, dt, N); % 修改后给出的是一个复数
subplot(length(speed),1,n)
plot(20*log10(abs(r)))
xlabel('sample')
ylabel('接收信号的包络/dB')
title(['移动通信中接收的衰落信号的包络(v=',num2str(speed(n)),'km/h)'])
grid on
end
fr_approx = pdf_sim(abs(r));
仿真得到的衰落信号画图如下:
概率密度函数如下: