root/ossiedev/branches/jgaeddert/0.8.0/components/README.txt @ 10684

Revision 10684, 5.9 KB (checked in by jgaeddert, 2 years ago)

fleshing out README with list of modulation, forward error-correction, and CRC schemes

Line 
1=======================================================================
2 
3  ossie-liquid-components
4
5=======================================================================
6
7This directory contains the project repo for OSSIE components using the
8liquid-dsp library.  It provides a massive simplification over
9conventional OSSIE components projects by combining the entire build
10system into one directory.  This speeds up build time significantly as
11the configure script needs to be run only once for all the components.
12
13These components require the liquid-dsp library installed, a free and
14open-source signal processing library for software-defined radios. See
15http://ganymede.ece.vt.edu for installation instructions, source code
16respositories, and full documentation.
17
18BUILD:
19    $ ./reconf
20    $ ./configure
21    $ make
22
23INSTALL:
24    $ make install
25
26The following components are available:
27    complexFloat2Short
28    complexShort2Float
29    Channel
30    FlexframeGen
31    FlexframeSync
32    FrameGen64
33    FrameSync64
34    PacketDecoder
35    PacketEncoder
36    PacketSink
37    PacketSource
38
39Here is a brief description of each
40
41complexFloat2Short
42complexShort2Float
43    These components simply convert a complexFloat CORBA type to a
44    complexShort (and vise versa).  This is useful for plotting, as the
45    tools do not support complexFloat at the time these components were
46    written.  Signal processing elements rely on floating-point data
47    types to maintain a sufficient dynamic range.
48
49Channel
50    The channel component adds the following impairments:
51      * CFO, carrier frequency offset
52      * CPO, carrier phase offset
53      * noise at a specific signal-to-noise ratio (assuming the RMS of the
54        input signal is unity)
55      * gain (maintains specific SNR level)
56      * tau, fractional timing offset (not yet implemented)
57
58FlexframeGen
59FlexframeSync
60    Generate a flexframe.
61    Here are the available modulation schemes:
62        bpsk, qpsk, psk<2..256>, dpsk<2..256>, qam<4..256>, apsk<4..128>,
63        ask<2..256>, arb16opt, arb64vt
64    (see A.1 at the end of this file for details).
65    The generator accepts a header of exactly 8 bytes (anything else will
66    result in an exception being thrown), and a payload of any reasonable
67    length.
68
69FrameGen64
70FrameSync64
71    Generate a frame64.  The header length is exactly 24 bytes and the payload
72    is 64 bytes exactly. This is a simplified frame that does not allow
73    adjustment of modulation and forward error-correction coding.
74
75PacketDecoder
76PacketEncoder
77    Encode/decode packets using various forward error-correction codes (FEC).
78    The input data are encoded using optional inner and outer codecs with an
79    optional data validity check (either a cylic redundancy check or simple
80    checksum).  See A.2 and A.3 at the end of this file for details.
81   
82PacketSink
83PacketSource
84    Generate/absorb random packets with headers.
85
86======================================================
87 A.1 Available modulation schemes
88======================================================
89Tabulated below is a list of all the digital modulation schemes available. The
90first few types are generic to their constellation size (i.e.
912,4,8,16,32,...256); however not all combinations are available. For example
92apsk only allows a minimum of M=4 points in the constellation and a maximum of
93M=128. The last set of modulation schemes have a specific size.
94
95    Generic types
96    [psk]       phase-shift keying (psk2,psk4,psk8,...psk256)
97    [dpsk]      differential phase-shift keying (dpsk2,dpsk4,...dpsk256)
98    [ask]       amplitude-shift keying (ask2,ask4,ask8,...ask256)
99    [qam]       quadrature amplitude-shift keying (qam4,qam8,qam16,...qam256)
100    [apsk]      amplitude/phase-shift keying (apsk4,apsk8,apsk16,...apsk128)
101
102    Specific types
103    [bpsk]      specific BPSK
104    [qpsk]      specific QPSK
105    [arb16opt]  arbitrary modem (optimal 16-QAM)
106    [arb64vt]   arbitrary modem (Virginia Tech logo)
107
108======================================================
109 A.2 Available forward error-correction codes
110======================================================
111Note that only the Hamming and repeat codes are available by default. The
112convolutional and Reed-Solomon codes are available only if libfec is installed
113(see http://www.ka9q.net/code/fec/). Details about installation can be found
114by reading the liquid-dsp documentation (see the source code or
115http://ganymede.ece.vt.edu).
116    [none]      none
117    [r3]        repeat(3)
118    [r5]        repeat(5)
119    [h74]       Hamming(7,4)
120    [h84]       Hamming(8,4)
121    [h128]      Hamming(12,8)
122    [v27]       convolutional r1/2 K=7
123    [v29]       convolutional r1/2 K=9
124    [v39]       convolutional r1/3 K=9
125    [v615]      convolutional r1/6 K=15
126    [v27p23]    convolutional r2/3 K=7 (punctured)
127    [v27p34]    convolutional r3/4 K=7 (punctured)
128    [v27p45]    convolutional r4/5 K=7 (punctured)
129    [v27p56]    convolutional r5/6 K=7 (punctured)
130    [v27p67]    convolutional r6/7 K=7 (punctured)
131    [v27p78]    convolutional r7/8 K=7 (punctured)
132    [v29p23]    convolutional r2/3 K=9 (punctured)
133    [v29p34]    convolutional r3/4 K=9 (punctured)
134    [v29p45]    convolutional r4/5 K=9 (punctured)
135    [v29p56]    convolutional r5/6 K=9 (punctured)
136    [v29p67]    convolutional r6/7 K=9 (punctured)
137    [v29p78]    convolutional r7/8 K=9 (punctured)
138    [rs8]       Reed-Solomon, 223/255
139
140======================================================
141 A.3 Available data validity checks
142======================================================
143Tabulated below is a list of the available data validity checks. When no check
144is used ('none') the data will always be returned as 'valid.' The available
145cyclic redundancy checks range from 8 to 32 bits and are considerably stronger
146than the simple 8-bit checksum.
147    [none]      none
148    [checksum]  checksum (8-bit)
149    [crc8]      CRC (8-bit)
150    [crc16]     CRC (16-bit)
151    [crc24]     CRC (24-bit)
152    [crc32]     CRC (32-bit)
153
Note: See TracBrowser for help on using the browser.