Hi All,


yesterday, I got a message from Jim KG4SGP with an offer to help on the 
interleaver.


(and he also gave me permission to discuss this on the list; which -I 
think- is best so that everybody else can follow this and -perhaps- 
learn a bit from it).



So,


This is the situation:
- there is now code for a 2400 bps modem (DSP stuff, timing, PLL) but it 
does not do any FEC or interleaving.

- Based on feedback I got from David and Bill, the idea is to get 
started with something very basic and only apply FEC and interleaving 
inside the 40 ms timeframe of a codec2 frame; which corresponds with a 
40 ms timeframe used by gmsk modem.

- There is a general proposal for FEC in the 4 different senarios for 
the 2400 bps modem, as proposed in the mail of yesterday.
The main information missing in that is some minor details on what 
exactly is the order of preference of the bits inside the group of the 
LSPs or VQ indeces.

- So, next step: interleaving.

If -for now- we just stick to the generic idea of just coding a fixed 
predefined matrix, (i.e. a table that gives the order of the bits as 
they are send over the air), the question is how to design that table.


With some earlier experiments for finding sync-pattered, I once had the 
following idea:
- start with some matrix (perhaps with one just in numeric order, 1, 2, 
3, ...) and calculate a "score" for this.

The score would be "how well does this matrix fit our requirement".

Just run throu all the bits and give it some "bad points" if it fails 
some of our requirements. (i.e. two "voiced" bits next to eachother: 6 
bad points, two bits from same FEC block next to eachother: 3 bad points).

- next step: randomly change the table (just swap two random bits).

- recalculate the score

- if the score of the new table is better (in my case, that was less bad 
pionts), I keep the new table. If it was worse, I fell back to the old 
table I had before.

Repeat this process a couple of million times until we do not get any 
better score anymore.


I did add a bit of code that -if new better score was found after -say- 
one hunderd thousand itterations- I completely changed all the location 
of all the bits in the table and started from there on.

Of course, then the issue then boils down to finding good rules to 
calculate the score of a matrix.



Anybody any ideas or comments on this?



73
Kristoff - ON1ARF

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to