diff options
Diffstat (limited to 'gr-trellis/doc/gr-trellis.xml')
-rw-r--r-- | gr-trellis/doc/gr-trellis.xml | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/gr-trellis/doc/gr-trellis.xml b/gr-trellis/doc/gr-trellis.xml index ed53715a8..5f1921343 100644 --- a/gr-trellis/doc/gr-trellis.xml +++ b/gr-trellis/doc/gr-trellis.xml @@ -279,6 +279,15 @@ The fourth way is specific to FSMs resulting from shift registers, and the outpu </programlisting> </listitem> +<listitem> +<para> +I have added other constructors as well, eg, one that constructs an FSM appropriate for modeling an arbitrary CPM scheme; one that constructs the radix-n version of a given FSM; one that constructs the "concatenation" of two FSMs, etc. +</para> +</listitem> + + + + </itemizedlist> @@ -397,8 +406,8 @@ r<subscript>k</subscript>= evaluates </para> <para> -i<subscript>0</subscript>= argmax<subscript>i</subscript> ||r<subscript>k</subscript>-c<subscript>i</subscript>||<superscript>2</superscript> = -argmax<subscript>i</subscript> sum<subscript>j=1</subscript><superscript>D</superscript> |r<subscript>k,j</subscript>-c<subscript>i,j</subscript>|<superscript>2</superscript> +i<subscript>0</subscript>= argmin<subscript>i</subscript> ||r<subscript>k</subscript>-c<subscript>i</subscript>||<superscript>2</superscript> = +argmin<subscript>i</subscript> sum<subscript>j=1</subscript><superscript>D</superscript> |r<subscript>k,j</subscript>-c<subscript>i,j</subscript>|<superscript>2</superscript> </para> <para> and outputs a sequence of O floats of the form (0,...,0,1,0,...,0), where the @@ -413,8 +422,8 @@ r<subscript>k</subscript>= evaluates </para> <para> -i<subscript>0</subscript>= argmax<subscript>i</subscript> ||r<subscript>k</subscript>-c<subscript>i</subscript>||<superscript>2</superscript> = -argmax<subscript>i</subscript> sum<subscript>j=1</subscript><superscript>D</superscript> (r<subscript>k,j</subscript>-c<subscript>i,j</subscript>)<superscript>2</superscript> +i<subscript>0</subscript>= argmin<subscript>i</subscript> ||r<subscript>k</subscript>-c<subscript>i</subscript>||<superscript>2</superscript> = +argmin<subscript>i</subscript> sum<subscript>j=1</subscript><superscript>D</superscript> (r<subscript>k,j</subscript>-c<subscript>i,j</subscript>)<superscript>2</superscript> </para> <para> and outputs a sequence of O floats of the form (d<subscript>1</subscript>,d<subscript>2</subscript>,...,d<subscript>O</subscript>), where the @@ -813,7 +822,7 @@ The modulated symbols are filtered by the ISI channel and AWGN with appropriate <para> Since the output alphabet of the equivalent FSM is quite large (1024) we chose to utilize the combined metrics calculator and Viterbi algorithm block. -also note that the first L observations are irrelevant and tus can be skipped. +Also note that the first L observations are irrelevant and thus can be skipped. </para> <programlisting> 33 # RX @@ -863,7 +872,20 @@ The function returns the number of symbols and the number of symbols in error. O <sect1 id="turbo"><title>Support for Concatenated Coding and Turbo Decoding</title> <para> -To do... +Soft versions of the algorithms have been implemented. +Also examples of turbo equalization/decoding and of sccc can +be found in the examples directory. + +Recently we added gnuradio blocks for sccc and pccc encoders and +turbo decoders. +Although these can be generated by existing gr-trellis blocks (in particular, +the SISO blocks, as done in some of the python examples) there is an advantage +in having this functionality as a single block. To see why, think of a turbo decoder with 10 iterations. Previously we needed to concatenate 10 x 2 SISO blocks +(for a sccc decoder) to emulate the passing of soft information between SISOs over 10 iterartions. With the new block however, only a single such block is needed that internally loops through 10 iterations; this results in space savings +and possibly time saving as well (since queueing at the input/ouput of the gr-blocks is avoided). + + +Still need to document them... </para> |