| 
    fun_ofdm
    1.0
    
   802.11a Physical Layer for USRP 
   | 
 
Template for QAM class. More...
#include <qam.h>
Public Member Functions | |
| QAM (double power, int gain=0) | |
| QAM Constructor.  More... | |
| void | encode (const char *bits, double *sym) | 
| Encode recursively to match the decoding process.  More... | |
| void | decode (double sym, unsigned char *bits) | 
| Decode recursively.  More... | |
Static Public Member Functions | |
| static int | sign (int v) | 
| sign  More... | |
| static int | clamp (int i) | 
| clamp  More... | |
Private Attributes | |
| int | d_gain | 
| double | d_scale_e | 
| double | d_scale_d | 
Template for QAM class.
fast QAM (uses at most 4x imull to decode) Tested on 7600 bogomips yields 600-1200Mbps encoding and 300Mbps decoding Compile with -O3
QAM Constructor.
| power | desired symbol power | 
| gain | gain on the decoded confidence (power of 2) | 
Definition at line 35 of file qam.h.
References fun::QAM< NumBits >::d_gain, fun::QAM< NumBits >::d_scale_d, and fun::QAM< NumBits >::d_scale_e.
      
  | 
  inlinestatic | 
clamp
| i | 
Definition at line 68 of file qam.h.
Referenced by fun::QAM< NumBits >::decode().
      
  | 
  inline | 
Decode recursively.
We decode recursively because we want meaningful confidences. The alternative would be to simply divide and round, which only yields the smallest per-bit confidence.
output bit confidence is between 0 and 255.
| sym | |
| bits | 
Definition at line 110 of file qam.h.
References amp, fun::QAM< NumBits >::clamp(), fun::QAM< NumBits >::d_gain, fun::QAM< NumBits >::d_scale_d, and fun::QAM< NumBits >::sign().
Referenced by fun::modulator::demodulate().
      
  | 
  inline | 
Encode recursively to match the decoding process.
This could have been implemented by a gray + multiply. gray(i) = (i> >1)^i see: http://www.dspguru.com/dsp/tricks/gray-code-conversion
| bits | |
| sym | 
Definition at line 83 of file qam.h.
References fun::QAM< NumBits >::d_scale_e.
Referenced by fun::modulator::modulate().
      
  | 
  inlinestatic | 
sign
| v | 
Definition at line 58 of file qam.h.
Referenced by fun::QAM< NumBits >::decode().
      
  | 
  private | 
Definition at line 26 of file qam.h.
Referenced by fun::QAM< NumBits >::decode(), and fun::QAM< NumBits >::QAM().
      
  | 
  private | 
Definition at line 28 of file qam.h.
Referenced by fun::QAM< NumBits >::decode(), and fun::QAM< NumBits >::QAM().
      
  | 
  private | 
Definition at line 27 of file qam.h.
Referenced by fun::QAM< NumBits >::encode(), and fun::QAM< NumBits >::QAM().