%%%%% SETTINGS %%%%%% useprbs = 1; M = 8; randkey = 1; fsym = 112e9; viewresults = 0; %%%%% Mapping %%%%% M = 6; data = 0:M-1; bitpersymbol = log2(M); s = RandStream('twister','Seed',1); bitpattern = randi(s,[0 1], 2^18, 1); bitpattern = bitpattern(1:end-mod(length(bitpattern),5)); bits_tx = Informationsignal(bitpattern); symbols = PAMmapper(M,0).map(bits); pam6transitions = combvec(PAMmapper(M,0).levels,PAMmapper(M,0).levels)'; pam6bits = PAMmapper(6,0,"eth_style",0).demap(reshape(pam6transitions',[],1)./sqrt(10)); symbols_rx = PAMmapper(M,0).map(pam6bits).*sqrt(10); pam6bits = reshape(pam6bits',5,[])'; figure; hold on scatter(pam6transitions(:,1), pam6transitions(:,2), 'x', 'LineWidth', 1); n = size(pam6transitions,1); labels = cellstr(char(pam6bits + '0')); % -> N x 1 cell array of char rows text(pam6transitions(:,1), pam6transitions(:,2), labels, ... 'HorizontalAlignment','left', 'VerticalAlignment','bottom'); bits_rx = PAMmapper(M,0).demap(symbols); [~,error_num,ber,error_pos] = calc_ber(bits_tx.signal,bits_rx.signal,"skip_front",0,"skip_end",0,"returnErrorLocation",1); PAMmapper(8,0).showBitMapping