首页 > 编程语言 >基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP

基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP

时间:2024-10-17 15:59:34浏览次数:7  
标签:... MOMP 信道 估计 BP CoSaMP OMP

1.算法仿真效果

matlab2022a仿真结果如下(完整代码运行后无水印):

 

 

 

仿真操作步骤可参考程序配套的操作视频。

 

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

        LS估计法实现方式较为简单,其估计过程没有考虑实际信道的噪声因素。因此,特别当毫米波MIMO信道干扰较大时,其估计性能较差,只适用于对信道估计精度要求较低,且信噪比较大的情况。

 

        OMP估计法是一种自适应的信道估计方法,其不需要预先获得信道矩阵H的稀疏解的原子数K。为了获得预设的信道估计精度时,OMP估计法需要比CoSaMP估计法更多的迭代次数。但是过多的迭代次数,会导致信道估计误差的不断累积,从而影响最终的信道估计性能。

 

        CoSaMP估计法具有较优的信道估计性能,但其在低信噪比下性能较差。但是,CoSaMP估计法性能依赖于在原子数K的取值,且CoSaMP信道估计的计算过程较为复杂,对计算效率有着较高的要求。

 

       NOMP估计法的性能较优,其同时具备OMP和CoSaMP两种方法的优点。因此,改算法可以通过较小的计算规模和少量的迭代次数完成毫米波MIMO信道的估计。但是该方法的使用场合存在一定的局限性,其适用于窄带毫米波群簇信道模型,而对于其他类型的毫米波MIMO信道模型,其性能将受到影响。

 

      基于BP神经网络的改进CoSaMP信道估计算法,通过BP神经网络运行得到的训练后的最优参数权重参数:

 

 

 

在BP神经网络训练结束之后,可以得到BP神经网络训练得到的hcmp值。

 

再假设CoSaMP估计法得到的信道估计值:

 

 

 

       CoSaMP算法的毫米波MIMO信道估计输出值hcosamp和BP神经网络信道估计补偿输出值hcmp进行加权得到当前信道估计值,即:

 

 

 

3.MATLAB核心程序

for i1=1:MTKL 
    rng(i1);
    for j1=1:length(SNR)
        [i1,j1]
        [Noise0,sigma0] = func_whitenoise(seqdH,SNR(j1),V1);   
        %OFDM机制
        seqdH_ifft      = ifft(seqdH);
        
         Y              = seqdH_ifft+Noise0;
         Yfft           = fft(Y);
         %LS算法
         MSE_LS        = func_LS(seqd,H,Yfft,N); 
         %OMP
         MSE_OMP       = func_OMP(Yfft,seqd,H,invH,N,L,K);
         %NOOMP
         MSE_NOMP      = func_NOMP(Yfft,seqd,H,invH,N,L,K);
         %CoSaMP
         MSE_CoSaMP    = func_CoSaMP(Yfft,seqd,H,invH,N,L);         
         %CoSaMP
         MSE_CoSaMPnew = func_CoSaMPnew(Yfft,seqd,H,invH,N,L,K);
               
    end
end
 
figure;
semilogy(SNR,mean(R_LS),'-bs',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
hold on;
semilogy(SNR,mean(R_OMP),'-mo',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.5,0.9,0.0]);
hold on;
semilogy(SNR,mean(R_NOMP),'-b^',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.2,0.9,0.5]);
hold on;
semilogy(SNR,mean(R_CoSaMP),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
hold on;
semilogy(SNR,mean(R_CoSaMPNEW),'-k<',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.3,0.3]);
hold on;
 
xlabel('SNR');
ylabel('MSE');
grid on
legend('LS','OMP','MOMP','CoSaMP','BP+CoSaMP');
0X_070m

  

标签:...,MOMP,信道,估计,BP,CoSaMP,OMP
From: https://www.cnblogs.com/51matlab/p/18472498

相关文章

  • 《安富莱嵌入式周报》第344期:开源手表一年的误差不到1秒,开源32路IMU传感器矩阵,STM32L4
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 本周更新视频DSP视频教程第13期:汇编浮点库qfplib性能媲美TI的IQmath和硬件FPU,强于C库的math和ARMDSP库,适用于M0和M3(2024-10-12)https://www.armbbs.cn/forum.php?mod=view......
  • 【CTF-SHOW】Web入门 Web27-身份证日期爆破 【关于bp intruder使用--详记录】
    1.点进去是一个登录系统,有录取名单和学籍信息发现通过姓名和身份证号可以进行录取查询,推测录取查询可能得到学生对应学号和密码,但是身份证号中的出生日期部分未知,所以可以进行爆破2.打开bp抓包这里注意抓的是学院录取查询系统发送POST类型进行查询的包,第一遍抓不到很正......
  • 关于驰骋BPM平台对接百度云OCR识别的操作介绍
    前言        在当今数字化时代,高效准确地处理信息至关重要。驰骋BPM平台与百度云OCR识别的对接,为用户带来了强大的文档识别和数据提取能力。一、准备工作拥有百度云账号:首先,你需要注册一个百度云账号(https://console.bce.baidu.com/),并开通百度云OCR服务。在百......
  • 2024-10-16 前端图片加载方式优化(webp)
    把上传的图片文件格式转化为webp图片格式。前置条件:图片文件存在阿里云oss。阿里云的对象存储服务(OSS)支持在URL中直接指定图片处理参数,这样可以在不下载原始图片到服务器的情况下,直接由OSS服务端处理图片。假设你有一张存在阿里云的图片链接,那么只需要在该链接的末尾加上?x......
  • 【进阶OpenCV】 (14)-- 人脸识别 -- LBPH 算法
    文章目录LBPH算法一、基本思想二、LBPH算法步骤1.图像划分2.局部二值模式特征提取3.直方图统计4.特征向量生成5.相似度计算三、代码实现1.图像预处理2.创建一个LBPH的人脸识别器3.训练实例模型4.图像预测总结LBPH算法**LBPH(LocalBinaryPatternsHis......
  • ABP VNext 系列:框架启动流程以及依赖注入原理和源码分析
    简单介绍ABPVNextGithub地址:https://github.com/abpframework/abp官网文档地址:https://abp.io/docs/latest官网:https://abp.io/ABPVNext框架是一个基于ASP.NETCore的完整基础架构,也就是我们现在称的ABP框架,它遵循软件开发最佳实践和最新技术来创建现代Web应用程......
  • DS, ES, SS, DI, SI, BP, SP, IP, FS 寄存器
    DSiscalleddatasegmentregister.Itpointstothesegmentofthedatausedbytherunningprogram.Youcanpointthistoanywhereyouwantaslongasitcontainsthedesireddata.DS叫做段寄存器,指向当前运行着的程序的数据段.你可以把它指向任何你想要的地方......
  • vite 使用rollup 打包为什么比webpack打包更小呢
    Rollup和Webpack之间的差异在于它们的打包方式和优化策略,这导致了Rollup通常能生成更小的包体积。以下是一些主要原因:1.树摇(TreeShaking)Rollup对ES6模块的静态结构分析非常出色,能够有效地删除未使用的代码。这一过程被称为树摇(TreeShaking),能显著减小最终包的体积。2......
  • 基于MATLAB的BP神经网络手写数字识别系统
    介绍*:本课题为基于MATLAB的BP神经网络手写数字识别系统。带有GUI人机交互式界面。读入测试图片,通过截取某个数字,进行预处理,经过bp网络训练,得出识别的结果。可经过二次改造成识别中文汉字,英文字符等课题。运行效果示例图:......
  • DBPM: 增强时间序列对比学习:一种动态坏对挖掘方法《Towards Enhancing Time Series Co
    今天是2024年10月12日,思路枯竭,还是论文看的太少了,继续看论文.论文:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproach或者是:TowardsEnhancingTimeSeriesContrastiveLearning:ADynamicBadPairMiningApproachGitHub:https://git......