I used a bit version of the horus byte scrambler, and got this:

[image: 4fsk-scrambled.png]
​
/**
 *          In-Place 15 bit additive scrambler with 0x4a80 Frame Sync
 *
 *  Sync    1   0   0   1   0   1   0   1   0   0   0   0   0   0   0
 *        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
 *        | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| 11| 12| 13| 14| 15|
 *        +-+-+---+---+---+---+---+---+---+---+---+---+---+---+-+-+-+-+
 *          ^                                                   |   |
 *          |                                                   v   v
 *          |                                                 +-------+
 *          +<------------------------------------------------|   +   |
 *          |                                                 +-------+
 *          v
 *        +---+
 * in --->| + |---> out
 *        +---+
 *
 * inout  - input and output data as bits
 *
 * Returns void.
 */

void scramble(uint8_t inout[]) {
    int i, ibit;

    uint16_t scrambler = 0x4A80; /* initialize scrambler every frame */
    uint16_t scrambler_out;

    /* in place modification of each bit */

    for (i = 0; i < BITS_PER_FRAME; i++) {
        scrambler_out = ((scrambler & 0x2) >> 1) ^ (scrambler & 0x1);

        ibit = inout[i] & 0x1;
        inout[i] = ibit ^ scrambler_out;

        /* update scrambler */

        scrambler >>= 1;
        scrambler  |= (scrambler_out << 14);
    }
}

Have fun!

On Wed, Jun 13, 2018 at 4:02 PM Adrian Musceac <kanto...@gmail.com> wrote:

>
> Hi Steve,
> You could try scrambling the output of the vocoder.
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to