首页 > 行业资讯 > 【信号处理】基于k均值聚类算法实现QAM信号均衡附matlab代码

【信号处理】基于k均值聚类算法实现QAM信号均衡附matlab代码

时间:2022-06-30 来源: 浏览:

【信号处理】基于k均值聚类算法实现QAM信号均衡附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #信号处理应用matlab源码 256个

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代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐