matlab中生成瑞利信道的两种方法 您所在的位置:网站首页 多径瑞丽衰落信道 matlab中生成瑞利信道的两种方法

matlab中生成瑞利信道的两种方法

2023-06-18 01:59| 来源: 网络整理| 查看: 265

方法一: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; end BERtheory = 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,即加性高斯白噪声,理所当然在衰落过程中,信噪比对误码率没什么影响)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有