1、系统框图

2、代码

clear all
close all
clc
N = 10000;   %比特数
SNR=0:10;   %SNR的范围
EbN0 = 10.^(SNR/10);
err_num=zeros(1,length(SNR)); % 错误bit个数
simu_ber = zeros(1,length(SNR));     % 仿真误误码率
theory_berAWGN = zeros(1,length(SNR));   % 理论误码率
theroy_berRaliy = zeros(1,length(SNR));   % 理论误码率
R=raylrnd(0.5,1,N);      %产生瑞利信号
M = 4;%进制数
graycode = [0,1,2,3];%格雷映射
send_bit = randsrc(1,N,[0:3]);
send_bit2 = graycode(send_bit+1); %格雷编码
send_bit3 = pammod(send_bit2,M);%PAM调制msg_tx = real(send_bit3);
hR = send_bit3.*R; %瑞利分布
pow_msg=norm(msg_tx)^2/length(msg_tx); %信号码元功率Es
for k=1:length(SNR)   sigma=sqrt(pow_msg/(2*10^(SNR(k)/10))); %噪声方差msg_rx_awgn=msg_tx+sigma*randn(1,N);%通过AWGN信道msg_rx_raily=awgn(hR,SNR(k),'measured');%4PAM 解调 dePAM_awgn = pamdemod(msg_rx_awgn,M);%PAM解调decPAM_awgn = graycode(dePAM_awgn+1);%解映射dePAM_Raily = pamdemod(msg_rx_raily,M);decPAM_Raily = graycode(dePAM_Raily+1);[~,BER(k)] = biterr(send_bit, decPAM_awgn, log2(M));   %计算AWGN信道BER[ ~,BER1(k)] =biterr(send_bit,decPAM_Raily,log2(M));   %计算瑞利衰落+AWGN信道BER[ ~,SER(k)] = symerr(send_bit, decPAM_awgn);            %计算AWGN信道SER[~,SER1(k)] = symerr(send_bit, decPAM_Raily);          %计算瑞利衰落+AWGN信道SERtheory_ser(k) = 1.5*qfunc(sqrt(0.4*EbN0(k))); % 理论误符号特率theory_ber(k) = (2*(M-1)/M)*qfunc(sqrt(6*EbN0(k)/(M^2-1)));% 理论误比特率end
figure
semilogy(SNR,BER,'-ro',SNR,SER,'-r*',SNR,BER1,'-b.',SNR,SER1,'-b^',SNR,theory_ser,'o-',SNR,theory_ber,'-sg')  ;     %画出BER和SER随SNR变化的曲线
legend('AWGN信道BER','AWGN信道SER','Rayleigh衰落+AWGN信道BER','Rayleigh衰落+AWGN信道SER','理论误符号率','理论误比特率');
title('4PAM在AWGN和Rayleigh衰落信道下的性能');
xlabel('信噪比(dB)');
ylabel('误符号率和误比特率');%%画星座图
scatterplot(send_bit3);
title('调制信号星座图');
scatterplot(msg_rx_awgn);
title('AWGN接收信号星座图');
scatterplot(msg_rx_raily);
title('Raily接收信号星座图');

3、实验结果

4PAM在高斯信道与瑞利信道下的基带仿真系统实验相关推荐

  1. BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道与瑞利信道下的误码率性能仿真

    BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道与瑞利信道下的误码率性能仿真_南大小王-CSDN博客 16QAM调制解调仿真(matlab,详细介绍仿真方案的设计.结果及结论.完整代 ...

  2. (7,4)汉明码在BPSK系统下的性能-MATLAB基带仿真

    (7,4)汉明码在BPSK系统下的性能-MATLAB基带仿真 仿真步骤 产生一定长度的值为0或1的随机序列 d ( t ) d(t) d(t). 根据监督矩阵,将初始数据序列映射为编码后的二元序列 s ...

  3. m瑞利信道下对比ZF-SIC,MMSE-SIC,MRC三种均衡算法的误码率matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 移动通信系统的性能在很大程度上决定于无线信道的特性.单发单收系统无线信道的特性已经研究得很透彻,针对 ...

  4. 瑞利信道下基于判决反馈的16QAM信道均衡(matlab源码)

    运行环境:matlab2018a: 这是一个简单的判决反馈的自适应均衡程序: M=16; hMod = comm.RectangularQAMModulator('ModulationOrder', ...

  5. 【OFDM】多径信道下OFDM通信系统误码率仿真附matlab代码

    1 内容介绍 仿真是科学研究和工程建设中非常重要的方法.交频分复用(OFDM)技术是下一代移动通信的核心技术之一.重点研究了多径瑞利衰落信道下最大多径时延对基于OFDM技术的通信系统性能的影响. 2 ...

  6. (一)win10环境下使用自带linux系统进行虚拟机创建

    (一)win10自带linux系统环境配置 1. 写在前面 2. 开始配置 2.1 进入开发人员模式 2.2 启用子系统功能 2.3 下载ubuntu 2.4 安装ubuntu 2.5 母系统下运行方 ...

  7. 基于MATLAB的中继系统在瑞利信道下的误码率仿真分析

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型.这种模型假设信号通过无线信道 ...

  8. 【误码率仿真】基于matlab多径信道下OFDM通信系统误码率仿真【含Matlab源码 2078期】

    ⛄一.OFDM简介 1 OFDM调制解调原理 一个OFDM信号可以表示为 每个子载波可采用正交幅度调制(QAM)或相移键控调制(PSK).其中Xi,k为第i个OFDM符号在第k个子载波上传输的数据;N ...

  9. m扩频通信系统在瑞利信道中的误码率性能matlab仿真

    目录 1.算法描述 2.matlab算法仿真效果 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 本课题,我们主要涉及到两个理论要点,第一个是瑞利衰落条件,第二个是扩频通信.下面分别对这 ...

最新文章

  1. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
  2. PyQt5 简易计算器
  3. 构造函数和析构函数的简单说明
  4. QML基础类型之data
  5. XML Schema介绍之namespace
  6. SQL JOIN-Hash Join
  7. python樱花代码_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
  8. 使用LiteOS Studio图形化查看LiteOS在STM32上运行的奥秘
  9. java操作oracle数据_Java连接Oracle数据库操作
  10. linux编程 定时器,Linux 定时器编程
  11. 微信、米聊等国内kik类手机通信录互动应用前景探讨
  12. PC系统启动过程简介以及Windows引导修复
  13. Linux环境下安装tomcat并配置开机自启
  14. AI工程师的自我修养
  15. TextView 加下划线 、 中划线
  16. 【ROM制作工具】如何精简ROM?快速精简ROM详细教程!
  17. android 各个手机型号的功放和听筒模式的研究
  18. harmonyos演示,HarmonyOS 2.0 跨屏演示:手机编辑内容跨到平板,自动优化排版
  19. 如何坚持不懈的做某件事情
  20. 解锁万亿级市场,边缘计算不“边缘”

热门文章

  1. js截取字符串(从后往前截)
  2. 软通动力华为java机考题库_软通动力Java考试题库.doc
  3. 客户端跟服务器通讯如何选择协议,客户端怎么和服务器通信协议
  4. springboot集成knif4j,swagger
  5. 十多天的鸭子得了心包积液是什么原因鸭摇头晃脑不吃食怎么治疗
  6. [ 虚拟专用网 ] IPsce 虚拟局域网(安全的IP协议的虚拟专用网)详解(一)
  7. 转贴:[铿锵发金石 幽眇感鬼神] 高瞻“家园”诗4首浅议[蛮桂]
  8. Postgresql 客户端 psql 的使用
  9. Git操作失败提示fatal: Unable to create 'E:/GitDemos/todolist/.git/index.lock': File exists...
  10. sklearn preprocessing PolynomialFeatures 用法