QAM64Demod.m
上传用户:xinxin4122
上传日期:2013-04-03
资源大小:464k
文件大小:1k
源码类别:

邮电通讯系统

开发平台:

Matlab

  1. function bits = QAM64Demod(rx_symbols)
  2. soft_bits = zeros(1,6*length(rx_symbols));  % Each symbol consists of 6 bits
  3. bit0 = real(rx_symbols);
  4. bit3 = imag(rx_symbols);
  5. bit1 = 4/sqrt(42)-abs(real(rx_symbols));
  6. bit4 = 4/sqrt(42)-abs(imag(rx_symbols));
  7. for m=1:length(rx_symbols)
  8.     
  9.     if abs(4/sqrt(42)-abs(real(rx_symbols(m)))) <= 2/sqrt(42)  % bit is one
  10.         bit2(m) = 2/sqrt(42) - abs(4/sqrt(42)-abs(real(rx_symbols(m))));
  11.     elseif abs(real(rx_symbols(m))) <= 2/sqrt(42) % bit is zero, close to real axis
  12.         bit2(m) = -2/sqrt(42) + abs(real(rx_symbols(m)));
  13.     else
  14.         bit2(m) = 6/sqrt(42)-abs(real(rx_symbols(m))); % bit is zero 
  15.     end;
  16.       
  17.     if abs(4/sqrt(42)-abs(imag(rx_symbols(m)))) <= 2/sqrt(42)  % bit is one
  18.         bit5(m) = 2/sqrt(42) - abs(4/sqrt(42)-abs(imag(rx_symbols(m))));
  19.     elseif abs(imag(rx_symbols(m))) <= 2/sqrt(42) % bit is zero, close to real axis
  20.         bit5(m) = -2/sqrt(42) + abs(imag(rx_symbols(m)));
  21.     else
  22.        bit5(m) = 6/sqrt(42)-abs(imag(rx_symbols(m)));
  23.     end;
  24. end;
  25. soft_bits(1:6:end) = bit0;
  26. soft_bits(2:6:end) = bit1;
  27. soft_bits(3:6:end) = bit2;
  28. soft_bits(4:6:end) = bit3;
  29. soft_bits(5:6:end) = bit4;
  30. soft_bits(6:6:end) = bit5;
  31. bits=soft_bits>0;