用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
🎉3 参考文献
🌈4 Matlab代码、数据、文章
💥1 概述
文献来源:
摘要:
该文提出一种数字预失真(DPD)方案,用于多载波卫星通信信道中的非线性失真抑制。所提出的DPD具有类似于数据DPD方案的多输入多输出架构。然而,它使用多速率处理算法增强了数据DPD的缓解性能,以实现非线性算子的频谱拓宽。与单载波(单输入单输出)信号(波形)DPD方案相比,所提出的DPD具有较低的数字处理速率,降低了预失真器所需的硬件成本。所提出的DPD在总体退化方面优于数据和信号DPD方案。此外,它的性能最接近由具有有限最大输出功率的理想缓解通道描述的通道边界。
对功率/质量效率高的卫星转发器的需求不断增加,推动了使用单个高功率放大器(HPA)联合放大多载波信号。在这种多载波(MC)场景中,多个信号在频率上被多路复用,并共享卫星转发器的板载硬件[1]。但是,放大的信号会被非线性HPA失真。除了单载波中存在的非线性失真外,MC场景还存在相邻信道干扰(ACI)和互调失真(IMD)效应[1],这些效应会进一步使信号失真并降低系统容量。因此,减轻这些失真对于MC卫星系统的有效运行至关重要。
在网关上运行的非线性失真缓解技术称为数字预失真(DPD),它们具有不同的部署架构。首先,数据DPD方案[2,3]是多输入多输出(MIMO)(每个载波产生一个预失真流),并以符号速率运行,因此需要相对较低的数字带宽。其次,信号DPD方案[4]是单输入单输出(SISO)并且以更高的速率工作,因此需要比数据DPD更大的数字带宽。信号DPD充分利用可用的模拟上行链路带宽,而数据DPD只能访问由载波符号速率设置的信道带宽。
该文提出一种基于模型的新型MIMO DPD技术,用于MC卫星信道中的非线性缓解,称为符号速率信号DPD(SRS DPD)。SRS DPD在脉冲整形滤波器之前产生预失真符号,类似于数据DPD方案,但它补偿了由于数字处理带宽有限而无法由数据DPD处理的失真效应(带外)。SRS DPD使用多速率处理算法来计算基函数,增强了数据DPD的非线性缓解功能,同时与信号DPD相比,它降低了数字处理或计算复杂度。因此,SRS DPD提供了一种“融合”架构,以低于信号DPD的复杂度利用比数据DPD更大的带宽。特别是,SRS DPD使用链路频率规划来补偿ACI和IMD。使用载波的频率链路规划,SRS预分配方案在载波频率间隔紧密的高效频谱配置中可能很有用。
在研究[3]中,作者提出了使用符号级应用的多级Volterra过程的卫星系统的MC预处理。级联多个Volterra滤波器增强了数据级计算的缓解能力,尽管计算复杂度更高。与[3]相比,SRS DPD使用单个Volterra滤波器,并通过多速率方案增强了数据电平的缓解。此外,SRS DPD不会像[3]那样执行通道估计,这会产生进一步的复杂性成本。
SRS-DPD方案在符号级别工作,将脉冲整形滤波器包含在要缓解的通道中。这使得SRS DPD在符号电平上是接收器失真最小化的最佳选择。由于对接收到的符号进行解码时获得了误码率(BER)性能,与SISO信号DPD相比,SRS DPD的工作域提高了整体链路性能,其中未缓解的失真通过脉冲整形滤波器传播。此外,对于给定的复杂程度,SRS DPD比SISO信号DPD具有更好的性能,并且SRS DPD的计算复杂度不会随着上行链路带宽的增加而增加,从而将其包含在具有大上行链路带宽的通信系统中。
📚2 运行结果
部分代码:
%% Evaluation
fprintf('\n ----- noiseless DPD Eval --------\n')
% passing the predistorter data for the channel (noiseless)
[rd1 rd2 rd3 OBO] = MC_Core_channel(IBO,inf,ud(:,1),ud(:,2),ud(:,3));
recd = [rd1 rd2 rd3];
fprintf('OBO of the DPD signal: %2.2f \n',OBO)
distor = recd - AT;
for kk=1:3, SD(kk) = db(norm(AT(:,kk),2)/norm(distor(:,kk))); end
fprintf('SIR (dB): \t %1.1f dB \n',SD)
%% plotting the constellation
toc
figure,
subplot(131), plot(recn(:,1),'.b'), hold on, plot(recd(:,1),'.r'),
plot(AT(:,1),'ok','MarkerFaceColor',[0 0 0]), axis([-1.5 1.5 -1.5 1.5])
subplot(132), plot(recn(:,2),'.b'), hold on, plot(recd(:,2),'.r'),
plot(AT(:,2),'ok','MarkerFaceColor',[0 0 0]), axis([-1.5 1.5 -1.5 1.5])
subplot(133), plot(recn(:,3),'.b'), hold on, plot(recd(:,3),'.r'),
plot(AT(:,3),'ok','MarkerFaceColor',[0 0 0]), axis([-1.5 1.5 -1.5 1.5])
legend('No DPD','MIMO DPD')
saveas(gcf, '../results/constellation.png');
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
🌈4 Matlab代码、数据、文章
相关文章:

用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
【Spark】用udf和withColumn在dafaframe中创建新列
udf使用 import org.apache.spark.sql.functions.udf udf接收一个函数(func)作为参数,返回一个UserDefinedFunction。 UserDefinedFunction接收列(Column)作为参数,并返回Column. func可以接收普通类型参数…...

AIGC 设计能替代真正的设计师设计吗?
AIGC 设计能替代真正的设计师设计吗? 目录 一、写在前面的话 二、AIGC 设计能替代真正的设计师吗? 1.1、传统设计师设计 1.2、AIGC设计 1.3、相关概念 1.4、观点分析 (1)、审美角度 (2)、版权角度 …...

【1++的C++进阶】之emplace详解
👍作者主页:进击的1 🤩 专栏链接:【1的C进阶】 在前面C11系列的文章里,我们漏掉了几个知识点,这篇文章对其中一个知识点进行讲解,关于剩余的知识点的文章在后面会相继出炉。 C11中,针…...

React入门
一、react开始 1、react是什么 用于构建用户界面的JavaScript库 操作DOM呈现页面 (发送请求获取数据和处理数据不由react处理)fessbook开发 2、为什么要学 原生js操作DOM繁琐、效率低 使用原生js直接操作DOM,浏览器会进行大量重绘重排 原…...
第三方登录以及验证
第三方登录是指用户可以通过使用已有的第三方账号进行登录,而无需再次注册新的账号。常见的第三方登录平台包括微信、QQ、微博、GitHub等。 验证是指系统需要验证用户提供的信息是否正确,以确保用户可以登录系统。验证方式包括密码验证、手机号验证、邮…...

MS SQL Server问题汇总
1.报SQL Server Agent连接不上的错误 15:38:57.991 [debezium-sqlserverconnector-sqlserver_transaction_log_source-change-event-source-coordinator] WARN i.d.connector.sqlserver.SqlServerStreamingChangeEventSource - No maximum LSN recorded in the database; pl…...

在线海报图片设计器、图片编辑器源码/仿照稿定设计源码
在线海报设计系统素材设计源码是一个漂亮且功能强大的在线海报图片设计器,仿照稿定设计而成。该系统适用于多种场景,包括海报图片生成、电商分享图、文章长图、视频/公众号封面等。用户无需下载软件,即可轻松实现创意,迅速完成排版…...

KMP算法(C++)
KMP算法与BF算法不一样的在于,当主串与子串不匹配时,主串不回溯,选择了子串回溯,大大提高了运算效率。 借用了next1【】数组,让子串回溯。get_next函数求next1【】数组,get_next函数的实现难点在于下列几行…...

C++的异常类型与多级catch匹配
try-catch 的用法: try{// 可能抛出异常的语句 }catch(exceptionType variable){// 处理异常的语句 } 我们还遗留下一个问题,就是 catch 关键字后边的exceptionType variable,这节就来详细分析一下。exceptionType是异常类型,它指明了当前的 catch 可以处理什么类型的异常…...

查询IP地址可得到哪些信息
通过IP地址定位,可以获取一些基本的信息,包括以下内容: 1. 地理位置:你可以确定IP地址所在的地理位置,包括国家、州或省、城市和地理坐标。这通常是通过将IP地址与地理位置数据库进行匹配来实现的。 2. ISPÿ…...

考研算法47天:01背包
问题描述 算法详细步骤 代码随想录 (programmercarl.com) ac代码 #include <iostream> using namespace std; int bag[1001]; int bagMax[1001]; int bagvalue[1001]; int main(){int n,v;cin>>n>>v;for(int i0;i<n;i){cin>>bag[i]>>bagva…...

Docker实战技巧(一):Kubernetes基础操作实战
Kubernetes定位在Saas层,重点解决了微服务大规模部署时的服务编排问题 1、关闭防火墙并设置开机禁用 systemctl stop firewalld systemctl disable firewalld 2、配置repo cd /etc/yum.repos.d/ 下载Docker repo wget https://mirrors.aliyun.com/docker-…...
android java读写yaml文件
目录 申请读写权限: build.gradle中添加库引用: android java读写yaml文件 java修改yaml文件 YamlFile: 修改yaml文件方法2 Yaml: 删除值: 申请读写权限: <uses-permission android:name"and…...

科学计算器网站Desmos网站
科学计算器网站Desmos网站 有时在学习工作或者生活中,需要用到计算问题,但由于电脑上没有安装相应的专业软件,难以计算有的问题,因而,本文推荐一种免费的在线计算网站Desmos。 一、Desmos网址 Desmos官网的地址为&a…...

结构体-时间的计算
任务描述 本关任务需要你编写函数计算一个时间之前“xx小时xx分xx秒”的时间是多少。 以24小时制的格式记录当前时间,譬如“09:19:52”,表示上午9点19分52秒,则“1小时20分30秒”前的时间应该是“同一天”的“07:59:22”。 提示:…...
pt24django教程
静态文件访问 不能与服务器端做动态交互的文件都是静态文件,如: 图片,css,js,音频,视频,html文件(部分) 静态文件配置 在 settings.py 中配置一下两项内容: STATIC_URL 静态文件的访问路径,通过哪个url地址找静态文件 ,STATIC_URL ‘/s…...
Golang开发-new关键字
在Go语言中,new关键字用于创建一个新的零值对象,并返回指向该对象的指针。它是Go语言中用于分配内存的一种方式。 new关键字的语法如下: ptr : new(Type)其中,Type表示要创建的对象的类型,ptr是指向新对象的指针。 …...
遗传算法与粒子群算法的Python实现
遗传算法本文应用的是 python geatpy module粒子群算法本文应用的是 python pyswarm module 遗传算法 它的不等约束是...<0 import geatpy as ea import numpy as npea.Problem.single def evalVars(Vars): x1 Vars[0]x2 Vars[1]x3 Vars[2]x4 Vars[3]f (x1 2)**2 \…...

无涯教程-JavaScript - ASINH函数
描述 ASINH函数返回数字的反双曲正弦值。反双曲正弦是其双曲正弦为number的值,即ASINH(SINH(number))等于number。 语法 ASINH (number)争论 Argument描述Required/OptionalNumberAny real number.Required Notes 如果指定的数字未被识别为数字值,则ASIN返回#VALUE!错误 …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...