我是靠谱客的博主 拼搏鸵鸟,最近开发中收集的这篇文章主要介绍瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)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库结果
分析函数波形知接收信号的功率谱是符合经典谱的形状。

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

最后

以上就是拼搏鸵鸟为你收集整理的瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)Matlab 仿真度量的全部内容,希望文章能够帮你解决瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)Matlab 仿真度量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部