我是靠谱客的博主 拼搏鸵鸟,最近开发中收集的这篇文章主要介绍瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)Matlab 仿真度量,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目标
产生无线信道中的小尺度衰落系数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得到如下仿真结果:
分析函数波形知接收信号的功率谱是符合经典谱的形状。
比较两者可看出结果是一致的。
最后
以上就是拼搏鸵鸟为你收集整理的瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)Matlab 仿真度量的全部内容,希望文章能够帮你解决瑞利信道建模 matlab程序原理到实现目标Steps:(1)瑞利信道建模(2)Matlab 仿真度量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复