基于Matlab模拟时变瑞利衰落信道中的差分放大转发中继

简介: 基于Matlab模拟时变瑞利衰落信道中的差分放大转发中继

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

1 算法原理

This paper considers the performance of differential amplify-and-forward (D-AF) relaying over time-varying Rayleigh fading channels. Using the auto-regressive time-series model to characterize the time-varying nature of the wireless channels, new weights for the maximum ratio combining (MRC) of the received signals at the destination are proposed. Expression for the pair-wise error probability (PEP) is provided and used to obtain an approximation of the total average bit error probability (BEP). The obtained BEP approximation clearly shows how the system performance depends on the auto-correlation of the direct and the cascaded channels and an irreducible error floor exists at high signal-to-noise ratio (SNR). Simulation results also demonstrate that, for fast-fading channels, the new MRC weights lead to a better performance when compared to the classical combining scheme. Our analysis is verified with simulation results in different fading scenarios.

2 算法流程

Differential Amplify-and-Forward (DAF) relaying is a technique used in wireless communication systems to improve performance in time-varying Rayleigh fading channels. In DAF relaying, the relay node receives the modulated signal from the source node differentially and amplifies it before forwarding it to the destination node.

Here is a general overview of the DAF relaying process in time-varying Rayleigh fading channels:

  1. Source-to-relay transmission:
  • The source node transmits a modulated signal in the first time slot.
  • The signal experiences fading and attenuation as it propagates through the channel.
  1. Relay amplification:
  • The relay node receives the signal differentially, comparing it with a local delayed version of the received signal from the previous time slot.
  • The relay node amplifies the differentially-encoded signal to enhance its strength.
  1. Relay-to-destination transmission:
  • The relay node forwards the amplified signal to the destination node in the next time slot.
  • The signal undergoes further fading and attenuation during transmission.
  1. Destination reception:
  • The destination node receives the relayed signal and demodulates it to recover the transmitted data.

Key advantages of DAF relaying in time-varying Rayleigh fading channels include:

  1. Diversity gain: The differential encoding at the relay provides diversity gain, allowing for better performance in fading channels.
  2. Simplified processing: DAF relaying reduces the need for coherent phase and timing synchronization between the source and relay nodes.
  3. Robustness to fading variations: Differential processing mitigates the impact of channel fading variations over consecutive time slots.

It's worth noting that the specific implementation and performance of DAF relaying may vary depending on the system design, modulation scheme, fading characteristics, and other factors. Channel estimation, power control, and cooperation strategies can also be incorporated to further enhance the performance of DAF relaying in time-varying Rayleigh fading channels.

⛄ 部分代码

%% Simulation of the following paper

% M. R. Avendi and Ha H. Nguyen, "Differential Amplify-and-Forward relaying

% in time-varying Rayleigh fading channels," IEEE Wireless Communications

% and Networking Conference (WCNC), Shanghai, China, 2013,


clc

close all

clear all

addpath('functions')

%%


% MPSK modulation

M=2;

Ns=1E5;% number of symbols

Ptot_dB=0:5:40;% SNR scan

Ptot=10.^(Ptot_dB/10);

N0=1; % noise power


% number of Relays

R=1;


% channel distance between channel uses

ch_dis=0; % for symbol-by-symbol n=R


%  scenarios

vfsd=[.001,.01,.05];

vfsr=[.001,.01,.05];

vfrd=[.001,.001,0.01];


% select the scenario

scenario=3;


% normalized Dopplers

fsd=vfsd(scenario);

fsr=vfsr(scenario);

frd=vfrd(scenario);


% auto-correlations

[alfa_sd,alfa]=auto_corr(fsd,fsr,frd,ch_dis);


% power allocation

%[P0,P1]=opt_pow(Ptot,fsd,fsr,frd,M,n);

P0=Ptot./2;

Pi=Ptot./2./R;

Ai2= Pi./(P0+N0);


% CDD power allocation

if M==2, c=.5; else c=.5; end

P0_cdd=c*Ptot;

Pi_cdd=(1-c)*Ptot./R;

Ai2_cdd= Pi_cdd./(P0_cdd+N0);


% this loop scans the SNR range

for ind=1:length(Ptot)


nbits=0;%total number of info sent

err_cdd=0;% error counter

err_tvd=0;% error counter

clc

Ptot_dB(ind)


% this loop keeps going to get a certain amount of errors

ERR_TH=100;

while err_cdd<ERR_TH || err_tvd<ERR_TH


% info bits

xb=bits(log2(M)*Ns);


%binary  to MPSK

v=bin2mpsk(xb,M);


% DPSK modulation

s=diff_encoder(v);

Nd=length(s);


% S-D channel

hsd=flat_cos(Nd,fsd,ch_dis);


% S-R and R-D channels

for k=1:R

hsr(k,:)=flat_cos(Nd,fsr,ch_dis);

hrd(k,:)=flat_cos(Nd,frd,ch_dis);

end


% AWGN noise CN(0,N0)

z_sd=cxn(Nd,N0);

for k=1:R

z_sr(k,:)=cxn(Nd,N0);

z_rd(k,:)=cxn(Nd,N0);

end


%--------------------------------------- received signals

% CDD power allocation

y_sd_cdd=sqrt(P0_cdd(ind))*hsd.*s+z_sd;

for k=1:R

y_sr_cdd(k,:)=sqrt(P0_cdd(ind))*hsr(k,:).*s+z_sr(k,:);

y_rd_cdd(k,:)=sqrt(Ai2_cdd(ind))*hrd(k,:).*y_sr_cdd(k,:)+z_rd(k,:);

end


% propossed power allocation for time-varying

y_sd=sqrt(P0(ind))*hsd.*s+z_sd;

for k=1:R

y_sr_tvd(k,:)=sqrt(P0(ind))*hsr(k,:).*s+z_sr(k,:);

y_rd_tvd(k,:)=sqrt(Ai2(ind))*hrd(k,:).*y_sr_tvd(k,:)+z_rd(k,:);

end

% ---------------------------------------- MRC combining

% classical weights

a0_cdd=1/2;

ai_cdd=1/(1+Ai2_cdd(ind))/2;

vh_cdd=a0_cdd*diff_detector(y_sd_cdd);

for k=1:R

vh_cdd=vh_cdd+ai_cdd*diff_detector(y_rd_cdd(k,:));

end


% propossed weights for time-varying

[at1,at2]=mrc_gains(P0(ind),Ai2(ind),alfa_sd,alfa);

vh_tvd=at1*diff_detector(y_sd);

for k=1:R

vh_tvd=vh_tvd+at2*diff_detector(y_rd_tvd(k,:));

end


% selection combining

%vh2=max((diff_detector(y_sd)),(diff_detector(y_rd)));


% binary detection

bh_cdd=mpsk2bin(vh_cdd,M);

bh_tvd=mpsk2bin(vh_tvd,M);


% error count

err_cdd=err_cdd+sum(abs(xb-bh_cdd));

err_tvd=err_tvd+sum(abs(xb-bh_tvd));

nbits=log2(M)*Ns+nbits;


end


% compute practical BER

BER_cdd(ind)=err_cdd/nbits;% coperative

BER_tvd(ind)=err_tvd/nbits;% coperative


end


% SER

Pu=Pupper(P0,Ai2,fsd,fsr,frd,M,ch_dis);

Ps=Ps_num_int(P0,Ai2,fsd,fsr,frd,M,ch_dis);

Psf=Ps_floor(fsd,fsr,frd,M,ch_dis);


% upper bound

Pb_ub=Pu./log2(M);


% theoretical bit error rate

Pb_theory=Ps./log2(M);


% error floor

Pbf=Psf/log2(M)*ones(1,length(P0));

%% plot

lcm=['b-s';'r-o';'k:>';'g-.';'y-*'];

figure

semilogy(Ptot_dB,BER_cdd,lcm(1,:),'LineWidth',3,'MarkerSize',5);

hold on

semilogy(Ptot_dB,BER_tvd,lcm(2,:),'LineWidth',3,'MarkerSize',5);

%semilogy(Ptot_dB,Pb_ub,lcm(3,:),'LineWidth',3,'MarkerSize',5);

semilogy(Ptot_dB,Pb_theory,lcm(4,:),'LineWidth',3,'MarkerSize',5);

semilogy(Ptot_dB,Pbf,'r-.','LineWidth',3,'MarkerSize',5);

legend('CDD','TVD','Theory','Error Floor')

grid on

xlabel('P(dB)')

ylabel('BER')

⛄ 运行结果

⛄ 参考文献

M. R. Avendi and Ha H. Nguyen, "Differential Amplify-and-Forward relaying in time-varying Rayleigh fading channels," IEEE Wireless Communications and Networking Conference (WCNC), Shanghai, China, 2013,

🍅 仿真咨询

1.卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
2.图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
3.旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划
4.无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
5.传感器部署优化、通信协议优化、路由优化、目标定位
6.信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号
7.生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化
8.微电网优化、无功优化、配电网重构、储能配置
9.元胞自动机交通流 人群疏散 病毒扩散 晶体生长

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料



相关文章
|
3月前
|
算法 5G 数据安全/隐私保护
大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP
本文介绍了大规模MIMO系统中的信道估计方法,包括最小二乘法(LS)、正交匹配追踪(OMP)、多正交匹配追踪(MOMP)和压缩感知算法CoSaMP。展示了MATLAB 2022a仿真的结果,验证了不同算法在信道估计中的表现。最小二乘法适用于非稀疏信道,而OMP、MOMP和CoSaMP更适合稀疏信道。MATLAB核心程序实现了这些算法并进行了性能对比。以下是部分
270 84
|
14天前
|
算法 数据安全/隐私保护
数字通信中不同信道类型对通信系统性能影响matlab仿真分析,对比AWGN,BEC,BSC以及多径信道
本项目展示了数字通信系统中几种典型信道模型(AWGN、BEC、BSC及多径信道)的算法实现与分析。使用Matlab2022a开发,提供无水印运行效果预览图、部分核心代码及完整版带中文注释的源码和操作视频。通过数学公式深入解析各信道特性及其对系统性能的影响。
|
2月前
|
机器学习/深度学习 算法 5G
基于BP神经网络的CoSaMP信道估计算法matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
本文介绍了基于Matlab 2022a的几种信道估计算法仿真,包括LS、OMP、NOMP、CoSaMP及改进的BP神经网络CoSaMP算法。各算法针对毫米波MIMO信道进行了性能评估,通过对比不同信噪比下的均方误差(MSE),展示了各自的优势与局限性。其中,BP神经网络改进的CoSaMP算法在低信噪比条件下表现尤为突出,能够有效提高信道估计精度。
48 2
|
2月前
|
数据采集 算法 5G
基于稀疏CoSaMP算法的大规模MIMO信道估计matlab性能仿真,对比LS,OMP,MOMP,CoSaMP
该研究采用MATLAB 2022a仿真大规模MIMO系统中的信道估计,利用压缩感知技术克服传统方法的高开销问题。在稀疏信号恢复理论基础上,通过CoSaMP等算法实现高效信道估计。核心程序对比了LS、OMP、NOMP及CoSaMP等多种算法的均方误差(MSE),验证其在不同信噪比下的性能。仿真结果显示,稀疏CoSaMP表现优异。
65 2
|
2月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
59 0
|
3月前
|
算法 5G 数据安全/隐私保护
SCM信道模型和SCME信道模型的matlab特性仿真,对比空间相关性,时间相关性,频率相关性
该简介展示了使用MATLAB 2022a进行无线通信信道仿真的结果,仿真表明信道的时间、频率和空间相关性随间隔增加而减弱,并且宏小区与微小区间的相关性相似。文中介绍了SCM和SCME模型,分别用于WCDMA和LTE/5G系统仿真,重点在于其空间、时间和频率相关性的建模。SCME模型在SCM的基础上进行了扩展,提供了更精细的参数化,增强了模型的真实性和复杂度。最后附上了MATLAB核心程序,用于计算不同天线间距下的空间互相关性。
86 0
|
3月前
|
算法 5G 数据安全/隐私保护
3D-MIMO信道模型的MATLAB模拟与仿真
该研究利用MATLAB 2022a进行了3D-MIMO技术的仿真,结果显示了不同场景下的LOS概率曲线。3D-MIMO作为5G关键技术之一,通过三维天线阵列增强了系统容量和覆盖范围。其信道模型涵盖UMa、UMi、RMa等场景,并分析了LOS/NLOS传播条件下的路径损耗、多径效应及空间相关性。仿真代码展示了三种典型场景下的LOS概率分布。
99 1
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
217 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
139 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
105 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码