✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
功率分配技术能有效提高认知网络传输链路的信道容量,而注水算法利用凸优化的思想能实现功率分配最优化.针对认知网络中使用注水算法分配信道功率时未考虑邻近认知信道干扰的情况,对认知网络中邻近认知信道干扰对授权信道的影响进行研究.性能分析和仿真结果表明,认知网络中认知信道干扰对授权信道的影响不容忽略,合理调整注水算法的参数能够降低邻近认知信道干扰,达到传输容量的最大化.
⛄ 部分代码
%% Water filling analogy in power allocation for Gaussian power channel
clear all; close all; clc;
%% Do the waterfilling
[sigma_vec, tot_distortion] = reversewaterfilling_init();
dist_alloc_vec = reversewaterfilling(sigma_vec, tot_distortion);
%% Visualize the stacked output
ceiling_drop = max(sigma_vec)+1 - dist_alloc_vec;
dist_alloc_bar = bar([dist_alloc_vec; sigma_vec - dist_alloc_vec; ceiling_drop - (sigma_vec - dist_alloc_vec)]', 'stacked');
set(dist_alloc_bar(1), 'FaceColor', 'yellow'); set(dist_alloc_bar(2), 'FaceColor', 'green');set(dist_alloc_bar(3), 'FaceColor', 'cyan');
str = sprintf('Reverse water filling analogy for Gaussian channel bits allocation with total distortion constraint = %d', tot_distortion);
title(str);
channel_idx = 1:numel(sigma_vec);
set(gca, 'XTick', channel_idx);
xlabel('Channel index'); ylabel('Power level');
legend(dist_alloc_bar, {'distortion', 'signal power', 'water from ceiling'});
for i1=channel_idx
if(dist_alloc_vec(i1)~=0)
text(channel_idx(i1), .5*dist_alloc_vec(i1) - 0.25, num2str(dist_alloc_vec(i1),'%0.1f'),...
'HorizontalAlignment','center', 'VerticalAlignment','bottom');
end
if(sigma_vec(i1)~=dist_alloc_vec(i1))
text(channel_idx(i1), sigma_vec(i1) + 0.25, num2str(sigma_vec(i1),'%0.1f'),...
'HorizontalAlignment','center', 'VerticalAlignment','bottom', 'FontWeight', 'bold');
end
end
⛄ 运行结果
⛄ 参考文献
[1] 于迎新, 王钢. 协作分集系统中基于注水算法的功率分配方案研究[J]. 电子与信息学报, 2012, 34(12):7.
[2] 苗成林, 李彤, 吕军,等. 基于注水算法的认知网络功率分配技术研究[J]. 通信技术, 2017, 50(4):6.
[3] 熊金石, 任清华, 管伟,等. 基于注水原理的TDCS功率分配算法[J]. 电讯技术, 2010(2):4.