热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OFDM信道估计matlab仿真,对比LS,MMSE,TDLMMSE,TDDLMMSE,TDQabsLMMSE

目录1.算法概述2.部分程序3.算法部分仿真结果图4.完整程序获取CSDN用户:我爱C编程CSDN主页:https:blog.csdn.neth

目录

1.算法概述

2.部分程序

3.算法部分仿真结果图

4.完整程序获取




CSDN用户:我爱C编程
CSDN主页:https://blog.csdn.net/hlayumi1234567?type=blog
擅长技术:智能优化,路径规划,通信信号,图像处理,深度学习,控制器等。



1.算法概述

       信道估计器是接收机一个很重要的组成部分。在OFDM系统中,信道估计器的设计上要有两个问题:** 一是导频信息的选择,由于无线信道的时变特性,需要接收机不断对信道进行跟踪,因此导频信息也必须不断的传送: 二是既有较低的复杂度又有良好的导频跟踪能力的信道估计器的设计,在确定导频发送方式和信道估计准则条件下,寻找最佳的信道估计器结构。 **在实际设计中,导频信息的选择和最佳估计器的设计通常又是相互关联的,因为估计器的性能与导频信息的传输方式有关。

       通过信道佔计算法,接收机可以得到信道的冲激响应,在现代无线通信系统中,信道的信息已经得到了充分的利用。自适应的信道均衡器利用信道估计来对抗ISI的影响。分集技术利用信道佔计,实现与接收信号最佳匹配的接收机。最大似然检测通过信道估计使得接收端错误概率最小化。此外,信道估计的个重要的好处在于它使得相干解调成为可能。因为相干解调需要知道信号的相位信息,与非相干解调相比,可以提高系统的整体性能,而信道估计技术使之成为可能。


2.部分程序

......................................................for ii = 1:length(EsNodB)disp('EsN0dB is :'); disp(EsNodB(ii));tic;ChMSE_LS = 0;ChMSE_LMMSE=0; TDMSE_LMMSE =0;TDDMSE_LMMSE=0;TDQabsMSE_LMMSE =0;for mc = 1:MC
% Random channel tapsg = randn(L,1)+1i*randn(L,1);g = g/norm(g);H = fft(g,nFFT);
% generation of symbolX = randi([0 M-1],nFFT,1); %BPSK symbolsXD = modulate(modObj,X)/sqrt(10); % normalizing symbol powerx = F'*XD;xout = [x(nFFT-nCP+1:nFFT);x];
% channel convolution and AWGNy = conv(xout,g);nt =randn(nFFT+nCP+L-1,1) + 1i*randn(nFFT+nCP+L-1,1);No = 10^(-EsNodB(ii)/10);y = y + sqrt(No/2)*nt;
% Receiver processingy = y(nCP+1:NT);Y = F*y;
% frequency doimain LS channel estimation HhatLS = Y./XD; ChMSE_LS = ChMSE_LS + ((H -HhatLS)'*(H-HhatLS))/nFFT;
% Frequency domain LMMSE estimatiOnRhh= H*H';W = Rhh/(Rhh+(beta/snr(ii))*eye(nFFT));HhatLMMSE = W*HhatLS;ChMSE_LMMSE = ChMSE_LMMSE + ((H -HhatLMMSE)'*(H-HhatLMMSE))/nFFT;
% Time domain LMMSE estimatiOnghatLS= ifft(HhatLS,nFFT);Rgg = g*g';WW = Rgg/(Rgg+(beta/snr(ii))*eye(L));ghat = WW*ghatLS(1:L);TD_HhatLMMSE = fft(ghat,nFFT);% TDMSE_LMMSE = TDMSE_LMMSE + ((H -TD_HhatLMMSE)'*(H-TD_HhatLMMSE))/nFFT; % Time domain LMMSE estimation - ignoring channel covarianceghatLS = ifft(HhatLS,nFFT);Rgg = diag(g.*conj(g));WW = Rgg/(Rgg+(beta/snr(ii))*eye(L));ghat = WW*ghatLS(1:L);TDD_HhatLMMSE = fft(ghat,nFFT);% TDDMSE_LMMSE = TDDMSE_LMMSE + ((H -TDD_HhatLMMSE)'*(H-TDD_HhatLMMSE))/nFFT; % Time domain LMMSE estimation - ignoring smoothing matrixghatLS = ifft(HhatLS,nFFT);TDQabs_HhatLMMSE = fft(ghat,nFFT);% TDQabsMSE_LMMSE = TDQabsMSE_LMMSE + ((H -TDQabs_HhatLMMSE)'*(H-TDQabs_HhatLMMSE))/nFFT; end
.......................................................

3.算法部分仿真结果图

 A157


4.完整程序获取

使用版本matlab2017b

解压密码:C+123456

获得方式1(面包多下载):

获取方式2:

如果下载链接失效,加博主微信,或私信。


推荐阅读
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
author-avatar
闻雪儿1116_414
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有