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
