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

news/2024/10/20 0:38:51

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); %OMPMSE_OMP       = func_OMP(Yfft,seqd,H,invH,N,L,K);%NOOMPMSE_NOMP      = func_NOMP(Yfft,seqd,H,invH,N,L,K);%CoSaMPMSE_CoSaMP    = func_CoSaMP(Yfft,seqd,H,invH,N,L);         %CoSaMPMSE_CoSaMPnew = func_CoSaMPnew(Yfft,seqd,H,invH,N,L,K);end
endfigure;
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

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/72714.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

中兴光猫F7615TV3 改散热

中兴光猫F7615TV3 改散热之前有剩余的散热片, 各种贴! 温控开关是 50 度的常开, (达到 50 度 开始闭合 接通电路) 风扇开转 电话插口有点影响焊接, 自己又用不到, 直接拆掉! 温控开关这边是接到负极这边 在 dc 取电的时候不太好焊 用打磨笔将金属片 打磨打磨, 就比较好焊接…

ton初始化合约的参数不一样,生成的合约地址也是一样

发现一个问题,tact合约如果代码都没有更改的情况下,不论怎么编译,合约地址都是同一个。 然后发现只要初始化的参数不一样就可以简单的生成不同的合约:contract StudyContract with Deployable {msg: String = "123";// Constructorinit(msg: String){self.msg = …

Tang Primer 25K学习记录

Tang Primer 25KTang Primer 25K 是基于 GW5A-LV25MG121 所设计的一款极小封装的核心板(23x18mm),并配套全引脚引出(除MIPI高速脚外)的25K Dock底板。(国产高云FPGA),作为学习使用,非常小巧,大家可以购买(底板的3d保护壳可以使用博主的,建议打印一个,因为fpga开发板这…

VUE传递字符串显示二维码

1.安装插件npm install vue-qrcode 2.使用<script setup lang="ts"> import { ref } from vue import VueQrcode from vue-qrcode; const qrCodeString = ref(abc); </script><vue-qrcode :value="qrCodeString" :size="150">…

环境安装

模拟器root环境 安装Magisk:安装链接用于定制Android开源软件,支持高于Android 5.0设备 MagiskSU:为应用程序提供root访问权限 Magisk模块:通过安装模块修改只读分区 MagiskHide:从根检测/系统完整性检查中隐藏Magisk(Shamiko) MagiskBoot:最完整的安卓启动镜像解包和重新…

新建next.js项目,customize the default import alias是否要自定义默认导入别名(@/*)的选项区别

使用命令 npx create-next-app@latest 新建项目时,会自定义一些选项,如下图:其中自定义导入别名的选项,选择Yes 或 No 有何区别? Would you like to customize the default import alias (@/*)? ... No / Yes 一、选择 "Yes" jsconfig.js 文件的内容是: {&quo…

受穿山甲启发的机器人将树种种进它挖的洞里

原文链接:Pangolin-inspired robot poops tree seeds into holes it digs (newatlas.com) The hole-digging, seed-bomb-depositing, Plantolin pangolin-inspired robot University of Surrey 挖洞、投放种子炸弹、以穿山甲为灵感的Plantolin机器人 萨里大学Foraging pangol…

VMWare 安装与拖动文件到 Win7 虚拟机

本文记录 VMware Workstation Pro 17.6 的安装过程,创建一个 纯净的 Windows 7 系统的虚拟机,并解决无法往 Windows 7 虚拟机拖动文件的过程。导读 为了有一个纯净的低版本 Windows 环境用于测试软件的运行环境,决定使用虚拟机安装一个纯净版本的 Windows 7。 本文记录 VMwa…