当前位置:   article > 正文

瑞利信道建模 matlab程序原理到实现_由高斯随机数产生瑞利随机数

由高斯随机数产生瑞利随机数

目标

产生无线信道中的小尺度衰落系数h(t),其模服从瑞利分布:y(t) = h(t)*s(t) + n(t)

Steps:

(1)瑞利信道建模

① 什么是瑞利分布?
复高斯随机变量的模服从瑞利分布,即两个高斯随机变量的平方和开根号服从瑞利分布。
② 如何产生服从高斯分布的随机变量?
根据中心极限定理,N个独立同分布随机变量的和服从高斯分布

(2)Matlab 仿真

③ 如何用Matlab产生服从高斯分布的随机变量?
采用正弦叠加法进行Matlab仿真,利用N个服从均匀入射的正弦波作为基础信号,产生服从高斯分布的信号。基本原理如下:
公式1
公式2
公式3
公式4
其中, fd为最大多普勒频移。

度量

观察接收信号的功率谱是否符合经典谱的形状。



采用Simulink结合.m文件的形式实现
【注:】本文采用的是MATLAB R2020b 版本

打开Simulik 做出如下仿真图

图1

其中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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27


仿真结果

运行matlab得到如下仿真结果:

图2-仿真结果分析函数波形知接收信号的功率谱是符合经典谱的形状。



可以用matlab给的Rayleigh库进行比较

在原有的simulink仿真图上稍作修改得到如下仿真图

图3库比较运行matlab得到如下仿真结果:

图5库结果
分析函数波形知接收信号的功率谱是符合经典谱的形状。

比较两者可看出结果是一致的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/83821
推荐阅读
相关标签
  

闽ICP备14008679号