Commit 7573b824bb5d7201d406da0513f535226fae8619

Authored by Yujen Ku
1 parent b9d8be5b4b
Exists in master

demapper(same as HW1 code)

Showing 1 changed file with 33 additions and 0 deletions Side-by-side Diff

  1 +function [map_out]=demapper(data,mode,c)
  2 +
  3 +m_out=data;
  4 +% mode : Modulation order in power of 2 (1/2/4/6 = BSPK/QPSK/16-QAM/64-QAM)
  5 +% c = 1;
  6 +
  7 +switch mode
  8 + case 1
  9 + b=c*[1 -1];
  10 + case 2
  11 + b=c*[1+1i -1+1i 1-1i -1-1i];
  12 + case 4
  13 + b=c*[1+1i 1+3i 1-1i 1-3i 3+1i 3+3i 3-1i 3-3i -1+1i -1+3i -1-1i -1-3i -3+1i -3+3i -3-1i -3-3i];
  14 + case 6
  15 + b=c*[3+3i 3+1i 3+5i 3+7i 3-3i 3-1i 3-5i 3-7i 1+3i 1+1i 1+5i 1+7i 1-3i 1-1i 1-5i 1-7i 5+3i 5+1i 5+5i 5+7i 5-3i 5-1i 5-5i 5-7i 7+3i 7+1i 7+5i 7+7i 7-3i 7-1i 7-5i 7-7i -3+3i -3+1i -3+5i -3+7i -3-3i -3-1i -3-5i -3-7i -1+3i -1+1i -1+5i -1+7i -1-3i -1-1i -1-5i -1-7i -5+3i -5+1i -5+5i -5+7i -5-3i -5-1i -5-5i -5-7i -7+3i -7+1i -7+5i -7+7i -7-3i -7-1i -7-5i -7-7i];
  16 + otherwise
  17 + error('wrong choice');
  18 +end
  19 +
  20 +temp = zeros(size(m_out));
  21 +
  22 +for k=1:length(m_out)
  23 + z=find( (abs(b-m_out(k))).^2-min(abs((b-m_out(k))).^2)==0);
  24 + if length(z)==1
  25 + temp(k)=z-1;
  26 + else
  27 + temp(k)=z(randi(1,1,[1,length(z)]))-1;
  28 + end
  29 +end
  30 +
  31 +dmod_out = de2bi(temp,mode);
  32 +map_out = reshape(dmod_out',1,mode*length(temp));