实例介绍
【实例截图】
【源码目录】
intelligent-reflecting-surface-aided-swipt-joint-waveform-active-and-passive-beamforming-design-master
├── assets
│ ├── cdf_los.tex
│ ├── layout.pdf
│ ├── layout.pdf_tex
│ ├── layout.svg
│ ├── path_loss.tex
│ ├── re_csi.tex
│ ├── re_distance.tex
│ ├── re_irs_10mhz.tex
│ ├── re_irs_1mhz.tex
│ ├── re_los.tex
│ ├── re_noise.tex
│ ├── re_quantization.tex
│ ├── re_reflector.tex
│ ├── re_subband.tex
│ ├── re_tx.tex
│ ├── scaling_reflector.tex
│ ├── scaling_tx.tex
│ ├── splitting_ratio_noise.tex
│ ├── system.pdf
│ ├── system.pdf_tex
│ ├── system.svg
│ └── waveform_subband.tex
├── letter.pdf
├── letter.tex
├── library.bib
├── main.pdf
├── main.tex
├── response.pdf
├── response.tex
└── src
├── config
│ ├── config_re_csi.m
│ ├── config_re_distance.m
│ ├── config_re_irs.m
│ ├── config_re_lc.m
│ ├── config_re_los.m
│ ├── config_re_noise.m
│ ├── config_re_quantization.m
│ ├── config_re_reflector.m
│ ├── config_re_subband.m
│ ├── config_re_tx.m
│ ├── config_scaling_reflector.m
│ └── config_scaling_tx.m
├── data
│ ├── re_csi
│ ├── re_distance
│ ├── re_irs
│ ├── re_lc
│ ├── re_los
│ ├── re_noise
│ ├── re_quantization
│ ├── re_reflector
│ ├── re_subband
│ ├── re_tx
│ ├── scaling_reflector
│ └── scaling_tx
├── figures
│ ├── cdf_los.fig
│ ├── path_loss.fig
│ ├── re_csi.fig
│ ├── re_distance.fig
│ ├── re_irs_10mhz.fig
│ ├── re_irs_1mhz.fig
│ ├── re_los.fig
│ ├── re_noise.fig
│ ├── re_quantization.fig
│ ├── re_reflector.fig
│ ├── re_subband.fig
│ ├── re_tx.fig
│ ├── scaling_reflector.fig
│ ├── scaling_tx.fig
│ ├── splitting_ratio_noise.fig
│ └── waveform_subband.fig
├── lib
│ ├── block_diagonal.m
│ ├── cascaded_channel.m
│ ├── channel_response.m
│ ├── composite_channel.m
│ ├── composite_channel_ideal.m
│ ├── coordinate.m
│ ├── current_gp.m
│ ├── current_sdr.m
│ ├── hermitianize.m
│ ├── imperfect_csi.m
│ ├── initialize_waveform.m
│ ├── irs_linear.m
│ ├── irs_sdr.m
│ ├── multipath_fading.m
│ ├── path_loss.m
│ ├── precoder_mrt.m
│ ├── quantized_irs.m
│ ├── rate_gp.m
│ ├── re_sample_swipt_gp.m
│ ├── re_sample_swipt_gp_benchmark.m
│ ├── re_sample_swipt_imperfect_csi.m
│ ├── re_sample_swipt_low_complexity.m
│ ├── re_sample_swipt_quantized_irs.m
│ ├── re_sample_wit_wf.m
│ ├── re_sample_wpt_ass.m
│ ├── re_sample_wpt_sdr.m
│ ├── re_sample_wpt_smf.m
│ ├── scaled_matched_filter.m
│ ├── spatial_correlation.m
│ ├── subband_frequency.m
│ ├── tap_tgn.m
│ ├── water_filling.m
│ ├── waveform_ass.m
│ ├── waveform_gp.m
│ └── waveform_sdr.m
├── plot
│ ├── eval_eigenratio.m
│ ├── plot_pathloss.m
│ ├── plot_re_csi.m
│ ├── plot_re_distance.m
│ ├── plot_re_irs.m
│ ├── plot_re_lc.m
│ ├── plot_re_los.m
│ ├── plot_re_noise.m
│ ├── plot_re_quantization.m
│ ├── plot_re_reflector.m
│ ├── plot_re_subband.m
│ ├── plot_re_tx.m
│ ├── plot_scaling_reflector.m
│ └── plot_scaling_tx.m
├── rcs
│ ├── re_csi.pbs
│ ├── re_distance.pbs
│ ├── re_irs.pbs
│ ├── re_lc.pbs
│ ├── re_los.pbs
│ ├── re_noise.pbs
│ ├── re_quantization.pbs
│ ├── re_reflector.pbs
│ ├── re_subband.pbs
│ ├── re_tx.pbs
│ ├── scaling_reflector.pbs
│ └── scaling_tx.pbs
├── re_csi.m
├── re_distance.m
├── re_irs.m
├── re_lc.m
├── re_los.m
├── re_noise.m
├── re_quantization.m
├── re_reflector.m
├── re_subband.m
├── re_tx.m
├── scaling_reflector.m
├── scaling_tx.m
├── setup.m
└── tools
├── apply_group_style.m
├── apply_style.m
├── struct2variables.m
└── variables2struct.m
21 directories, 135 files
【核心代码】
% UPA_reflecting_surface
clear;close all;clc;
%% BS parameters settings
Nx = 8; % TX antenna nums
Ny = 4; % TX antenna nums
K = 2; % user nums
L = 2; % NLOS path nums
%SNR = 30; % SNR in dB
N = Nx*Ny;
d_BI = 50;
cord = [(2*rand(K,1)-1) 4, 2*rand(K,1)-1]*10;
for ii=1:K
c_IU(ii,:) = cord(ii,:)-[40, 30];
end
d_IU = sqrt(sum(c_IU.^2, 2));
%% surface parameters
Mx = 5; % x-axis surface element nums
My = [1,2,3,4,5,6]*2; % y-axis surface element nums
M = Mx*My;
%% optimization parameters
P_max = 1; % W (30dBm)
sigma = 3.16e-12; % dBm-->W (-85dBm)
SR = zeros(length(My),1);
SR1 = zeros(length(My),1);
SR2 = zeros(length(My),1);
SR_rand = zeros(length(My),1);
%% plot
for mi=1:length(My)
for test = 1:1000
%% BS-IRS channel matrix
G = BS_IRS(Mx,My(mi),Nx,Ny,L,d_BI);
%% IRS-user channel matrix
H = FF_User(Mx,My(mi),K,d_IU);
%% AO algorithm
[ Sum_Rate, P, Theta ] = Opt_func( M(mi),N,K,P_max,sigma,H,G );
DisSumRate1 = DiscreteSum( 1,Theta,K,P,sigma,H,G );
DisSumRate2 = DiscreteSum( 2,Theta,K,P,sigma,H,G );
Sum_rand = RandSum( 0, M(mi),N,K,P_max,sigma,H,G );
SR(mi) = SR(mi) Sum_Rate;
SR1(mi) = SR1(mi) DisSumRate1;
SR2(mi) = SR2(mi) DisSumRate2;
SR_rand(mi) = SR_rand(mi) Sum_rand;
end
SR(mi) = SR(mi)/test;
SR1(mi) = SR1(mi)/test;
SR2(mi) = SR2(mi)/test;
SR_rand(mi) = SR_rand(mi)/test;
end
figure(1);
plot(M, SR, 'b-.o', 'LineWidth',1,'MarkerSize',8);
hold on;
plot(M, SR1, '--s', 'color', [0.13 0.55 0.13], 'LineWidth',1,'MarkerSize',10);
plot(M, SR2, 'r--^', 'LineWidth',1,'MarkerSize',8);
plot(M, SR_rand, 'm-*', 'LineWidth',1,'MarkerSize',10);
set(gca,'xtick',M);
xlim([M(1), M(end)]);
xlabel('M'),ylabel('Sum-rate'); %xlim([1, iter]);
grid on;
handle=legend('Proposed, $\mathcal{F}_{\rm c}$','Proposed, $\mathcal{F}_{\rm d}$, $b=1$',...
'Proposed, $\mathcal{F}_{\rm d}$, $b=2$', 'ZF Random PBF');
set(handle, 'Interpreter', 'LaTex');
set(handle, 'FontSize', 13, 'Location', 'best');
set(gca, 'FontSize', 12);
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论