首页 > 其他分享 >数字通信调制方式的误码率matlab仿真,包括OOK,PRK,FSK以及QAM

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

时间:2023-05-17 23:31:42浏览次数:32  
标签:误码率 ... FSK OOK 信号 载波 调制

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

1.png

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

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

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

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)…,对应的空间信号矢量端点分布图称为星座图,分别有4、16、64…个矢量端点。电平数m和信号状态M之间的关系是对于4QAM,当两路信号幅度相等时,其产生、解调、性能及相位矢量均与4PSK相同。

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;

标签:误码率,...,FSK,OOK,信号,载波,调制
From: https://blog.51cto.com/matworld/6294698

相关文章

  • MATLAB仿真8DPSK信号在AWGN信道下的误码率分析 商品形式:程序 实现功能
    MATLAB仿真8DPSK信号在AWGN信道下的误码率分析商品形式:程序实现功能:MATLAB仿真8DPSK信号在AWGN信道下的误码率与误比特率分析,与理论值进行比较。ID:6250644391639967......
  • python调用企业微信webhook发送消息
    官方文档:群机器人配置说明-文档-企业微信开发者中心发送图片解决:{"errcode":301019,"errmsg":"mediamd5notmatch,hint:[1684315383531332325922225],fromip:222.71.242.114,moreinfoathttps://open.work.weixin.qq.com/devtool/query?e=301019"}这个是瞎......
  • 什么是cookies,session,token(面试必问)
    前言一般在面试的时候,经常会遇到关于什么是cookies,session,token,大多数面试官可以通过这几个概念基本上了解到你对接口请求方面是否存在了解或者工作中掌握的熟练程度,看似很小的问题,但是背后缺藏着大大的阴谋,今天跟着小编一起来了解下到底什么是cookies,session,token。http无状态......
  • 钩子(hook)函数与装饰器
    在Python中,钩子函数(HookFunction)和装饰器(Decorator)是两种不同的概念和用法。钩子函数(HookFunction)是一种允许在特定事件发生时执行自定义代码的函数。这些事件可以是程序的不同阶段、特定条件的满足、或者其他特定的触发点。钩子函数通常用于扩展或修改现有代码的行为,提供了一......
  • Facebook 又大出血,因面部隐私引诉讼,遭罚款 6.5 亿美元
    By超神经内容提要:Facebook近年来多次因用户隐私问题而陷入舆论中心,也因此付出了巨大的代价。此前,Facebook因剑桥分析事件认罚50亿美元,达成和解。近日,又因五年前一项关于人脸识别的诉讼,付出6.5亿美元以达成和解。关键词:Facebook用户隐私 面部识别去年4月,Facebook因泄露......
  • 【git】报错解决方案-'pre -commit hook failed (add --no-verify to bypass)'
    git-commit报错: 可以看到这个报错有两点,第一点是因为npm缓存问题,第二点是pre-commit导致的commit报错pre-commit钩子都被存储在Git目录下的hooks子目录中。当你用gitinit初始化一个新版本库时,Git默认会在这个目录中放置一些示例脚本。这些脚本除了本身可以被......
  • Cookie、Session、Token的区别
    什么是CookieCookie技术的产生源于HTTP协议在互联网上的急速发展。由于HTTP是无状态的会话,在互联网飞速发展的今天,人们进行更复杂的互联网交互活动,就必须同服务器保持活动状态,Cookie技术便是一种保持Web浏览状态的手段。Cookie是客户端保存用户信息的一种机制,用来记录......
  • wazuh告警通过webhook推送到飞书
    使用wazuh自带的shuffle脚本实现 步骤:1.进入:/var/ossec/integrations复制shuffle、shuffle.py两个文件,并重命名为:custom-feishu、custom-feishu.py备注:一定要按这个方式命名,自定义告警前,都要加custom2.编辑custom-feishu.py,修改generate_msg函数: 3.如果想看告警......
  • 7.ansible之playbook应用案例02
    1.Playbook应用案例之用户编写playbook创建系统账户、账户属性、设置密码[root@db04ansible]#cattest_john.yml----hosts:testtasks:-name:Addtheuser'johnd'user:name:johndgroup:1002password:"{{'123'|......
  • 6.ansible之playbook01
    Ansibleplaybook:将经常需要执行的任务写入一个文件(剧本)剧本中可以包含多个任务剧本写后,我们随时调用剧本,执行相关的任务命令playbook剧本要求按照YAML格式编写适合执行周期性经常执行的复杂任务YAML是什么?是一个可读性高、用来表达数据序列的格式语言,它是以数据为......