%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Project : PON_HD % Module : PlotSymbol % Description : Plot symbol for paper % References : % %Version|Date |author|Description %-------|--------|------|------------------------------------------------------- %01.01 |20210729|L,YM |Initial version %-------|--------|------|------------------------------------------------------- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc;clear;close all; tic; PARAM.ScatterColorOn = 1; FontSize = 22; FontName = 'Times New Roman';%'Arial';% EvmLen = 4; CrossWid = 3; CrossSize = 12; AxisMax = 1.7; AxisArea = [-AxisMax +AxisMax -AxisMax +AxisMax]; ModeName = ['LP_{01X} ';'LP_{01Y} '; 'LP_{11aX}';'LP_{11aY}'; 'LP_{11bX}';'LP_{11bY}'; 'LP_{21aX}';'LP_{21aY}'; 'LP_{21bX}';'LP_{21bY}']; % load('RxSymbolTestSic5x6.mat'); % SymbolSic5x6L2 = RxSymbol; % EvmSic5x6L2 = [0.154154891150197,0.175873003356005,0.169329257577639,0.179941635965015,0.127983382222244,0.132828366814342,0.179416251506209,0.101000507890449,0.154917868881876,0.131249158294314]; load('RxSymbolTestSic5x6Loop1.mat'); SymbolSic5x6L1 = RxSymbol; EvmSic5x6L1 = [0.219238673503324,0.198910060350376,0.244072975058830,0.198299566716392,0.185151454397071,0.213759674827258,0.179506234587827,0.234636843266393,0.229913526153844,0.140164000187457]; load('RxSymbolTestMmse5x6.mat'); SymbolMmse5x6 = RxSymbol; EvmMmse5x6 = [0.306558267969231,0.436538859543188,0.306443622955396,0.369622014751148,0.328814588531901,0.291605372435254,0.320918366554279,0.234636843266393,0.237950301919079,0.244401912190815]; load('RxSymbolTestMmse5x5.mat'); SymbolMmse5x5 = RxSymbol; EvmMmse5x5 = [0.434922453182232,0.648874109583734,0.526964124103653,0.430696323029679,0.434571205751684,0.436824554473662,0.495747219699024,0.316167198980461,0.279995197583444,0.257041544203549]; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% test figure %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Plot coeffcients %limit setting AxW = 10; AxH = 3.25; PlotMinW = 0; PlotMinH = 0; PlotMaxW = 20;%AxW*2; PlotMaxH = PlotMaxW * AxH/AxW; %figure setting AxScale = 0.82;%0.7; %% Fig.position Fig1 = figure; Fig1.Units = 'inches'; Fig1.Position = [PlotMinW, PlotMinH, PlotMaxW, PlotMaxH]; colormap parula%jet%autumn%winter% %% constellation heatmap Mmse5x5 for i1 = 1 : 10 ax1 = axes; ax1.InnerPosition = [(1-AxScale+(i1-1))/AxW, (1-AxScale+2)/AxH,... AxScale/AxW, AxScale/AxH];%position without labels % ax1.OuterPosition = [(i1-1)/NumW, 0 ,... % 1 /NumW, 1/NumH];%position with labels if PARAM.ScatterColorOn ScatterColormap(ax1,real(SymbolMmse5x5(:,i1)), imag(SymbolMmse5x5(:,i1))); else plot(ax1,SymbolMmse5x5(:, i1), 'g.'); hold on; end %% plot FormatMap PARAM.FormatMap = [1+1i;1-1i;-1+1i;-1-1i]/sqrt(2); plot(ax1, PARAM.FormatMap, 'r+', ... 'LineWidth', CrossWid, 'MarkerSize', CrossSize); hold on; %% grid and title grid on; grid minor; axis(AxisArea) EvmStr = num2str(EvmMmse5x5(i1)*100); EvmStr = EvmStr(1:EvmLen); xlabel(['EVM=',EvmStr,'%'],'FontSize',FontSize,'FontName',FontName); if(i1 == 1); ylabel('MMSE 10x10','FontSize',FontSize,'FontName',FontName); end xticks([]) yticks([]) title(ModeName(i1,:),'FontSize',FontSize) end %% constellation heatmap Mmse5x6 for i1 = 1 : 10 ax1 = axes; ax1.InnerPosition = [(1-AxScale+(i1-1))/AxW, (1-AxScale+1)/AxH,... AxScale/AxW, AxScale/AxH];%position without labels % ax1.OuterPosition = [(i1-1)/NumW, 0 ,... % 1 /NumW, 1/NumH];%position with labels if PARAM.ScatterColorOn ScatterColormap(ax1,real(SymbolMmse5x6(:,i1)), imag(SymbolMmse5x6(:,i1))); else plot(ax1,SymbolMmse5x6(:, i1), 'g.'); hold on; end %% plot FormatMap PARAM.FormatMap = [1+1i;1-1i;-1+1i;-1-1i]/sqrt(2); plot(ax1, PARAM.FormatMap, 'r+', ... 'LineWidth', CrossWid, 'MarkerSize', CrossSize); hold on; %% grid and title grid on; grid minor; axis(AxisArea) EvmStr = num2str(EvmMmse5x6(i1)*100); EvmStr = EvmStr(1:EvmLen); xlabel(['EVM=',EvmStr,'%'],'FontSize',FontSize,'FontName',FontName); if(i1 == 1); ylabel('MMSE 10x12','FontSize',FontSize,'FontName',FontName); end xticks([]) yticks([]) end %% constellation heatmap Sic5x6 for i1 = 1 : 10 ax1 = axes; ax1.InnerPosition = [(1-AxScale+(i1-1))/AxW, (1-AxScale+0)/AxH,... AxScale/AxW, AxScale/AxH];%position without labels % ax1.OuterPosition = [(i1-1)/NumW, 0 ,... % 1 /NumW, 1/NumH];%position with labels if PARAM.ScatterColorOn ScatterColormap(ax1,real(SymbolSic5x6L1(:,i1)), imag(SymbolSic5x6L1(:,i1))); else plot(ax1,SymbolSic5x6L1(:, i1), 'g.'); hold on; end %% plot FormatMap PARAM.FormatMap = [1+1i;1-1i;-1+1i;-1-1i]/sqrt(2); plot(ax1, PARAM.FormatMap, 'r+', ... 'LineWidth', CrossWid, 'MarkerSize', CrossSize); hold on; %% grid and title grid on; grid minor; axis(AxisArea) EvmStr = num2str(EvmSic5x6L1(i1)*100); EvmStr = EvmStr(1:EvmLen); xlabel(['EVM=',EvmStr,'%'],'FontSize',FontSize,'FontName',FontName); if(i1 == 1); ylabel('SIC 10x12','FontSize',FontSize,'FontName',FontName); end xticks([]) yticks([]) end toc;