P25 audio work in progress - started work on exposing 88-bit (11-byte) IMBE voice frames from LDU messages. Added deinterleave, derandomize and the Golay(23,12,7) error detection and correction to LDU voice messages. Hamming edac still remains to be implemented. Plan to create a separate project to produce an imbe FormatConversionProvider that will convert 88-bit imbe frames to PCM audio that is then in a standard format for audio playback, recording, or conversion to another format like shoutcast.

This commit is contained in:
dennis.sheirer
2015-03-01 15:40:25 +00:00
parent 1f13f7eec2
commit 52f2e3bdca
9 changed files with 544 additions and 80 deletions

View File

@@ -161,21 +161,16 @@ public class Galois24
public static void main( String[] args )
{
/* NID + TDULC message */
String msg = "0010011000001111100100110011000100111010000111010001000000000000000000000000000000000000000000000100101010010111000000000000000000000000000010010111101111111111000000000000000000000000000000000000000000000000000110001011100001111101010110111001001011010010101111010010000010110011101111111100100000010001111100011010010100001101111001111001100000111000";
String msg = "01001111011100100011011";
BinaryMessage message = BinaryMessage.load( msg );
mLog.debug( "MSG: " + message.toString() );
int x = 64;
int x = 0;
while( x < msg.length() )
{
message = checkAndCorrect( message, x );
message = checkAndCorrect( message, x );
mLog.debug( "X:" + x + " Pass:" + ( message.getCRC()== CRC.PASSED ) );
x += 24;
}
mLog.debug( "MSG: " + message.toString() + " Pass:" + ( message.getCRC()== CRC.PASSED ) );
}
}