1 简介
在短距离无线通信中,无线节点或移动终端通常有低成本,小体积,低功耗的要求,因此无法使用 复杂的预失真或补偿电路克服功放的非线性影响,这是无线节点或移动终端在上行链路中难以使用高阶QAM调制的重要原因之一.基于QAM矩形星座的特点,提 出了一种K-means聚类的改进算法作为中央基站节点的高阶QAM解调算法.在发送信号受到较严重的功放非线性失真时,所提改进算法解调性能更优,算法 复杂度更低.
2 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%figurehold on% %% Set up gridmeanlist = []; % list to append mean grid value to for surface-class gridgridsize = 10000; % total grid area (no. cells)gridx = 100; % length of x-axisgridy= 100; % length of y-axisalg_frac = 1; % percentage of algal coverage at start of experiment (all initialise as light algae: class 1)non_alg_frac = gridsize-alg_frac; % residual = non-algal, assumed clean% create grid by randomly spacing 1's and 2's in a 10x10 gridalg_pixels = gridsize*(alg_frac/100)non_alg_pixels = gridsize-alg_pixelsgrid = reshape([zeros(non_alg_pixels,1) ; ones(alg_pixels,1)],gridx,gridy) ;grid(:) = grid(randperm(numel(grid))) ;for counter = 1:1:12rand = randi(100,1); % return one pseudorandom integer between 1-100for i = 2:1:gridx-1 %%%% NEED TO DEAL WITH EDGES BETTER!!!!for j = 2:1:gridy-1 %%%% NEED TO DEAL WITH EDGES BETTER!!!!if grid(i,j) == 0 % if cell = 0, 10% chance of bloom initiation, otherwise stay cleanif rand == 1grid(i,j) = grid(i,j)+1;elsegrid(i,j) = grid(i,j);endelseif grid(i,j) < 10 % if cell is between 1 and 10, 40% chance of increasing in situif rand < 30grid(i,j) = grid(i,j)+1;elseif rand > 30 && rand < 80 % 40 % chance of bloom spreading, not darkeningrand1 = randi(8,1); % each neighbour has equal chance of being colonisedif rand1 == 1grid(i,j+1) = grid(i,j+1)+1;elseif rand1 == 2grid(i,j-1) = grid(i,j-1)+1;elseif rand1 == 3grid(i+1,j+1) = grid(i+1,j+1)+1;elseif rand1 == 4grid(i+1,j-1) = grid(i+1,j-1)+1;elseif rand1 == 5grid(i+1,j) = grid(i+1,j)+1;elseif rand1 == 6grid(i-1,j) = grid(i-1,j)+1;elseif rand1 == 7grid(i-1,j-1) = grid(i-1,j-1)+1elseif rand1 == 8grid(i-1,j+1) = grid(i,j+1)+1endelseif grid(i,j) == 10 % if cell value is 10 bloom can only grow by spreadingif i < gridx && j < gridy && i >1 && j >1if rand1 == 1grid(i,j+1) = grid(i,j+1)+1;elseif rand1 == 2grid(i,j-1) = grid(i,j-1)+1;elseif rand1 == 3grid(i+1,j+1) = grid(i+1,j+1)+1;elseif rand1 == 4grid(i+1,j-1) = grid(i+1,j-1)+1;elseif rand1 == 5grid(i+1,j) = grid(i+1,j)+1;elseif rand1 == 6grid(i-1,j) = grid(i-1,j)+1;elseif rand1 == 7grid(i-1,j-1) = grid(i-1,j-1)+1;elseif rand1 == 8grid(i-1,j+1) = grid(i,j+1)+1;endelsegrid(i,j) = grid(i,j);endendendendendmeanlist(counter) = mean2(grid);surf(grid);view(2);cbar = colorbar;cbar.Limits=[0,10];caxis([0,10]);drawnowpause(0.1)% calls to SNICAR should go in here: populate second grid with albedosend
3 仿真结果




4 参考文献
[1]彭军, 范兴山, 黄乐天,等. 一种用于解调失真QAM信号的改进K-means聚类算法[J]. 电子技术应用, 2014, 40(11):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
这篇博客介绍了在无线通信中,针对无线节点或移动终端成本低、体积小、低功耗的需求,提出了一种基于QAM矩形星座的K-means聚类改进算法,用以解决高阶QAM调制在功放非线性影响下的解调问题。该算法在严重失真下表现优异且复杂度低,适用于对信号质量有高要求的场景。

被折叠的 条评论
为什么被折叠?



