is one way to generate a random interleaver with a given seed (666 in this case).
The pccc block requires two FSM (finite state machine) specifications (one for each of the constituent codes)
and an interleaver specification.
You can give the interleaver specification either through a file or by letting gnuradio generate a random one.
The interleaver class (pretty straighforward) has been implemented in the files:
gr-trellis/include/trellis/gnuaradio/interleaver.h
gr-trellis/lib/interleaver.cc
I am copying the class definition below:
------------------
/*!
* \brief INTERLEAVER class
* \ingroup trellis_coding_blk
*/
class TRELLIS_API interleaver
{
private:
int d_K;
std::vector<int> d_INTER;
std::vector<int> d_DEINTER;
public:
interleaver();
interleaver(const interleaver & INTERLEAVER);
interleaver(int K, const std::vector<int> & INTER);
interleaver(const char *name);
interleaver(int K, int seed);
int K () const { return d_K; }
const std::vector<int> & INTER() const { return d_INTER; }
const std::vector<int> & DEINTER() const { return d_DEINTER; }
void write_interleaver_txt(std::string filename);
};
--------------------