<div>While studying FS coding, I created the attached drawing. The code used for de-interleaving is:</div><div><br></div><div><div><font face="courier new, monospace">void tch_fr_deinterleave313(ubit_t *mC, int blockoffset) //see 3GPP TS 05.03 / 3.1.3</font></div>
<div><font face="courier new, monospace">{</font></div><div><span class="Apple-tab-span" style="font-family:'courier new',monospace;white-space:pre"> </span><span style="font-family:'courier new',monospace">for (int k = 0; k < 456; k++) {</span></div>
<div><font face="courier new, monospace"><span class="Apple-tab-span" style="white-space:pre">          </span>int B = ( k + blockoffset ) % 8;</font></div><div><font face="courier new, monospace"><span class="Apple-tab-span" style="white-space:pre">            </span>int j = 2 * ((49 * k) % 57) + ((k % 8) / 4);</font></div>
<div><font face="courier new, monospace"><span class="Apple-tab-span" style="white-space:pre">          </span>mC[k] = mI[B][j];</font></div><div><span class="Apple-tab-span" style="font-family:'courier new',monospace;white-space:pre">   </span><span style="font-family:'courier new',monospace">}</span></div>
<div><span style="font-family:'courier new',monospace">}</span></div></div><div><br></div><div>Now I want to study HS coding and de-interleaving. The GSM specs 05.03 / 3.2.3 only mentions a table for interleave coding and not a formula for matching j with k. Why is that?</div>
<div><br></div><div>I tried to find a formula by looking a the table pattern, but it looks quite inconsistent.</div><div><br></div><div>If there is no formula for coding/decoding HS, then do we have to use table lookup for each bit? Sounds very inefficient. Or am I missing something?</div>
<div><br></div><div>B</div>

<div><br></div>