Hi,
First of all, a small note that yesterday I pushed a new version to the
gmsk modem for codec2.
There is one thing that has been changed: I've put the "bitslip" code
back in that was removed when porting the D-STAR version of the modem
to codec2.
For reference, the system works like this:
According the specification writen by Peter, the 4800 bps stream of a
codec2 voice stream has the following structure:
- 24 bits syncronisation pattern
- 168 bits of voice. (40 ms, 1400 bps, 1/3 FEC).
In my application, what is concidered a valid sync?
- the sync-pattern with no bitslip: i.e. the sync is located in
positions 0 up to 23. In this case, up to three biterrors allowed
- the sync-pattern with a bitslip of 1: i.e. positions 1 up-to 24 or -1
(last bit of previous frame) to 22. Here, up to one biterrror is allowed
- the sync-pattern with a bitslip of 2: i.e. either positions 2 up to 25
or -2 up to 21. Now, no biterrors are allowed.
Of course, this criteria are all pretty much program ad hoc. They are
not part of specifications.
If a bitslip is detected, the whole structure is shifted one or two
positions to the left or right to correct the syncronisation-error.
The goal of the bitslip system it to be able to correct cases where a
stream has been unreachable for a certain time (e.g. somebody drives
down in a tunnel) and timing-differences between then clock of the
transmittor and the sender has resulted the normal "0-to-1 / 1-to-0"
syncronisation system not working.
Now, there is also a second issue I like to discuss with the group:
When listening to the stream generated by the codec2 gmsk modem, I
noticed it has a strange "buzzing" noice that you normally do not hear
in (say) D-STAR gmsk streams.
I've put a 3 second audio-sample online here:
http://villazeebries.krbonne.net/files/gmsk_repeat.wav
The audio-spectrum of the sample can be found here:
http://villazeebries.krbonne.net/files/freq-repeat.png
My feeling is that this is related to the fact that the current version
of the codec2-over-VHF specification contains a lot of repetition.
As already mentioned, a codec2-over-VHF frame consists of these parts:
- 24 bits syncronisation
- 56 bits 40ms codec2 frame (40 ms @ 1400 bps)
- 56 bits 40ms codec2 frame (40 ms @ 1400 bps) (repetition on previous
frame)
- 56 bits 40ms codec2 frame (40 ms @ 1400 bps) (repetition on previous
frame)
So, actually, DV part of the frame simply contains three times the same
content. (a quick and dirty "1/3 FEC" system :-) )
The problem is that this results in quite some added noise (around 5
db), as seen as the "hair" on the frequency responds graph.
So I did some experimenting to try to reduce this noise.
* test 1 applies interleaving (at octet-level) on the DV frames. This
means that the order of the octets is changes.
In a quick experiment, I did this:
- frame 1: order 0 - 1 - 2 - 3 - 4 - 5 - 6
- frame 2: order 6 - 5 - 4 - 3 - 2 - 1 - 0
- frame 3: order 0 - 3 - 6 - 2 - 5 - 1 - 4
Results:
http://villazeebries.krbonne.net/files/gmsk_interleave.wav
http://villazeebries.krbonne.net/files/freq-interleave.png
Already better!
* test 2 applies a randon exor-pattern on top of the DV frames.
Results:
http://villazeebries.krbonne.net/files/gmsk_random.wav
http://villazeebries.krbonne.net/files/freq-random.png
Of course, in a real application, this "random" pattern will be replaced
by a "known random" pattern as defined in the specifications, e.g. in a
cycle of 25 frames.
This result is even better!
The quick results seams to indicate that this kind of manipulation can
help to reduce the noise-level of the signal; and -therefor- the bandwidth.
Now, this was just some quick experiments based on a gut-feeling. I do
not have the mathimatical background for this.
So perhaps somebody in the group can make a more "scientific" comment on
this.
What would be a good approach in this?
BTW. To compair the sound of the three tests:
http://villazeebries.krbonne.net/files/gmsk_patterns.wav
73
Kristoff - ON1ARF
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Freetel-codec2 mailing list
Freetel-codec2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freetel-codec2