43 lines
1.1 KiB
Matlab
43 lines
1.1 KiB
Matlab
|
|
|
|
%%%%% 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 |