数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM

简介: 数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM

1.算法仿真效果
matlab2022a仿真结果如下:

e6fb361a06cea4e5ed012c310ab7be27_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

  传输模拟信号时一样,传输数字信号时也有三种基本的调制方式:幅移键控(ASK)、频移键控(FSK)和相移键控(PSK)。它们分别对应于用载波(正弦波)的幅度、频率和相位来传递数字基带信号,可以看成是模拟线性调制和角度调制的特殊情况。

   理论上,数字调制与模拟调制在本质上没有什么不同,它们都是属正弦波调制。但是,数字调制是调制信号为数字型的正弦波调制,而模拟调制则是调制信号为连续型的正弦波调制。

   在数字通信的三种调制方式(ASK、FSK、PSK)中, 就频带利用率和抗噪声性能(或功率利用率)两个方面来看,一般而言,都是PSK系统最佳。所以PSK在 中、高速数据传输中得到了广泛的应用。
AI 代码解读

ASK: 幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制下通或断,在信号为1的状态载波接通,此时传输信道上有载波出现;在信号为0的状态下,载波被关断,此时传输信道上无载波传送。那么在接收端我们就可以根据载波的有无还原出数字信号的1和0。

2-ASK信号功率谱密度的特点如下:
(1)由连续谱和离散谱两部分构成;连续谱由传号的波形g(t)经线性调制后决定,离散谱由载波分量决定;
(2)已调信号的带宽是基带脉冲波形带宽的二倍。

FSK:频移键控是利用两个不同频率f1和f2的振荡源来代表信号1和0,用数字信号的1和0去控制两个独立的振荡源交替输出。对二进制的频移键控调制方式,其有效带宽为B=2xF+2Fb,xF是二进制基带信号的带宽也是FSK信号的最大频偏,由于数字信号的带宽即Fb值大,所以二进制频移键控的信号带宽B较大,频带利用率小。

2-FSK功率谱密度的特点如下:

(1) 2FSK信号的功率谱由连续谱和离散谱两部分构成,离散谱出现在f1和f2位置;

(2) 功率谱密度中的连续谱部分一般出现双峰。若两个载频之差|f1 -f2|≤fs,则出现单峰。

PSK:在相移键控中,载波相位受数字基带信号的控制,如在二进制基带信号中为0时,载波相位为0或π,为1时载波相位为π或0。载波相位和基带信号有一一对应的关系,从而达到调制的目的。

2-PSK信号的功率密度有如下特点:

(1) 由连续谱与离散谱两部分组成;

(2) 带宽是绝对脉冲序列的二倍;

(3) 与2ASK功率谱的区别是当P=1/2时,2PSK无离散谱,而2ASK存在离散谱。

OOK(On-Off Keying),通断键控。

  如上图所示,Vm(t) 是需要发送的数字信号,Acos(2πfct) 是未经过调制的载波,VAM(t)是经过OOK调制的载波信号。

  OOK的调制原理就是用来控制把一个幅度取为0,另一个幅度为非0,就是OOK。又名二进制振幅键控(2ASK),它是以单极性不归零码序列来控制正弦载波的开启与关闭。
   正交振幅键控是一种将两种调幅信号(2ASK和2PSK)汇合到一个信道的方法,因此会双倍扩展有效带宽,正交调幅被用于脉冲调幅。正交调幅信号有两个相同频率的载波,但是相位相差90度(四分之一周期,来自积分术语)。一个信号叫I信号,另一个信号叫Q信号。从数学角度将一个信号表示成正弦,另一个表示成余弦。两种被调制的载波在发射时已被混和。到达目的地后,载波被分离,数据被分别提取然后和原始调制信息相混和。
   QAM是用两路独立的基带信号对两个相互正交的同频载波进行抑制载波双边带调幅,利用这种已调信号的频谱在同一带宽内的正交性,实现两路并行的数字信息的传输。该调制方式通常有二进制QAM(4QAM)、四进制QAM(l6QAM)、八进制QAM(64QAM)…,对应的空间信号矢量端点分布图称为星座图,分别有41664…个矢量端点。电平数m和信号状态M之间的关系是对于4QAM,当两路信号幅度相等时,其产生、解调、性能及相位矢量均与4PSK相同。


AI 代码解读

3.MATLAB核心程序

    i
    OOK_sequence=awgn(signal_OOK,SNR(i),'measured');
  
    PRK_sequence=awgn(signal_PRK,SNR(i),'measured');
    
    FSK_sequence=awgn(signal_FSK,SNR(i),'measured');
    
    OOK_sequence_mat=awgn(OOK_mat_mod,SNR(i),'measured');
    
    PRK_sequence_mat=awgn(PRK_mat_mod,SNR(i),'measured');
    
    FSK_sequence_mat=awgn(FSK_mat_mod,SNR(i),'measured');
 
    QAM_sequence_mat=awgn(QAM_mat_mod,SNR(i),'measured');
    
 
    OOK_demod      =(real(OOK_sequence) >=0.5);
    PRK_demod      =(real(PRK_sequence) >=0);
    FSK_demod      =(real(FSK_sequence)<imag(FSK_sequence));
 
    OOK_mat_demod  = genqamdemod(OOK_sequence_mat,[0  1]);
    PRK_mat_demod  = pskdemod(PRK_sequence_mat,2);
    FSK_mat_demod  = genqamdemod(FSK_sequence_mat,[1  1i]);
    rbdv_mat_demod = qamdemod(QAM_sequence_mat,16);
end
 
 
figure
semilogy(SNR,OOK,'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
hold on;
semilogy(SNR,OOK_mat,'-mo',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.5,0.9,0.0]);
hold on;
semilogy(SNR,PRK,'-b^',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.2,0.9,0.5]);
hold on;
semilogy(SNR,PRK_mat,'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
hold on;
semilogy(SNR,FSK,'-k<',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.3,0.3]);
hold on;
semilogy(SNR,FSK_mat,'-b>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.3,0.9]);
hold on;
semilogy(SNR,QAM_mat,'-ko',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.3]);
 
ylabel('BER')
xlabel('SNR')
legend('OOK','OOK toolbox','PSK','PSK toolbox','FSK','FSK toolbox','QAM toolbox')
grid on;
AI 代码解读
目录
打赏
0
0
0
0
238
分享
相关文章
基于Qlearning强化学习的机器人路线规划matlab仿真
本内容展示了基于Q-learning强化学习算法的路径规划研究,包括MATLAB仿真效果、理论知识及核心代码。通过训练与测试,智能体在离散化网格环境中学习最优策略以规避障碍并到达目标。代码实现中采用epsilon-贪婪策略平衡探索与利用,并针对紧急情况设计特殊动作逻辑(如后退)。最终,Q-table收敛后可生成从起点到终点的最优路径,为机器人导航提供有效解决方案。
52 20
基于神经网络逆同步控制方法的两变频调速电机控制系统matlab仿真
本课题针对两电机变频调速系统,提出基于神经网络a阶逆系统的控制方法。通过构造原系统的逆模型,结合线性闭环调节器实现张力与速度的精确解耦控制,并在MATLAB2022a中完成仿真。该方法利用神经网络克服非线性系统的不确定性,适用于参数变化和负载扰动场景,提升同步控制精度与系统稳定性。核心内容涵盖系统原理、数学建模及神经网络逆同步控制策略,为工业自动化提供了一种高效解决方案。
基于模糊神经网络的金融序列预测算法matlab仿真
本程序为基于模糊神经网络的金融序列预测算法MATLAB仿真,适用于非线性、不确定性金融数据预测。通过MAD、RSI、KD等指标实现序列预测与收益分析,运行环境为MATLAB2022A,完整程序无水印。算法结合模糊逻辑与神经网络技术,包含输入层、模糊化层、规则层等结构,可有效处理金融市场中的复杂关系,助力投资者制定交易策略。
基于风险的完整性和检查建模(RBIIM)MATLAB仿真
本程序为基于风险的完整性和检查建模(RBIIM)的MATLAB仿真,适用于评估和优化资产完整性管理计划,特别针对石油化工等领域的管道、储罐等设备。程序在MATLAB 2022A版本下运行,对比了先验密度(Prior Density)、后验完美检测(Posterior Perfect Inspection)、后验不完美检测(Posterior Imperfect Inspection)及累积后验不完美检测四个关键指标。算法采用贝叶斯统计框架,通过更新资产健康状况估计,制定最佳维护与检查策略。示例展示了核心原理与运行效果,完整程序无水印。
基于WOA鲸鱼优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本内容介绍了一种基于CNN-LSTM-SAM网络与鲸鱼优化算法(WOA)的时间序列预测方法。算法运行于Matlab2022a,完整程序无水印并附带中文注释及操作视频。核心流程包括数据归一化、种群初始化、适应度计算及参数更新,最终输出最优网络参数完成预测。CNN层提取局部特征,LSTM层捕捉长期依赖关系,自注意力机制聚焦全局特性,全连接层整合特征输出结果,适用于复杂非线性时间序列预测任务。
|
7月前
|
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
299 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
177 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
206 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等