方法一:matlab自带的瑞利信道
comm.RayleighChannel

方法二:复高斯法
当两个高斯分布正交叠加时,其和的包络服从瑞利分布。具体推导证明可参见樊昌兴的《通信原理》等书。
简单说就是,a和b为两个独立的高斯分布,若r=a+ib,则r是服从瑞利分布的。
参考:
BPSK系统在瑞利衰落信道下的性能-MATLAB基带仿真
瑞利信道仿真 matlab

matlab代码

N=10000; % 序列长度
SNR=-5:5;
M=2;
tx=randi([0,M-1],N,1); % 原始信号
pskSig=pskmod(tx,M); % BPSK调制%% 方法一:瑞利信道
rayleighChan=comm.RayleighChannel(); % 调用自带的瑞利信道
fadeSig = rayleighChan(pskSig);%% 方法二:复高斯法
h = (randn(N,1)+i*randn(N,1))/sqrt(2);
fadeSig3 = h.*pskSig;%% 高斯信道
awgnChan=comm.AWGNChannel('NoiseMethod','Signal to noise ratio (SNR)');%% 信号通过信道
for i=1:length(SNR)awgnChan.SNR=SNR(i);rxSig_rayleigh_awgn = awgnChan(fadeSig);rxSig3_rayleigh_awgn = awgnChan(fadeSig3);rxSig4_awgn = awgnChan(pskSig);rx_rayleigh_awgn=pskdemod(rxSig_rayleigh_awgn,M);rx3_rayleigh_awgn=pskdemod(rxSig3_rayleigh_awgn,M);rx4_awgn = pskdemod(rxSig4_awgn,M);[num1,err1] = biterr(tx,rx_rayleigh_awgn);[num3,err3] = biterr(tx,rx3_rayleigh_awgn);[num4,err4] = biterr(tx,rx4_awgn);BER_rayleigh_awgn(i) = err1;BER3_rayleigh_awgn(i) = err3;BER4_awgn(i) = err4;endBERtheory = berawgn(SNR','psk',M,'nondiff');
semilogy(SNR,BERtheory,'-',SNR,BER4_awgn,'-*');
legend('AWGN理论','AWGN仿真','Location','southwest');
hold on;semilogy(SNR,BER_rayleigh_awgn,'-^',SNR,BER3_rayleigh_awgn,'-x','MarkerSize',10);
legend('AWGN理论','AWGN仿真','自带瑞利信道','复高斯法','Location','southwest');
hold off;

图片

分析

1.matlab自带的瑞利信道比两种自建的方法的误码率高,因为调用自带的瑞利信道时,直接是
rayleighChan=comm.RayleighChannel();
打开matlab帮助文档,可以看到实际的瑞利信道还有多普勒频移、多径数量等参数,两种自建方法并没有考虑这些因素。
瑞利分布序列叠加法因为是用序列直方图包络去接近瑞利分布的概率密度函数,所以误差更明显,毕竟瑞利分布是连续的,序列是离散的。

2.信号加噪再经过衰落信道,与信号只加噪相比,误码率明显增大。
3.经过衰落后,误码率与信噪比没什么关系了,说明衰落是引起误码的主要原因。可以尝试去掉衰落信道后面的加噪信道,即只经过衰落。可以发现此时误码率没有根本变化。(衰落是乘性的,高斯噪声是加性的。虽然一般把对原始信号所有的影响都统称为噪声,但误码率-信噪比曲线中的噪声是AWGN,即加性高斯白噪声,理所当然在衰落过程中,信噪比对误码率没什么影响)

matlab中生成瑞利信道的两种方法相关推荐

  1. 条码生成器中生成药品电子监管码的两种方法

    在生成药品电子监管码之前,我们首先要对药品电子监管码有一个简单的了解.药品电子监管码共计20位数字,前7位是产品资源码(包含企业信息,药品名称,批准文号等等信息),8到16位是单件产品的序列号,最后4 ...

  2. 多元统计分析matlab,MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法...

    MATLAB的统计工具箱中的多元统计分析中提供了聚类分析的两种方法: 1.层次聚类hierarchical clustering 2.k-means聚类 这里用最简单的实例说明以下层次聚类原理和应用发 ...

  3. matlab中如何读写txt,Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 matlab读取文本文件的几种函数: 1.load--适合读取纯数据文本: 2.importdata--只读取数据,自动省略数据格式前后的字符,超大文件不适合: ...

  4. python requirements.txt_python生成requirements.txt的两种方法

    这篇文章主要介绍了python生成requirements.txt的两种方法,每种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 python项目如何在另一个环境上重新构建项目 ...

  5. Revit插件教学丨Revit中绘制斜楼板的两种方法?

    Revit插件教学丨Revit中绘制斜楼板的两种方法? 我们经常遇到一些斜楼板,很多朋友不知道如何画好楼板,经常在公众号留言说怎么画好楼板,怎么快速高效.但我相信很多玩Revit的玩家都很熟悉,今天和 ...

  6. 产生随机字符java_java生成随机字符串的两种方法

    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下 import java.util.Random; public class CharacterUtils { //方法1 ...

  7. arcgis用python字段自动编号,arcgis中字段自动编号的两种方法

    <arcgis中字段自动编号的两种方法>由会员分享,可在线阅读,更多相关<arcgis中字段自动编号的两种方法(4页珍藏版)>请在人人文库网上搜索. 1.精选文档关于ARCGI ...

  8. php 自动生成查询密码,php自动生成新密码的两种方法

    php自动生成新密码的两种方法,方法一采用的是随机种子,方法是乱序数组,异曲同工吧. 有需要的朋友可以参考下. 方法1: 代码示例: /* * php自动生成新密码自定义函数 适用环境: PHP5.2 ...

  9. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

  10. WPF中在XAML中实现数据类型转换的两种方法

    WPF中在XAML中实现数据类型转换的两种方法 原文:WPF中在XAML中实现数据类型转换的两种方法 熟悉数据绑定的朋友都知道,当我们在Model中获取一个对象的数据,常常需要对其进行数据转换后显示在 ...

最新文章

  1. LNK1169 找到一个或多个多重定义的符号
  2. 在linux下配置oracle的远程访问
  3. Regex解析字符串
  4. ubuntu上的wordpress文章的本地存储位置
  5. 图像处理工具包ImagXpress中如何设置上下文菜单
  6. c#中BackGroundWorker控件
  7. 图片垂直居中的CSS技巧
  8. python基于web可视化_python可视化(转载)
  9. 买基金的一个很重要的知识
  10. 【项目实施随笔】生产领料
  11. Nginx虚拟主机别名的配置
  12. 三菱plc分拣程序_基于三菱PLC控制的物料自动分拣模型
  13. 11.3 帧中继基本配置
  14. 如何在Excel中创建组合图
  15. 安卓开发—Android基础
  16. PS制作火焰效果文字的方法步骤教程
  17. 专精特新企业具体解释和好处
  18. c语言编写51单片机中断程序,执行过程是怎样的?
  19. Prolog教程 3
  20. 阿里云推荐码 9折优惠 vx89to

热门文章

  1. window xp 自动关机命令
  2. 命名实体识别NER探索(5) Bert+BiLSTM+CRF模型实战应用
  3. Turbo码原理简介
  4. oracle查看表索引及索引类型
  5. linux典型压缩包操作 tar打包、压缩与解压
  6. 纯js开发android,js开发app_安卓app开发引擎
  7. 史上最全的 iOS测试工具集锦(自动化、性能)
  8. Oracle简单SQL语句(详细!!!)
  9. PICT-测试用例生成工具
  10. 作为IT男必须会Linux服务器被攻击后如何处理!网友:这个要会!