用于非线性多载波卫星信道的多输入多输出符号速率信号数字预失真器DPD(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

****🏆博主优势:**🌞🌞🌞**博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️**座右铭:**行百里者,半于九十。

📋📋📋++本文目录如下:++🎁🎁🎁

目录

[💥1 概述](#💥1 概述)

[📚2 运行结果](#📚2 运行结果)

[🎉3 参考文献](#🎉3 参考文献)

[🌈4 Matlab代码、数据、文章](#🌈4 Matlab代码、数据、文章)


💥1 概述

摘要:

该文提出一种数字预失真(DPD)方案,用于多载波卫星通信信道中的非线性失真抑制。所提出的DPD具有类似于数据DPD方案的多输入多输出架构。然而,它使用多速率处理算法增强了数据DPD的缓解性能,以实现非线性算子的频谱拓宽。与单载波(单输入单输出)信号(波形)DPD方案相比,所提出的DPD具有较低的数字处理速率,降低了预失真器所需的硬件成本。所提出的DPD在总体退化方面优于数据和信号DPD方案。此外,它的性能最接近由具有有限最大输出功率的理想缓解通道描述的通道边界。

对功率/质量效率高的卫星转发器的需求不断增加,推动了使用单个高功率放大器(HPA)联合放大多载波信号。在这种多载波(MC)场景中,多个信号在频率上被多路复用,并共享卫星转发器的板载硬件[1](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0001 "1")。但是,放大的信号会被非线性HPA失真。除了单载波中存在的非线性失真外,MC场景还存在相邻信道干扰(ACI)和互调失真(IMD)效应[1](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0001 "1"),这些效应会进一步使信号失真并降低系统容量。因此,减轻这些失真对于MC卫星系统的有效运行至关重要。

在网关上运行的非线性失真缓解技术称为数字预失真(DPD),它们具有不同的部署架构。首先,数据DPD方案[2](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0002 "2"),[3](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0003 "3")是多输入多输出(MIMO)(每个载波产生一个预失真流),并以符号速率运行,因此需要相对较低的数字带宽。其次,信号DPD方案[4](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0004 "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](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0003 "3")中,作者提出了使用符号级应用的多级Volterra过程的卫星系统的MC预处理。级联多个Volterra滤波器增强了数据级计算的缓解能力,尽管计算复杂度更高。与[3](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0003 "3")相比,SRS DPD使用单个Volterra滤波器,并通过多速率方案增强了数据电平的缓解。此外,SRS DPD不会像[3](https://ietresearch.onlinelibrary.wiley.com/doi/10.1049/iet-com.2015.0176#cmu2bf01470-bib-0003 "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代码、数据、文章

相关推荐
Funlang1 分钟前
给机器写的 JavaScript 造个笼子
开发语言·javascript·ecmascript
普通人66 分钟前
PHP文件读写完全指南
开发语言·php·1024程序员节
坤坤子吖1 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
一晌小贪欢1 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公
xiaoye-duck2 小时前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
一条大祥脚2 小时前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
FRing033 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
旖旎夜光3 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
starzy19904 小时前
深入理解Scala嵌套函数:作用域封装之道
开发语言·scala
Sakura_j_h_4 小时前
从零写一个 MCP stdio Server:用 Python 校验博客文章格式
开发语言·python·自动化·ai工具·mcp·json-rpc