m基于matlab的光通信的信道估计,均衡,抑制papr误码率仿真,对比ZF,RLS,MMSE三种算法(包括matlab仿真录像)

news/2024/5/3 18:42:21/文章来源:https://blog.csdn.net/hlayumi1234567/article/details/127057853

目录

1.源码获取方式

2.算法描述

3.部分程序

4.部分仿真图预览


1.源码获取方式

使用版本matlab2013b

获取方式1:

点击下载链接(解压密码C+123456):

m基于matlab的光通信的信道估计,均衡,抑制papr误码率仿真

获取方式2:

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

2.算法描述

可见光通信的信道估计,均衡,抑制papr。

不考虑光信道,用传统的无线通信的OFDM的信道估计,均衡,抑制papr  信道估计,均衡最好有两个以上的方法比较

%本次仿真载频为2GHz,带宽1MHz,子载波数128个,cp为16
%子载波间隔为7.8125kHz
%一个ofdm符号长度为128us,cp长度为16us
%采用16QAM调制方式
%最大doppler频率为132Hz
%多径信道为5径,功率延迟谱服从负指数分布~exp(-t/trms),trms=(1/4)*cp时长,各径延迟取为delay=[0 2e-6 4e-6 8e-6 12e-6]

Zero forcing, ZF:简单,但放大了噪声,性能最差

Minimum Mean Square Error, MMSE:考虑了噪声因素,性能比ZF好

3.部分程序

clc;
clear all;
close all;
warning off;
addpath 'func\'sel    = 3;
%FFT长度
FFTLen = 64;
%循环前缀长度
CPLen  = 16; 
%QAM
M      = 4; 
%子载波个数
Ns     = 8;  
w      = ones(FFTLen,1); 
SNRdB  = [0:2:26];for ii = 1:length(SNRdB)iiSNRS = SNRdB(ii);NUM  = 0;ERR  = 0;while ERR <= 2000ERRNUM          = NUM + 1;store_input  = zeros(Ns,FFTLen*M); store_output = zeros(Ns,FFTLen*M);store_error  = zeros(Ns,FFTLen);for sym=1:Ns%发送数据input              = rand(1,FFTLen*M) > 0.5;store_input(sym,:) = input;%发送[signal_tx,input_symbols] = func_transmitter(input,FFTLen,CPLen,M);%通过信道signal_rx                 = func_channel(signal_tx,SNRS);%估计,均衡,if sel == 1[signal_recovered,w,error_sym] = func_receiver_mmse(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);endif sel == 2[signal_recovered,w,error_sym] = func_receiver_zf(signal_tx,signal_rx,input_symbols,FFTLen,CPLen,M,w);end   if sel == 3w = zeros(3,1);[signal_recovered,w,error_sym] = func_receiver_rls(signal_tx, signal_rx, FFTLen, CPLen, M, w, 3);end                store_output(sym,:)            = signal_recovered;store_error(sym,:)             = error_sym.';enderrors_ext = abs(store_input - store_output);errors     = errors_ext(FFTLen+1:length(errors_ext));num_errors = sum(sum(errors));ERR        = ERR + num_errors;endBER(ii) = ERR/NUM/(FFTLen*M*(Ns-1));
end
% figure;
% semilogy(SNRdB,BER,'b-o');
% grid on;
% ylabel('Error');
% xlabel('SNR');if sel == 1save rmmse.mat SNRdB BER
end
if sel == 2save rzf.mat SNRdB BER
end
if sel == 3save rls.mat SNRdB BER
endfigure;
load rmmse.mat
semilogy(SNRdB,BER,'b-o');
hold on
load rzf.mat
semilogy(SNRdB,BER,'r-o');
hold on
load rls.mat
semilogy(SNRdB,BER,'k-o');
hold on
legend('MMSE','ZF','RLS');
grid on;
ylabel('Error');
xlabel('SNR');

4.部分仿真图预览

01_099m 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

libxml编译时问题解决记录

在对libxml进行模糊测试时&#xff0c;需要先将其拉去并进行编译&#xff0c;可参考此链接&#xff1a;magma本地编译 或者直接参考这个链接&#xff1a;magma编译libxml2 然而在编译的过程中&#xff0c;拉去完libxml2执行到这一句时报错如下&#xff1a; configure.ac:42: e…

Python骚操作,实现驾考自动答题,这就直接满分了?

Python骚操作来了~ 用Python来实现科目一/四自动答题&#xff0c;100分不要太简单&#xff01; 最初是表弟最近想买车&#xff0c;但是驾照都没有&#xff0c;买什么车&#xff0c;只能先考驾照~ 看他在网页上练习题目慢吞吞的&#xff0c;我就看不下去了&#xff0c;直接给他…

《数据结构》队列及其经典面试题

前言 上一篇讲了栈和栈的经典面试题&#xff0c;链接如下&#xff1a; 栈与栈的经典面试题 其实栈和队列是一码事&#xff0c;都是对只能再线性表的一端进行插入和删除。 因此&#xff0c;其实栈和队列可以互相转换&#xff01; 一、队列的特点 先进先出的数据结构&#…

Android系统安全 — 2.0-移动终端栈溢出的保护机制设置

简介 操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险。例如 NX/DEP、 ASLR&#xff08;PIE&#xff09;、CANARY、FORTIFY、RELRO 等手段。 栈保护 1.NX/DEP Linux 和 Windows 平台都支持对非可执行代码的保护&#xff0c;在 Linux 平台中被称为…

【Mybatis框架】初识Mybatis

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 MyBatis1、MyBatis简介1.1、MyBatis历史1.2、MyBatis特性2. 搭建MyBatis2.1 创建一个Maven项目2.2 在项目下新建我们的MyBatis项目2.3 引入依赖2.4 创建MyBatis的核心配置文件2.5 创建mapper接口2.6 创建MyBatis的映射文件2.…

AWS 中文入门开发教学 34- MySQL@RDS - 准备工作 - VPC子网,安全组,DB子网组,参数组,选项组

知识点 建立RDS MySQL前的准备工作实战演习 VPC子网,安全组,DB子网组,参数组,选项组 VPC子网 Name: deeplearnaws-db-1cCIDR: 172.16.21.0/24 安全组 Name: deeplearnaws-db-sg <- 可以直接使用之前创建的,但生产环境时应只保留3306端口 DB子网组 Name: deeplearnaws-db-su…

JavaScript学习Day008(jQuery操作)

DOM操作分类 DOM操作分为三类 DOM Core&#xff1a;任何一种支持DOM的编程语言都可以使用它&#xff0c;如getElementById() HTML-DOM&#xff1a;用于处理HTML文档&#xff0c;如document.forms CSS-DOM&#xff1a;用于操作CSS&#xff0c;如element.style.color"gree…

【NLP】第12章 检测客户情绪以做出预测

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

JavaScript数组与对象

数组对象 「创建数组的两种方式」 1. 字面量方式var arr [1,"test",true];2. 实例化数组对象 new Array() var arr new Array(); 注意&#xff1a;上面代码中arr创建出的是一个空数组&#xff0c;如果需要使用构造函数Array创建非空数组&#xff0c;可以在创建数…

SpringCloud-19-Spring Cloud Hystrix介绍和服务端降级

8 Hystrix&#xff1a;Spring Cloud服务熔断与降级组件 8.1 分布式系统面临的问题 复杂分布式体系结构中的应用程序往往由多个服务组成&#xff0c;这些服务之间相互依赖&#xff0c;依赖关系错综复杂&#xff0c;每个依赖关系在某些时候将不可避免的失败&#xff01; 若一个…

最优化理论与方法2

凸优化问题&#xff1a; 对于最优化问题P&#xff1a; min f(x1, x2 , …,xn) s.t. : gi ( x1 , x2 , … , xn) < 0 , i 1 , … , m hi ( x1 , x2 , … , xn) 0 ,i 1 , … , l 1 . 记可行域为S { x ∈ Rn | gi(x)<0 , i1,…,m , hi(x)0 , i 1 , … , l.} 2.当f(x…

交通流域关键词

关键词&#xff1a; ●交通拥堵&#xff1a;traffic jam 或 traffic congestion ●元胞传输模型&#xff1a;cellular transport model 或 cell transport model(细胞传输模型) ●元胞自动机&#xff1a;cellular automata ●VSL(可变速度限制)&#xff1a;variable speed …

Python3 安装软件出现 cl.exe failed with exit status 2 错误

最近因项目需要&#xff0c;开始深入接触python。遇到的一些环境问题&#xff0c;分享下。 requirements.txt中包含一系列所需组件&#xff0c;部分组件安装会报cl.ext错误。 如错误问题&#xff1a;Python3 安装pycrypto 2.6.1 出现 cl.exe failed with exit status 2 错误 …

Android国际化多语言切换

关于App国际化&#xff0c;之前有讲到国际化资源、字符换、布局相关&#xff0c;想要了解的猛戳用力抱一下APP国际化。借着本次重构多语言想跟大家聊一下多语言切换&#xff0c;多语言切换对于一款国际化App来讲是重中之重&#xff0c;并非难事&#xff0c;但是若要做好也是一件…

LeetCode-136-只出现一次的数字

1、哈希表 利用哈希表记录每个元素和其出现的次数&#xff0c;最后遍历哈希表找到只出现一次的数字。缺点在于额外空间为O(n)O(n)O(n)。 class Solution { public:int singleNumber(vector<int> &nums) {unordered_map<int, int> hs;for (auto i: nums) {hs[…

疫情下低代码平台将是企业的曙光

全球疫情的爆发&#xff0c;加速了企业数字化转型进程&#xff0c;为了响应不断变化和增加的业务需求&#xff0c;需要充足的资金以及专业的开发人员才能够有效推行数字化管理。然而在这样的情景下&#xff0c;人员的缺少&#xff0c;时间的效率等问题&#xff0c;导致很多企业…

图像分类数据集(线性神经网络,需结合从零实现softmax回归一起学习)

文章目录图像分类数据集读取小批量整合所有组件小结图像分类数据集 导入必要的类包。 import torch import torchvision from torch.utils import data #torchvision是pytorch的一个图形库&#xff0c;它服务于PyTorch深度学习框架的&#xff0c;主要用来构建计算机视觉模型。…

Kafka设计原理——副本数据同步机制(watermark 和 leader epoch)

文章目录LEO更新机制follower副本LEO更新leader副本LEO更新HW更新机制follower更新HWleader更新HW使用HW衡量数据同步情况的缺陷LEO更新机制 follower副本LEO更新 Kafka设计了两套follower副本LEO属性&#xff0c;一套LEO值保存在follower副本所在的broker缓存上&#xff1b;…

详解 B2B 用户、组织、员工、角色

整理了一下 toB 多组织系统中常见的实体关系&#xff0c;往往在实际项目中这些基础模块是公司老前辈已经开发完成的&#xff0c;因此新人在此基础上开发一些相关的业务模块很容易被这些模糊不清的关系搞晕。 一、定义 user 用户&#xff0c;操作者的唯一标识&#xff0c;通常…

去中心化时代的创作者经济

所谓创作者经济&#xff0c;具体是指利用各种互联网工具&#xff0c;由个人或团体进行内容创作、分发及一系列与创作者相关服务下产生的经济收益。 这一概念也主要在当前的 web2互联网时代&#xff0c;并且有很多鲜明的案例凸显出了创作者经济的强大潜力&#xff0c;像我们熟知…