首页 > 编程语言 >m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真

m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真

时间:2024-03-11 21:45:48浏览次数:21  
标签:相位 解调 signal 补偿 偏移量 算法 matlab 信号 32QAM

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

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

        随着通信技术的飞速发展,高阶调制格式如32QAM(32-Quadrature Amplitude Modulation,32进制正交幅度调制)在高速数据传输中得到了广泛应用。然而,由于信道失真、噪声干扰等因素,接收端往往面临相位偏移和信号失真等问题。为了解决这些问题,基于深度学习的相位检测和补偿算法应运而生。

 

2.1 32QAM调制解调原理

         在32QAM中,信号是通过同时改变两个正交载波(I路和Q路)的幅度来实现信息编码的。这两个载波的频率相同但相差90度相位。具体过程如下:

 

比特映射: 输入的6比特流被映射到32个离散的星座点上。每个星座点都有一个对应的二进制序列。

 

符号生成: 根据映射表,将每组6比特转换为相应的复数符号,这个符号包含有实部(I分量)和虚部(Q分量)。

 

s=I+jQs = I + jQs=I+jQ

 

其中,sss 是调制符号,III 和 QQQ 分别代表对应星座点的横纵坐标值。

 

幅度与相位调制: 通过对基带信号进行上变频并乘以相应的幅度因子,得到最终的模拟调制信号。

 

2.2 基于深度学习的相位检测和补偿算法

        为了解决相位偏移问题,可以采用基于深度学习的相位检测和补偿算法。该算法通常包括两个主要步骤:相位检测和相位补偿。

 

       相位检测的目标是从接收到的信号中估计出相位偏移量。传统的方法通常基于最大似然估计或最小均方误差准则进行设计,但在复杂信道条件下性能受限。而基于深度学习的方法则能够通过学习大量数据来自动提取特征并进行相位偏移量的估计。

 

       具体来说,可以采用一个深度神经网络(DNN)来实现相位检测。该网络的输入是接收到的信号样本,输出是估计的相位偏移量。网络的结构可以根据具体任务进行设计,例如可以使用卷积神经网络(CNN)来提取信号的时域特征,或者使用循环神经网络(RNN)来处理序列数据。

 

       在训练阶段,需要准备大量带有标签的训练数据。标签是真实的相位偏移量,可以通过仿真或实际测量得到。然后,使用反向传播算法等优化方法来训练网络参数,使得网络能够准确地从输入信号中估计出相位偏移量。

       相位补偿的目标是根据估计出的相位偏移量对接收到的信号进行校正,以消除相位偏移的影响。传统的补偿方法通常是通过旋转接收到的信号来实现的。而在基于深度学习的算法中,可以将相位补偿过程集成到神经网络中。

 

         在得到较为准确的相位估计后,利用该信息对原始接收到的信号进行相位补偿。假设经过深度学习网络得到的相位估计为:

 

             

 

       具体来说,可以在神经网络的输出端添加一个旋转矩阵,该矩阵根据估计出的相位偏移量对接收到的信号进行旋转校正。这样,神经网络的输出就是经过相位补偿后的信号,可以直接用于后续的解调处理。

 

3.MATLAB核心程序

 

for i = 1:length(SNR)
    i
    for j = 1:10
        [i,j]
        %产生信号
        signal                  = round(rand(1,LEN));
        signal_modulated1       = Modulator(signal,K);        
        signal_receive1         = awgn(signal_modulated1,SNR(i),'measured');
        signal_receive2         = signal_receive1*exp(sqrt(-1)*phase);
        
        
        offset2   = func_phase_est_dnn(signal_receive2);%基于深度学习的相位估计
        
        RR        = signal_receive2*exp(-sqrt(-1)*mean2(offset2));
        %加相位补偿
        output    = DeModulator(RR,K);
        
        msgr      = ones(size(output));
        idx       = find(output<=0);
        msgr(idx) = 0;
        
        len         = length(find(signal==msgr));
        errrate(i,j)= 1-len/length(signal);
        %没有相位补偿
        output2     = DeModulator(signal_receive2,K);
        
        msgr2       = ones(size(output2));
        idx2        = find(output2<=0);
        msgr2(idx2) = 0;
        
        len2      = length(find(signal==msgr2));
        errrate2(i,j)= 1-len2/length(signal);
 
    end
end
 
figure;
semilogy(SNR,mean(errrate2,2),'b-o');
hold on
semilogy(SNR,mean(errrate,2),'r-s');
grid on
xlabel('SNR');
ylabel('误码率');
legend('32QAM无相位补偿误码率','32QAM相位补偿误码率');

 

  

 

标签:相位,解调,signal,补偿,偏移量,算法,matlab,信号,32QAM
From: https://www.cnblogs.com/51matlab/p/18067130

相关文章

  • 基于肤色模型和中值滤波的手部检测算法FPGA实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览RTL图:   仿真图:   导入到matlab显示效果如下:   2.算法运行软件版本matlab2022a vivado2019.2 3.算法理论概述      在计算机视觉领域,基于肤色模型和中值滤波的手部检测方法是一种常见的初步定位策略。该方法主要分为......
  • 基于Harris角点的室内三维全景图拼接算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述      在室内三维全景图的构建中,Harris角点检测算法扮演着关键的角色,用于识别场景中的特征点以实现图像间的匹配和对齐。该过程通常包括以下几个步骤:图像获取、角点检测、特征描述、匹......
  • m基于深度学习网络的花朵种类识别系统matlab仿真,包含GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       随着人工智能技术的飞速发展,深度学习作为其中的重要分支,在计算机视觉领域取得了显著的成果。花朵种类识别作为植物分类学的一个子领域,具有广泛的应用前景,如生态保护、园艺设计、植物教......
  • MATLAB简单美化
    听着音乐......
  • MATLAB----遗传算法及Simulink延时模块实例
    clctic%%参数初始化maxgen=100;%进化代数,即迭代次数,初始预定值选为100sizepop=200;%种群规模,初始预定值选为100pcross=0.9;%交叉概率选择,0和1之间,一般取0.9pmutation=0.01;%变异概率选择,0和1之间,一般取0.01individuals=struct('fitness',zeros(1,sizepop),'chrom',[]);%种群......
  • m基于深度学习网络的瓜果种类识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       GoogleNet,又名Inception网络,是Google公司研发的一种深度学习模型,其通过增加网络深度和宽度来提升性能,同时采用了一些创新性的技术来减少计算量和参数数量。GoogleNet的核心思想是通......
  • MATLAB基本使用及SIMULINK建模仿真实验
    这是我总结的操作方法:1) M脚本文件的编写1、新建M-file;2、输入指令;3、保存(注意:保存路径需要与工作路径一致) 2)在SIMULINK中创建系统模型的步骤1、新建一个空白的 模型窗口。2、在SIMULINK模块库浏览器中,将创建系统模型所需要的功能模块用鼠标拖放到新建的模型窗口中......
  • matlab用高斯曲线拟合模型分析疫情数据|附代码数据
    原文链接:http://tecdat.cn/?p=19211最近我们被客户要求撰写关于疫情数据的研究报告,包括一些图形和统计输出。本文用matlab分析疫情数据集 数据源我们检查解压缩的文件。包含:confirmed.csv-确诊病例的时间序列数据deaths.csv-死亡人数的时间序列数据recovered.csv-......
  • matlab教程_台大lecture2
    scriptwriting程序撰写保存为.m运行:F5 保存时候大小写有区别,字母开头注释:% 形成区块:%%(在debug时候很有用),可以分别运行各个部分的内容 debug:设置断点,类似于c语言中的,可以看变量的值Tips:选中后右键可以智能缩进structuredprogramming2.scriptflow:写程序的一些......
  • MATLAB数据挖掘用改进的K-Means(K-均值)聚类算法分析高校学生的期末考试成绩数据
    全文链接:http://tecdat.cn/?p=30832原文出处:拓端数据部落公众号本文首先阐明了聚类算法的基本概念,介绍了几种比较典型的聚类算法,然后重点阐述了K-均值算法的基本思想,对K-均值算法的优缺点做了分析,回顾了对K-均值改进方法的文献,最后在Matlab中应用了改进的K-均值算法对数据进行了......