瑞利信道建模 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


仿真结果

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

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



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

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

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

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

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

  • 15
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值