【信号处理】基于k均值聚类算法实现QAM信号均衡附matlab代码
【信号处理】基于k均值聚类算法实现QAM信号均衡附matlab代码
TT_Matlab
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。
1 简介
在短距离无线通信中,无线节点或移动终端通常有低成本,小体积,低功耗的要求,因此无法使用 复杂的预失真或补偿电路克服功放的非线性影响,这是无线节点或移动终端在上行链路中难以使用高阶QAM调制的重要原因之一.基于QAM矩形星座的特点,提 出了一种K-means聚类的改进算法作为中央基站节点的高阶QAM解调算法.在发送信号受到较严重的功放非线性失真时,所提改进算法解调性能更优,算法 复杂度更低.
2 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
hold
on
%
%% Set up grid
meanlist
=
[]; % list to append mean grid value to for surface-class grid
gridsize
=
10000; % total grid area (no. cells)
gridx
=
100; % length of x-axis
gridy
=
100; % length of y-axis
alg_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 grid
alg_pixels
=
gridsize*(alg_frac/100)
non_alg_pixels
=
gridsize-alg_pixels
grid
=
reshape([zeros(non_alg_pixels,1) ; ones(alg_pixels,1)],gridx,gridy) ;
grid(
:
) = grid(randperm(numel(grid))) ;
for
counter = 1:1:12
rand
=
randi(100,1); % return one pseudorandom integer between 1-100
for
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 clean
if
rand == 1
grid(i,j)
=
grid(i,j)+1;
else
grid(i,j)
=
grid(i,j);
end
elseif
grid(i,j) < 10 % if cell is between 1 and 10, 40% chance of increasing in situ
if
rand < 30
grid(i,j)
=
grid(i,j)+1;
elseif
rand > 30 && rand < 80 % 40 % chance of bloom spreading, not darkening
rand1
=
randi(8,1); % each neighbour has equal chance of being colonised
if
rand1 == 1
grid(i,j+1)
=
grid(i,j+1)+1;
elseif
rand1 == 2
grid(i,j-1)
=
grid(i,j-1)+1;
elseif
rand1 == 3
grid(i+1,j+1)
=
grid(i+1,j+1)+1;
elseif
rand1 == 4
grid(i+1,j-1)
=
grid(i+1,j-1)+1;
elseif
rand1 == 5
grid(i+1,j)
=
grid(i+1,j)+1;
elseif
rand1 == 6
grid(i-1,j)
=
grid(i-1,j)+1;
elseif
rand1 == 7
grid(i-1,j-1)
=
grid(i-1,j-1)+1
elseif
rand1 == 8
grid(i-1,j+1)
=
grid(i,j+1)+1
end
elseif
grid(i,j) == 10 % if cell value is 10 bloom can only grow by spreading
if
i < gridx && j < gridy && i >1 && j >1
if
rand1 == 1
grid(i,j+1)
=
grid(i,j+1)+1;
elseif
rand1 == 2
grid(i,j-1)
=
grid(i,j-1)+1;
elseif
rand1 == 3
grid(i+1,j+1)
=
grid(i+1,j+1)+1;
elseif
rand1 == 4
grid(i+1,j-1)
=
grid(i+1,j-1)+1;
elseif
rand1 == 5
grid(i+1,j)
=
grid(i+1,j)+1;
elseif
rand1 == 6
grid(i-1,j)
=
grid(i-1,j)+1;
elseif
rand1 == 7
grid(i-1,j-1)
=
grid(i-1,j-1)+1;
elseif
rand1 == 8
grid(i-1,j+1)
=
grid(i,j+1)+1;
end
else
grid(i,j)
=
grid(i,j);
end
end
end
end
end
meanlist(counter)
=
mean2(grid);
surf(grid);
view(2);
cbar
=
colorbar;
cbar.Limits
=
[0,10];
caxis([0,10]);
drawnow
pause(0.1)
%
calls to SNICAR should go in here: populate second grid with albedos
end
3 仿真结果
4 参考文献
[1]彭军, 范兴山, 黄乐天,等. 一种用于解调失真QAM信号的改进K-means聚类算法[J]. 电子技术应用, 2014, 40(11):4.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
