当前位置: 首页 > news >正文

用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器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代码、数据、文章

http://www.lryc.cn/news/168179.html

相关文章:

  • 【Spark】用udf和withColumn在dafaframe中创建新列
  • AIGC 设计能替代真正的设计师设计吗?
  • 【1++的C++进阶】之emplace详解
  • React入门
  • 第三方登录以及验证
  • MS SQL Server问题汇总
  • 在线海报图片设计器、图片编辑器源码/仿照稿定设计源码
  • KMP算法(C++)
  • C++的异常类型与多级catch匹配
  • 查询IP地址可得到哪些信息
  • 考研算法47天:01背包
  • Docker实战技巧(一):Kubernetes基础操作实战
  • android java读写yaml文件
  • 科学计算器网站Desmos网站
  • 结构体-时间的计算
  • pt24django教程
  • Golang开发-new关键字
  • 遗传算法与粒子群算法的Python实现
  • 无涯教程-JavaScript - ASINH函数
  • ActiveMQ面试题(一)
  • node:glob语法以及常用的文件查找库glob、fast-glob
  • 饲料添加剂 微生物 屎肠球菌
  • 二叉搜索树经典笔试题【力扣、牛客】
  • docker系列(1) - docker环境篇
  • web安全漏洞-SQL注入攻击实验
  • 直接插入排序(C++实现)
  • 【k8s】Pod 的钩子
  • MCU软核 3. Xilinx Artix7上运行cortex-m3软核
  • 基于SpringbootShiro实现的CAS单点登录
  • SocketTool V4.0 使用说明