Guest User

Untitled

a guest
Apr 30th, 2020
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.67 KB | None | 0 0
  1. Nbits = 100;
  2. numtrials = 50;
  3. Bs = 1:10;
  4.  
  5. for k=1:length(Bs)
  6.     B = Bs(k)
  7.  
  8.     % https://www.mathworks.com/matlabcentral/fileexchange/24336
  9.     H = walshcode(B);
  10.     SF = size(H,1);
  11.    
  12.     D = kron(eye(Nbits), ones(1, SF));
  13.     Hh = repmat(H, Nbits, 1);
  14.  
  15.     for trial=1:numtrials
  16.         bits = sign(randn(Nbits, SF));
  17.         bits_cr = upfirdn(bits, ones(1, SF), SF);
  18.         x = sum(bits_cr .* Hh,2);
  19.         x = sign(x-sign(randn(size(x)))*eps); % clip
  20.         y = repmat(x,1,SF) .* Hh;
  21.         bits_hat = sign(D*y);
  22.         BER(trial,k) = sum(sum(bits_hat ~= bits))/SF/Nbits;
  23.     end
  24. end
  25.  
  26. plot(Bs, mean(BER));xlabel('log(WalshCodeLength)');ylabel('BER');
Add Comment
Please, Sign In to add comment