Comm Toolbox Turbo Coding - Not Systematic

Hello, I do not find the turbo coding implementation to match the description, which clearly shows that the systematic bits should appear at the output : https://www.mathworks.com/help/comm/ref/turboencoder.html. If I execute the following :
b1 = rand(1,100) > 0.5;
intrlvrIndices = 1 : length(b1);
hTEnc = comm.TurboEncoder('TrellisStructure', poly2trellis(4,[13 15],13), 'InterleaverIndices', intrlvrIndices);
b2 = step(hTEnc, double(b1)')';
plot(conv(2*b2-1,2*b1(end:-1:1)-1));
There is no trace of the systematic bits at the output. This renders both the encoder and decoder not useful for me. What am I missing ?

4 Kommentare

Stephen Carsello
Stephen Carsello am 29 Jan. 2018
Bearbeitet: Stephen Carsello am 30 Jan. 2018
OK I figured it out. They interleave the three streams together. Add these lines, and you will see the peak :
>> b3 = reshape(reshape(b2,3,[])',1,[]);
>> plot(conv(2*b3-1,2*b1(end:-1:1)-1))
Stephen Carsello
Stephen Carsello am 30 Jan. 2018
Bearbeitet: Walter Roberson am 30 Jan. 2018
I'll add, however, that I can't get much else from this Matlab implementation. If I just change one of the polynomials, making them the same, the systematic bits vanish :
>> b1 = rand(1,100) > 0.5;
>> intrlvrIndices = 1 : length(b1);
>> hTEnc = comm.TurboEncoder('TrellisStructure', poly2trellis(4,[15 15],13), 'InterleaverIndices', intrlvrIndices);
>> b2 = step(hTEnc, double(b1)')';
>> b3 = reshape(reshape(b2,3,[])',1,[]);
>> plot(conv(2*b3-1,2*b1(end:-1:1)-1),'.-')
In addition, they offer no options on how to terminate the encoder, so there is no way to ensure that it would be suitable for a specific air interface, and, furthermore, it doesn't even seem like the number of output bits is correct. With a constraint length of 4, the number of memory elements is 3, so, for this example, there should be 3*(100+3) = 309 output bits. However, this puts out 312 bits.
I wish Mathworks made a better effort here to provide clarity, utility, and usefulness. This could be a very valuable part of the Toolbox, but, alas, I am finding it to be of no use at all.
Walter Roberson
Walter Roberson am 30 Jan. 2018
At the bottom of the documentation page, there is a button to choose whether the documentation was useful or not. If you click on No then it brings up a form that allows you to input remarks for consideration by the documentation writers.
Stephen Carsello
Stephen Carsello am 30 Jan. 2018
Bearbeitet: Stephen Carsello am 30 Jan. 2018
Next finding. Apparently, the way to ensure the systematic bits appear is that the first set of feed-forward taps match the feedback taps. The constituent code is rate 1/n, where n is the number of sets of feed-forward taps. It appears to be implied that the interleaved bits are fed through feed-forward tap sets 2 through n. You really have to dig into the convolutional encoder details, and examples, in order to realize how this is supposed to work. OK ... next topic ... tail bits.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Produkte

Gefragt:

am 26 Jan. 2018

Bearbeitet:

am 30 Jan. 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by