目标
产生无线信道中的小尺度衰落系数h(t),其模服从瑞利分布:y(t) = h(t)*s(t) + n(t)
Steps:
(1)瑞利信道建模
① 什么是瑞利分布?
复高斯随机变量的模服从瑞利分布,即两个高斯随机变量的平方和开根号服从瑞利分布。
② 如何产生服从高斯分布的随机变量?
根据中心极限定理,N个独立同分布随机变量的和服从高斯分布。
(2)Matlab 仿真
③ 如何用Matlab产生服从高斯分布的随机变量?
采用正弦叠加法进行Matlab仿真,利用N个服从均匀入射的正弦波作为基础信号,产生服从高斯分布的信号。基本原理如下:
其中, fd为最大多普勒频移。
度量
观察接收信号的功率谱是否符合经典谱的形状。
采用Simulink结合.m文件的形式实现
【注:】本文采用的是MATLAB R2020b 版本
打开Simulik 做出如下仿真图
其中MATLAB Function中需要写入自己写好的代码,代码的原理参考前文描述。
function y=srch(x)
L=length(x);%输入信号长度
N=1024; %累加个数
ts=1e-4; %采样时间
fc=1e9; %载波频率
c=3e8; %光速
v=120/3.6; %移动速度米/秒
fd=(v/c)*fc;%最大多普勒频移
persistent theta; %设置入射角为全局变量
if isempty(theta)
theta=2*pi*rand(1,N); %返回2*pi*(1 x N维向量)
end
persistent t0; %设置采样时刻为全局变量
if isempty(t0)
t0=0;
end
t=t0:ts:(t0+(L-1)*ts); %L个输入数据对应的采样时刻
t0=t(end); %为下一组输入信号的起始采样时刻赋初值
h=complex(zeros(N,L)); %初始化矩阵h or %h=complex(h(:,:));
%h矩阵的第i列代表N个入射信号
for i=1:L
h(:,i)=exp(1i*(2*pi*fd*cos((2*pi*(1:N))/N)*t(i)+theta))/sqrt(N);
end
h=sum(h,1); %按列求和,hi代表第i个输入信号对应的信道衰落值
y=h.'.*x; %输入信号和信道衰落相乘
end
仿真结果
运行matlab得到如下仿真结果:
分析函数波形知接收信号的功率谱是符合经典谱的形状。
可以用matlab给的Rayleigh库进行比较
在原有的simulink仿真图上稍作修改得到如下仿真图
运行matlab得到如下仿真结果:
分析函数波形知接收信号的功率谱是符合经典谱的形状。
比较两者可看出结果是一致的。