% Setup PRBS parameters O = 6; M = 6; N = 2^(O-1); % Length of PRBS randkey = 1; % Random key for random stream use_eth_mapping =1; if M ~= 6 dimension = log2(M); else dimension = 5; end [~, seed] = prbs(O, 1); % Initialize first seed of PRBS bitpattern = []; s = RandStream('twister', 'Seed', randkey); for i = 1:dimension bitpattern(:, i) = randi(s, [0 1], N, 1); end if M == 6 bitpattern = reshape(bitpattern',[],1); bitpattern = bitpattern(1:end-mod(length(bitpattern),5)); end Tx_bits = Informationsignal(bitpattern); Digi_Mod = PAMmapper(M, 0,"eth_style",use_eth_mapping); % Map bits to symbols Symbols = Digi_Mod.map(Tx_bits); % Demap symbols back to bits Rx_bits = Digi_Mod.demap(Symbols); [~, error_num, ber, ~] = calc_ber(Tx_bits.signal(1:length(Rx_bits.signal)), Rx_bits.signal,"skip_front", 0, "skip_end", 0, "returnErrorLocation", 1); fprintf('BER: %.1E \n',ber);