【数字仿真】数字仿真 预失真 (DPD) 算法 透明多载波卫星链路(Matlab实现)

“在代码的海洋里,有无尽的知识等待你去发现。我就是那艘领航的船,带你乘风破浪,驶向代码的彼岸。

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

在通信领域,数字仿真对于研究和优化各种通信系统具有重要意义。 预失真(DPD)算法是一种用于改善通信系统性能的关键技术。在无线通信中,功率放大器通常会引入非线性失真,这可能导致信号质量下降、频谱扩展以及干扰增加等问题。DPD 算法通过对输入信号进行预失真处理,使得经过功率放大器后的输出信号尽可能接近理想的线性放大状态,从而提高信号质量、降低误码率并提高系统的频谱效率。 透明多载波卫星链路是一种卫星通信链路,具有透明转发的特点,即卫星仅对接收的信号进行放大和转发,而不进行复杂的信号处理。多载波技术可以提高卫星链路的传输容量和频谱效率,适应高速数据传输的需求。在透明多载波卫星链路中,DPD 算法可以有效地补偿卫星转发器中的功率放大器非线性失真,提高链路的性能和可靠性。 通过数字仿真,可以对透明多载波卫星链路中的 DPD 算法进行深入研究和优化。可以模拟不同的信号条件、功率放大器特性以及链路参数,评估 DPD 算法的性能表现,如失真补偿效果、误码率性能、频谱效率等。数字仿真还可以帮助设计和调整 DPD 算法的参数,以适应不同的应用场景和系统要求。 总之,数字仿真、预失真算法和透明多载波卫星链路的结合为卫星通信系统的性能提升和优化提供了有力的工具和方法。

📚2 运行结果

主函数部分代码:

clear all; close all; clc
tic
%% settings

Mod = 32;        % APSK modulation for all carriers
Rate = 9/10;     % LDPC code rate for all carriers
Es_NodB = 25;    % Es/No in dB for the DPD identification
IBO = 6;        % input back off the of HPA

Nsamp = 3800;    % # of symbols for the DPD identification

% DPD settings 
% DPD scheme (set DPD_type): NO DPD = 'No'
%                            memory polynomial MP data DPD = 'MP'
%                            reduced data MP DPD = 'RMP'
%                            SRS DPD = 'SRS'
%                            mem polynomial(reduced complex.) SRS = 'RSRS'
DPD_type = 'RSRS';  
Pn = 3;          % nonlinear order
Mn = [5 1 0];    % memory depths [linear third fifth ...]


%% 3 carrier base-band symbols
Nbits =  64800;    % a frame in DVB-S2 
nsymbols = Nbits/log2(Mod);

spc_eff = 4; %Changing this affects the magnitude of each circle
c = APSK_Const_Gen(Mod, spc_eff);  % gray coded APSK Constellation
c = c/std(c);
modObj = modem.genqammod('Constellation',c, 'InputType', 'Bit') ;

for kk = 1:3  % 3 carriers
      codeword = randi([0 1],1,Nbits); 
       AT(:,kk) = modulate(modObj, codeword'); % symbols of each carrier
end

%% Satellite link : pulse-shape IMUX TWTA OMUX pulse-shape  sampling

[rd1 rd2 rd3 OBO] = MC_Core_channel(IBO,inf,AT(:,1),AT(:,2),AT(:,3)); 
rec = [rd1 rd2 rd3]; 
fprintf('\n ---- NO DPD --- \n')   
fprintf('OBO no DPD : %1.2f \n',OBO)

% optimal scaling of each carrier
P1 = rd1\AT(:,1); P2 = rd2\AT(:,2); P3 = rd3\AT(:,3); 
recn = [rd1.*P1 rd2.*P2 rd3.*P3];

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]Pu H J ,Hua N ,Chen Y , et al. Modelling and numerical simulation of heat transfer and hydrodynamic performance of multi-pass parallel flow condensers – A novel algebraic method to determine flow distribution[J]. International Communications in Heat and Mass Transfer,2024,159(PA).

[2]Cao Y ,Dai Z ,Zhang C , et al. Integrated experiments and numerical simulations for chromium (VI) surface complexation in natural unconsolidated sediments[J]. Applied Geochemistry,2024,173.

🌈4 Matlab代码实现

图片

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值