function showLevelConfusionMatrix(decided_symbols,ref_symbols,options) arguments decided_symbols ref_symbols options.M = NaN options.fignum (1,1) double = NaN % Default to NaN if not provided options.displayname (1,:) char = '' % Default to an empty string if not provided end % Determine the figure number to use or create a new figure if isnan(options.fignum) fig = figure; % Create a new figure and get its handle else fig = figure(options.fignum); % Use the specified figure number end if length(unique(decided_symbols.signal))>20 assert(~isnan(options.M),'Provide either decided symbol sequence or modulation order M (PAM-4 -> M=4)'); decided_symbols = PAMmapper(options.M,0).quantize(decided_symbols); end %%% Confusion Matrix cm = confusionchart(ref_symbols.signal,decided_symbols.signal,'RowSummary','row-normalized','ColumnSummary','column-normalized','Title','Confusion Matrix','XLabel','Decisions','YLabel','Transmitted'); end