1.软件版本

MATLAB2021a
2.本算法理论知识

3.核心代码

clc;
clear;
close all;
warning off;
addpath 'func\'CYC = 20;
for ij = 1:CYCijCYC = 20;RandStream.setDefaultStream(RandStream('mt19937ar','seed',ij));Len                 = 8;Nc                  = 64*Len;%子载波数T                   = 6.4e-6;TG                  = 1.6e-6;fLen                = 512;I                   = 4;%导频坐标pilot_index         = [1:I:Nc];N                   = Nc;%总载波数[Rm,Cn]             = size(pilot_index);%导频子载波数%多普勒频移doppler_frequency   = 0.01;ts                  = 1e-6; %保护时间CP                  = Nc/Len/(T/TG);C                   = 2; SNR_dB              = [0:2:20];err_rate            = ones(C,length(SNR_dB));ERR_RATE            = ones(1,length(SNR_dB));ERR_RATE2           = ones(1,length(SNR_dB));ERR_RATE3           = ones(1,length(SNR_dB));h1                  = zeros(N,1);h2                  = zeros(N,1);%多径个数multipath_number = 3;delay            = [0,1e-6,2e-6]/ts;%各径延迟trms             = 4e-6/ts; %多径平均延迟var_pow          = 10*log10(exp(-delay/trms));RLchannel        = rayleighchan(1,doppler_frequency,delay,var_pow);RLchannel.StorePathGains = 1;test             = ones(C,1);%测试向量filter(RLchannel,test);%提取瑞利信道h_RL             = RLchannel.PathGains;for ii=1:Cx_Trans = randint(N,1,4);%QPSK调制X       = func_QPSK_mod(x_Trans);%待传输信号x       = func_OFDM_mod(X,fLen,CP,Nc);     %信道for hh=1:multipath_number;h1(1+delay(hh))= h_RL(ii,hh);%信道的冲击响应end%H为根据22计算得到的HH   = fft(h1,fLen);%收到的信号y_r = filter(h1,1,x);for SNR_index=1:length(SNR_dB);%加噪声y       = awgn(y_r,SNR_dB(SNR_index),'measured'); %去CPy0      = y(CP+1:CP+Nc,1);Y       = fft(y0);%你所要求的不太对的函数写法est_H        = ChannelEstimation(SNR_dB(SNR_index),1,delay,doppler_frequency,var_pow);%CS信道估计,H_esti为估计得到的H[H_esti,h2]  = func_omp(Y,X,Nc,fLen,pilot_index,multipath_number);%计算估计得到的Ap部分Ap   = abs(h2);%计算估计得到的exp部分exps = angle(h2);%估计的导频加信号的值X_esti  = Y./H_esti;x_omp_rec                           = func_QPSK_demod(X_esti);[err_number,err_rate(ii,SNR_index)] = symerr(x_Trans,x_omp_rec);err_num(ii,SNR_index)            = sum(sum(cov(x_Trans,x_omp_rec)));mse_num(ii,SNR_index)            = mse(abs(h1(1:multipath_number)-h2(1:multipath_number)));       endendfor jj=1:length(SNR_dB);ERR_RATE(1,jj) = mean(err_rate(:,jj));ERR_RATE2(1,jj)= mean(err_num(:,jj));ERR_RATE3(1,jj)= mean(mse_num(:,jj));endS1 = [];S2 = [];S3 = [];if ij > 1load func\tmps.matendS1 = [S1;ERR_RATE];S2 = [S2;ERR_RATE2]; S3 = [S3;ERR_RATE3]; save func\tmps.mat S1 S2 S3 SNR_dBaddpath 'func\'
endload func\tmps.mat
ERR_RATEs  = mean(S1,1);
ERR_RATE2s = mean(S2,1);
ERR_RATE3s = mean(S3,1);figure;
plot(SNR_dB,ERR_RATE2s/max(ERR_RATE2s),'b-s');
hold on;
xlabel('SNR');
ylabel('信号相关性');
grid on;figure;
semilogy(SNR_dB,ERR_RATEs,'b-s');
hold on;
xlabel('SNR');
ylabel('系统误码率');
grid on;figure;
semilogy(SNR_dB,ERR_RATE3s,'b-s');
hold on;
xlabel('SNR');
ylabel('信道估计H 估计误差');
grid on;save R.mat SNR_dB ERR_RATEs ERR_RATE2s ERR_RATE3s%显示原始信道和估计后的信道
ho   = h1(1:multipath_number);
hest = h2(1:multipath_number); ho
hest

4.操作步骤与仿真结论

5.参考文献

[1]赵锦航, 刘健均, 周思源,等. 基于BIC停止准则的改进A*OMP信道估计算法[J]. 计算机应用与软件, 2019, 36(5):6.

[2]朱芹, 王彪. 基于改进BOMP算法的水声信道估计[J].  2022(8).

A01-102
6.完整源码获得方式

方式1:微信或者QQ联系博主

方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码

【OMP信道估计】基于OMP压缩感知的信道估计算法的MATLAB仿真相关推荐

  1. 【步态识别】基于CNN深度学习的步态识别算法的MATLAB仿真

    目录 1.软件版本 2.本算法理论知识点 3.算法具体理论 4.核心代码 5.仿真演示

  2. 基于NSGAII的多目标遗传优化算法的matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 在遗传算法在解决多目标优化遇到瓶颈时,许多学者花费了不少时间和精力在多目标优化的遗传算法上,Goldberg首先将Pareto ...

  3. 正交匹配追踪(OMP)在稀疏分解与压缩感知重构中的异同

    题目:正交匹配追踪(OMP)在稀疏分解与压缩感知重构中的异同 如果研究了稀疏分解再来研究压缩感知可能会有一个疑惑:在稀疏分解中有一个OMP算法,在压缩感知的重构算法中也有一个OMP算法,它们有什么区别 ...

  4. 压缩感知doa matlab,基于压缩感知的DOA估计程序

    基于压缩感知的DOA估计程序 程序可运行,有图有真相,MATLAB得事先装好cvx优化包. clc; clear; close; lambda=1; d=lambda/2; %阵元间距离,取为入射波长 ...

  5. 基于安全压缩感知的大数据隐私保护

    基于安全压缩感知的大数据隐私保护 王平1, 张玉书2, 何兴1, 仲盛3 1 西南大学电子信息工程学院,重庆 400715 2 南京航空航天大学计算机科学与技术学院,江苏 南京 211106 3 南京 ...

  6. nsl0重构算法 matlab,基于SL0压缩感知信号重建的改进算法

    第 28 卷 第 6 期 2012 年 6 月 信 号 处 理 SIGNAL PROCESSING Vol. 28 No. 6 Jun. 2012 收稿日期: 2012-03-30; 修回日期: 20 ...

  7. 基于matlab的ldpc编码的构造,基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)...

    基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)(开题报告,论文10700字,程序代码,录像) 摘 要 随着无线通信技术的不断发展与进步,数字电视广播.移动视频点播等对数据吞吐量要 ...

  8. 基于二维切片图序列的三维立体建模MATLAB仿真

    目录 1.算法概述 2.仿真效果预览 3.核心MATLAB程序 4.完整MATLAB程序 1.算法概述 isosurface 等值面函数 调用格式: fv = isosurface(X,Y,Z,V,i ...

  9. 沙威 matlab 压缩感知,压缩感知正交匹跟踪算法(OMP)代码实现之一维连续信号的求解...

    """一维连续向量压缩感知的实现(正交匹配跟踪算法)测量数M>=K*log(N/K),K是稀疏度,N信号长度,可以近乎完全重构本篇代码是利用香港大学电子工程系的沙威 ...

  10. m基于深度学习的OFDM信道估计和均衡算法误码率matlab仿真,对比了LS,MMSE以及LMMSE等传统的信道估计算法

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 随着无线通信的快速发展,5G正逐渐成长为支撑全社会各行业运作的大型基础性互联网络,其服务范围的大幅扩 ...

最新文章

  1. CentOS 5.2 下安装tripwire2.3.1.2出错解决
  2. adb shell dumpsys 命令 查看内存
  3. Exception在语义上的处理。在系统中的意义。
  4. jqgrid for asp.net 单页全选记录ID
  5. outset边框html,CSS3 border-image-outset属性怎么用?
  6. mysql插入性能测试
  7. 检查数组中的子字符串– Java,Python和Swift
  8. bes2300 tws配对_入门级TWS真无线耳机对比评测,看完之后你就知道怎么买了
  9. 26个字母与ASCII值对照表
  10. linux服务器删除weblogic,linux weblogic安装和卸载
  11. java 刽子手图像代码,刽子手游戏代码
  12. 微信小程序实现图片虚化(滤镜)效果
  13. 【影像组学pyradiomics教程】(七)影像组学特征
  14. 廊坊圣洁口去医院明星同款·隐形矫正试戴会圆满举办!
  15. soj2198: Highways_最小生成树Prim
  16. Flask学习笔记总结(一)
  17. 一个学员去了互联网大厂一个笔试题分享
  18. UOS系统升级到1050后无法正常使用输入法功能问题解决方法
  19. 最常问的网络基础面试问题整理
  20. 定制智慧交通(一)--启动项目原因

热门文章

  1. Oracle 表及表空间(一)
  2. asp.net学习笔记·将数据库中的数据保存在EXCEL文件中
  3. AODV---点点滴滴
  4. cyico收集的关于utf8转换gb2312,以及关于javascript实现urlencode和urldecode的一些方法...
  5. UA MATH563 概率论的数学基础 鞅论初步5 鞅的定义
  6. UA MATH636 信息论9 有限域简介
  7. 详细图解JDK+Tomcat Web开发环境配置和HelloWorld程序
  8. 后台传Map到ftl
  9. Ubuntu配置交叉编译环境
  10. 有关android 应用的plugin框架调研